summaryrefslogtreecommitdiffstats
path: root/docs/sqlglot/expressions.html
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-01-23 05:06:14 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-01-23 05:06:14 +0000
commit38e6461a8afbd7cb83709ddb998f03d40ba87755 (patch)
tree64b68a893a3b946111b9cab69503f83ca233c335 /docs/sqlglot/expressions.html
parentReleasing debian version 20.4.0-1. (diff)
downloadsqlglot-38e6461a8afbd7cb83709ddb998f03d40ba87755.tar.xz
sqlglot-38e6461a8afbd7cb83709ddb998f03d40ba87755.zip
Merging upstream version 20.9.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'docs/sqlglot/expressions.html')
-rw-r--r--docs/sqlglot/expressions.html31941
1 files changed, 18333 insertions, 13608 deletions
diff --git a/docs/sqlglot/expressions.html b/docs/sqlglot/expressions.html
index 2aebe38..12e38fb 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 14.2.0"/>
+ <meta name="generator" content="pdoc 14.3.0"/>
<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>
@@ -114,6 +114,9 @@
<a class="function" href="#Expression.is_type">is_type</a>
</li>
<li>
+ <a class="function" href="#Expression.is_leaf">is_leaf</a>
+ </li>
+ <li>
<a class="variable" href="#Expression.meta">meta</a>
</li>
<li>
@@ -174,6 +177,9 @@
<a class="function" href="#Expression.flatten">flatten</a>
</li>
<li>
+ <a class="function" href="#Expression.to_s">to_s</a>
+ </li>
+ <li>
<a class="function" href="#Expression.sql">sql</a>
</li>
<li>
@@ -236,6 +242,9 @@
<li>
<a class="function" href="#Expression.div">div</a>
</li>
+ <li>
+ <a class="function" href="#Expression.desc">desc</a>
+ </li>
</ul>
</li>
@@ -579,6 +588,18 @@
</li>
<li>
+ <a class="class" href="#UnicodeString">UnicodeString</a>
+ <ul class="memberlist">
+ <li>
+ <a class="variable" href="#UnicodeString.arg_types">arg_types</a>
+ </li>
+ <li>
+ <a class="variable" href="#UnicodeString.key">key</a>
+ </li>
+ </ul>
+
+ </li>
+ <li>
<a class="class" href="#Column">Column</a>
<ul class="memberlist">
<li>
@@ -1515,6 +1536,18 @@
</li>
<li>
+ <a class="class" href="#WithFill">WithFill</a>
+ <ul class="memberlist">
+ <li>
+ <a class="variable" href="#WithFill.arg_types">arg_types</a>
+ </li>
+ <li>
+ <a class="variable" href="#WithFill.key">key</a>
+ </li>
+ </ul>
+
+ </li>
+ <li>
<a class="class" href="#Cluster">Cluster</a>
<ul class="memberlist">
<li>
@@ -1590,6 +1623,18 @@
</li>
<li>
+ <a class="class" href="#AutoRefreshProperty">AutoRefreshProperty</a>
+ <ul class="memberlist">
+ <li>
+ <a class="variable" href="#AutoRefreshProperty.arg_types">arg_types</a>
+ </li>
+ <li>
+ <a class="variable" href="#AutoRefreshProperty.key">key</a>
+ </li>
+ </ul>
+
+ </li>
+ <li>
<a class="class" href="#BlockCompressionProperty">BlockCompressionProperty</a>
<ul class="memberlist">
<li>
@@ -2199,6 +2244,18 @@
</li>
<li>
+ <a class="class" href="#SqlReadWriteProperty">SqlReadWriteProperty</a>
+ <ul class="memberlist">
+ <li>
+ <a class="variable" href="#SqlReadWriteProperty.arg_types">arg_types</a>
+ </li>
+ <li>
+ <a class="variable" href="#SqlReadWriteProperty.key">key</a>
+ </li>
+ </ul>
+
+ </li>
+ <li>
<a class="class" href="#SqlSecurityProperty">SqlSecurityProperty</a>
<ul class="memberlist">
<li>
@@ -2508,6 +2565,9 @@
<a class="variable" href="#Table.parts">parts</a>
</li>
<li>
+ <a class="function" href="#Table.to_column">to_column</a>
+ </li>
+ <li>
<a class="variable" href="#Table.key">key</a>
</li>
</ul>
@@ -2778,6 +2838,9 @@
<a class="variable" href="#Pivot.arg_types">arg_types</a>
</li>
<li>
+ <a class="variable" href="#Pivot.unpivot">unpivot</a>
+ </li>
+ <li>
<a class="variable" href="#Pivot.key">key</a>
</li>
</ul>
@@ -3837,6 +3900,15 @@
</li>
<li>
+ <a class="class" href="#PivotAlias">PivotAlias</a>
+ <ul class="memberlist">
+ <li>
+ <a class="variable" href="#PivotAlias.key">key</a>
+ </li>
+ </ul>
+
+ </li>
+ <li>
<a class="class" href="#Aliases">Aliases</a>
<ul class="memberlist">
<li>
@@ -3852,6 +3924,18 @@
</li>
<li>
+ <a class="class" href="#AtIndex">AtIndex</a>
+ <ul class="memberlist">
+ <li>
+ <a class="variable" href="#AtIndex.arg_types">arg_types</a>
+ </li>
+ <li>
+ <a class="variable" href="#AtIndex.key">key</a>
+ </li>
+ </ul>
+
+ </li>
+ <li>
<a class="class" href="#AtTimeZone">AtTimeZone</a>
<ul class="memberlist">
<li>
@@ -4134,6 +4218,45 @@
</li>
<li>
+ <a class="class" href="#AnonymousAggFunc">AnonymousAggFunc</a>
+ <ul class="memberlist">
+ <li>
+ <a class="variable" href="#AnonymousAggFunc.arg_types">arg_types</a>
+ </li>
+ <li>
+ <a class="variable" href="#AnonymousAggFunc.is_var_len_args">is_var_len_args</a>
+ </li>
+ <li>
+ <a class="variable" href="#AnonymousAggFunc.key">key</a>
+ </li>
+ </ul>
+
+ </li>
+ <li>
+ <a class="class" href="#CombinedAggFunc">CombinedAggFunc</a>
+ <ul class="memberlist">
+ <li>
+ <a class="variable" href="#CombinedAggFunc.arg_types">arg_types</a>
+ </li>
+ <li>
+ <a class="variable" href="#CombinedAggFunc.key">key</a>
+ </li>
+ </ul>
+
+ </li>
+ <li>
+ <a class="class" href="#CombinedParameterizedAgg">CombinedParameterizedAgg</a>
+ <ul class="memberlist">
+ <li>
+ <a class="variable" href="#CombinedParameterizedAgg.arg_types">arg_types</a>
+ </li>
+ <li>
+ <a class="variable" href="#CombinedParameterizedAgg.key">key</a>
+ </li>
+ </ul>
+
+ </li>
+ <li>
<a class="class" href="#Hll">Hll</a>
<ul class="memberlist">
<li>
@@ -4176,6 +4299,15 @@
</li>
<li>
+ <a class="class" href="#ToArray">ToArray</a>
+ <ul class="memberlist">
+ <li>
+ <a class="variable" href="#ToArray.key">key</a>
+ </li>
+ </ul>
+
+ </li>
+ <li>
<a class="class" href="#ToChar">ToChar</a>
<ul class="memberlist">
<li>
@@ -4647,6 +4779,9 @@
<a class="class" href="#DateTrunc">DateTrunc</a>
<ul class="memberlist">
<li>
+ <a class="function" href="#DateTrunc.__init__">DateTrunc</a>
+ </li>
+ <li>
<a class="variable" href="#DateTrunc.arg_types">arg_types</a>
</li>
<li>
@@ -4764,10 +4899,13 @@
</li>
<li>
- <a class="class" href="#LastDateOfMonth">LastDateOfMonth</a>
+ <a class="class" href="#LastDay">LastDay</a>
<ul class="memberlist">
<li>
- <a class="variable" href="#LastDateOfMonth.key">key</a>
+ <a class="variable" href="#LastDay.arg_types">arg_types</a>
+ </li>
+ <li>
+ <a class="variable" href="#LastDay.key">key</a>
</li>
</ul>
@@ -4905,6 +5043,18 @@
</li>
<li>
+ <a class="class" href="#TimeFromParts">TimeFromParts</a>
+ <ul class="memberlist">
+ <li>
+ <a class="variable" href="#TimeFromParts.arg_types">arg_types</a>
+ </li>
+ <li>
+ <a class="variable" href="#TimeFromParts.key">key</a>
+ </li>
+ </ul>
+
+ </li>
+ <li>
<a class="class" href="#DateStrToDate">DateStrToDate</a>
<ul class="memberlist">
<li>
@@ -5370,6 +5520,21 @@
</li>
<li>
+ <a class="class" href="#GetPath">GetPath</a>
+ <ul class="memberlist">
+ <li>
+ <a class="variable" href="#GetPath.arg_types">arg_types</a>
+ </li>
+ <li>
+ <a class="variable" href="#GetPath.output_name">output_name</a>
+ </li>
+ <li>
+ <a class="variable" href="#GetPath.key">key</a>
+ </li>
+ </ul>
+
+ </li>
+ <li>
<a class="class" href="#Least">Least</a>
<ul class="memberlist">
<li>
@@ -5703,6 +5868,30 @@
</li>
<li>
+ <a class="class" href="#Rand">Rand</a>
+ <ul class="memberlist">
+ <li>
+ <a class="variable" href="#Rand.arg_types">arg_types</a>
+ </li>
+ <li>
+ <a class="variable" href="#Rand.key">key</a>
+ </li>
+ </ul>
+
+ </li>
+ <li>
+ <a class="class" href="#Randn">Randn</a>
+ <ul class="memberlist">
+ <li>
+ <a class="variable" href="#Randn.arg_types">arg_types</a>
+ </li>
+ <li>
+ <a class="variable" href="#Randn.key">key</a>
+ </li>
+ </ul>
+
+ </li>
+ <li>
<a class="class" href="#RangeN">RangeN</a>
<ul class="memberlist">
<li>
@@ -6216,6 +6405,15 @@
</li>
<li>
+ <a class="class" href="#TsOrDsToTime">TsOrDsToTime</a>
+ <ul class="memberlist">
+ <li>
+ <a class="variable" href="#TsOrDsToTime.key">key</a>
+ </li>
+ </ul>
+
+ </li>
+ <li>
<a class="class" href="#TsOrDiToDi">TsOrDiToDi</a>
<ul class="memberlist">
<li>
@@ -6234,6 +6432,15 @@
</li>
<li>
+ <a class="class" href="#UnixDate">UnixDate</a>
+ <ul class="memberlist">
+ <li>
+ <a class="variable" href="#UnixDate.key">key</a>
+ </li>
+ </ul>
+
+ </li>
+ <li>
<a class="class" href="#UnixToStr">UnixToStr</a>
<ul class="memberlist">
<li>
@@ -6594,6725 +6801,6909 @@ SQL expressions, such as <code><a href="#select">select</a></code>.</p>
</span><span id="L-16"><a href="#L-16"><span class="linenos"> 16</span></a><span class="kn">import</span> <span class="nn">math</span>
</span><span id="L-17"><a href="#L-17"><span class="linenos"> 17</span></a><span class="kn">import</span> <span class="nn">numbers</span>
</span><span id="L-18"><a href="#L-18"><span class="linenos"> 18</span></a><span class="kn">import</span> <span class="nn">re</span>
-</span><span id="L-19"><a href="#L-19"><span class="linenos"> 19</span></a><span class="kn">import</span> <span class="nn">typing</span> <span class="k">as</span> <span class="nn">t</span>
-</span><span id="L-20"><a href="#L-20"><span class="linenos"> 20</span></a><span class="kn">from</span> <span class="nn">collections</span> <span class="kn">import</span> <span class="n">deque</span>
-</span><span id="L-21"><a href="#L-21"><span class="linenos"> 21</span></a><span class="kn">from</span> <span class="nn">copy</span> <span class="kn">import</span> <span class="n">deepcopy</span>
-</span><span id="L-22"><a href="#L-22"><span class="linenos"> 22</span></a><span class="kn">from</span> <span class="nn">enum</span> <span class="kn">import</span> <span class="n">auto</span>
-</span><span id="L-23"><a href="#L-23"><span class="linenos"> 23</span></a><span class="kn">from</span> <span class="nn">functools</span> <span class="kn">import</span> <span class="n">reduce</span>
-</span><span id="L-24"><a href="#L-24"><span class="linenos"> 24</span></a>
-</span><span id="L-25"><a href="#L-25"><span class="linenos"> 25</span></a><span class="kn">from</span> <span class="nn">sqlglot._typing</span> <span class="kn">import</span> <span class="n">E</span>
-</span><span id="L-26"><a href="#L-26"><span class="linenos"> 26</span></a><span class="kn">from</span> <span class="nn">sqlglot.errors</span> <span class="kn">import</span> <span class="n">ErrorLevel</span><span class="p">,</span> <span class="n">ParseError</span>
-</span><span id="L-27"><a href="#L-27"><span class="linenos"> 27</span></a><span class="kn">from</span> <span class="nn">sqlglot.helper</span> <span class="kn">import</span> <span class="p">(</span>
-</span><span id="L-28"><a href="#L-28"><span class="linenos"> 28</span></a> <span class="n">AutoName</span><span class="p">,</span>
-</span><span id="L-29"><a href="#L-29"><span class="linenos"> 29</span></a> <span class="n">camel_to_snake_case</span><span class="p">,</span>
-</span><span id="L-30"><a href="#L-30"><span class="linenos"> 30</span></a> <span class="n">ensure_collection</span><span class="p">,</span>
-</span><span id="L-31"><a href="#L-31"><span class="linenos"> 31</span></a> <span class="n">ensure_list</span><span class="p">,</span>
-</span><span id="L-32"><a href="#L-32"><span class="linenos"> 32</span></a> <span class="n">seq_get</span><span class="p">,</span>
-</span><span id="L-33"><a href="#L-33"><span class="linenos"> 33</span></a> <span class="n">subclasses</span><span class="p">,</span>
-</span><span id="L-34"><a href="#L-34"><span class="linenos"> 34</span></a><span class="p">)</span>
-</span><span id="L-35"><a href="#L-35"><span class="linenos"> 35</span></a><span class="kn">from</span> <span class="nn">sqlglot.tokens</span> <span class="kn">import</span> <span class="n">Token</span>
-</span><span id="L-36"><a href="#L-36"><span class="linenos"> 36</span></a>
-</span><span id="L-37"><a href="#L-37"><span class="linenos"> 37</span></a><span class="k">if</span> <span class="n">t</span><span class="o">.</span><span class="n">TYPE_CHECKING</span><span class="p">:</span>
-</span><span id="L-38"><a href="#L-38"><span class="linenos"> 38</span></a> <span class="kn">from</span> <span class="nn">sqlglot.dialects.dialect</span> <span class="kn">import</span> <span class="n">DialectType</span>
-</span><span id="L-39"><a href="#L-39"><span class="linenos"> 39</span></a>
+</span><span id="L-19"><a href="#L-19"><span class="linenos"> 19</span></a><span class="kn">import</span> <span class="nn">textwrap</span>
+</span><span id="L-20"><a href="#L-20"><span class="linenos"> 20</span></a><span class="kn">import</span> <span class="nn">typing</span> <span class="k">as</span> <span class="nn">t</span>
+</span><span id="L-21"><a href="#L-21"><span class="linenos"> 21</span></a><span class="kn">from</span> <span class="nn">collections</span> <span class="kn">import</span> <span class="n">deque</span>
+</span><span id="L-22"><a href="#L-22"><span class="linenos"> 22</span></a><span class="kn">from</span> <span class="nn">copy</span> <span class="kn">import</span> <span class="n">deepcopy</span>
+</span><span id="L-23"><a href="#L-23"><span class="linenos"> 23</span></a><span class="kn">from</span> <span class="nn">enum</span> <span class="kn">import</span> <span class="n">auto</span>
+</span><span id="L-24"><a href="#L-24"><span class="linenos"> 24</span></a><span class="kn">from</span> <span class="nn">functools</span> <span class="kn">import</span> <span class="n">reduce</span>
+</span><span id="L-25"><a href="#L-25"><span class="linenos"> 25</span></a>
+</span><span id="L-26"><a href="#L-26"><span class="linenos"> 26</span></a><span class="kn">from</span> <span class="nn">sqlglot._typing</span> <span class="kn">import</span> <span class="n">E</span>
+</span><span id="L-27"><a href="#L-27"><span class="linenos"> 27</span></a><span class="kn">from</span> <span class="nn">sqlglot.errors</span> <span class="kn">import</span> <span class="n">ErrorLevel</span><span class="p">,</span> <span class="n">ParseError</span>
+</span><span id="L-28"><a href="#L-28"><span class="linenos"> 28</span></a><span class="kn">from</span> <span class="nn">sqlglot.helper</span> <span class="kn">import</span> <span class="p">(</span>
+</span><span id="L-29"><a href="#L-29"><span class="linenos"> 29</span></a> <span class="n">AutoName</span><span class="p">,</span>
+</span><span id="L-30"><a href="#L-30"><span class="linenos"> 30</span></a> <span class="n">camel_to_snake_case</span><span class="p">,</span>
+</span><span id="L-31"><a href="#L-31"><span class="linenos"> 31</span></a> <span class="n">ensure_collection</span><span class="p">,</span>
+</span><span id="L-32"><a href="#L-32"><span class="linenos"> 32</span></a> <span class="n">ensure_list</span><span class="p">,</span>
+</span><span id="L-33"><a href="#L-33"><span class="linenos"> 33</span></a> <span class="n">seq_get</span><span class="p">,</span>
+</span><span id="L-34"><a href="#L-34"><span class="linenos"> 34</span></a> <span class="n">subclasses</span><span class="p">,</span>
+</span><span id="L-35"><a href="#L-35"><span class="linenos"> 35</span></a><span class="p">)</span>
+</span><span id="L-36"><a href="#L-36"><span class="linenos"> 36</span></a><span class="kn">from</span> <span class="nn">sqlglot.tokens</span> <span class="kn">import</span> <span class="n">Token</span>
+</span><span id="L-37"><a href="#L-37"><span class="linenos"> 37</span></a>
+</span><span id="L-38"><a href="#L-38"><span class="linenos"> 38</span></a><span class="k">if</span> <span class="n">t</span><span class="o">.</span><span class="n">TYPE_CHECKING</span><span class="p">:</span>
+</span><span id="L-39"><a href="#L-39"><span class="linenos"> 39</span></a> <span class="kn">from</span> <span class="nn">typing_extensions</span> <span class="kn">import</span> <span class="n">Literal</span> <span class="k">as</span> <span class="n">Lit</span>
</span><span id="L-40"><a href="#L-40"><span class="linenos"> 40</span></a>
-</span><span id="L-41"><a href="#L-41"><span class="linenos"> 41</span></a><span class="k">class</span> <span class="nc">_Expression</span><span class="p">(</span><span class="nb">type</span><span class="p">):</span>
-</span><span id="L-42"><a href="#L-42"><span class="linenos"> 42</span></a> <span class="k">def</span> <span class="fm">__new__</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">clsname</span><span class="p">,</span> <span class="n">bases</span><span class="p">,</span> <span class="n">attrs</span><span class="p">):</span>
-</span><span id="L-43"><a href="#L-43"><span class="linenos"> 43</span></a> <span class="n">klass</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__new__</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">clsname</span><span class="p">,</span> <span class="n">bases</span><span class="p">,</span> <span class="n">attrs</span><span class="p">)</span>
-</span><span id="L-44"><a href="#L-44"><span class="linenos"> 44</span></a>
-</span><span id="L-45"><a href="#L-45"><span class="linenos"> 45</span></a> <span class="c1"># When an Expression class is created, its key is automatically set to be</span>
-</span><span id="L-46"><a href="#L-46"><span class="linenos"> 46</span></a> <span class="c1"># the lowercase version of the class&#39; name.</span>
-</span><span id="L-47"><a href="#L-47"><span class="linenos"> 47</span></a> <span class="n">klass</span><span class="o">.</span><span class="n">key</span> <span class="o">=</span> <span class="n">clsname</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span>
-</span><span id="L-48"><a href="#L-48"><span class="linenos"> 48</span></a>
-</span><span id="L-49"><a href="#L-49"><span class="linenos"> 49</span></a> <span class="c1"># This is so that docstrings are not inherited in pdoc</span>
-</span><span id="L-50"><a href="#L-50"><span class="linenos"> 50</span></a> <span class="n">klass</span><span class="o">.</span><span class="vm">__doc__</span> <span class="o">=</span> <span class="n">klass</span><span class="o">.</span><span class="vm">__doc__</span> <span class="ow">or</span> <span class="s2">&quot;&quot;</span>
+</span><span id="L-41"><a href="#L-41"><span class="linenos"> 41</span></a> <span class="kn">from</span> <span class="nn">sqlglot.dialects.dialect</span> <span class="kn">import</span> <span class="n">DialectType</span>
+</span><span id="L-42"><a href="#L-42"><span class="linenos"> 42</span></a>
+</span><span id="L-43"><a href="#L-43"><span class="linenos"> 43</span></a>
+</span><span id="L-44"><a href="#L-44"><span class="linenos"> 44</span></a><span class="k">class</span> <span class="nc">_Expression</span><span class="p">(</span><span class="nb">type</span><span class="p">):</span>
+</span><span id="L-45"><a href="#L-45"><span class="linenos"> 45</span></a> <span class="k">def</span> <span class="fm">__new__</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">clsname</span><span class="p">,</span> <span class="n">bases</span><span class="p">,</span> <span class="n">attrs</span><span class="p">):</span>
+</span><span id="L-46"><a href="#L-46"><span class="linenos"> 46</span></a> <span class="n">klass</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__new__</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">clsname</span><span class="p">,</span> <span class="n">bases</span><span class="p">,</span> <span class="n">attrs</span><span class="p">)</span>
+</span><span id="L-47"><a href="#L-47"><span class="linenos"> 47</span></a>
+</span><span id="L-48"><a href="#L-48"><span class="linenos"> 48</span></a> <span class="c1"># When an Expression class is created, its key is automatically set to be</span>
+</span><span id="L-49"><a href="#L-49"><span class="linenos"> 49</span></a> <span class="c1"># the lowercase version of the class&#39; name.</span>
+</span><span id="L-50"><a href="#L-50"><span class="linenos"> 50</span></a> <span class="n">klass</span><span class="o">.</span><span class="n">key</span> <span class="o">=</span> <span class="n">clsname</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span>
</span><span id="L-51"><a href="#L-51"><span class="linenos"> 51</span></a>
-</span><span id="L-52"><a href="#L-52"><span class="linenos"> 52</span></a> <span class="k">return</span> <span class="n">klass</span>
-</span><span id="L-53"><a href="#L-53"><span class="linenos"> 53</span></a>
+</span><span id="L-52"><a href="#L-52"><span class="linenos"> 52</span></a> <span class="c1"># This is so that docstrings are not inherited in pdoc</span>
+</span><span id="L-53"><a href="#L-53"><span class="linenos"> 53</span></a> <span class="n">klass</span><span class="o">.</span><span class="vm">__doc__</span> <span class="o">=</span> <span class="n">klass</span><span class="o">.</span><span class="vm">__doc__</span> <span class="ow">or</span> <span class="s2">&quot;&quot;</span>
</span><span id="L-54"><a href="#L-54"><span class="linenos"> 54</span></a>
-</span><span id="L-55"><a href="#L-55"><span class="linenos"> 55</span></a><span class="n">SQLGLOT_META</span> <span class="o">=</span> <span class="s2">&quot;sqlglot.meta&quot;</span>
-</span><span id="L-56"><a href="#L-56"><span class="linenos"> 56</span></a><span class="n">TABLE_PARTS</span> <span class="o">=</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-55"><a href="#L-55"><span class="linenos"> 55</span></a> <span class="k">return</span> <span class="n">klass</span>
+</span><span id="L-56"><a href="#L-56"><span class="linenos"> 56</span></a>
</span><span id="L-57"><a href="#L-57"><span class="linenos"> 57</span></a>
-</span><span id="L-58"><a href="#L-58"><span class="linenos"> 58</span></a>
-</span><span id="L-59"><a href="#L-59"><span class="linenos"> 59</span></a><span class="k">class</span> <span class="nc">Expression</span><span class="p">(</span><span class="n">metaclass</span><span class="o">=</span><span class="n">_Expression</span><span class="p">):</span>
-</span><span id="L-60"><a href="#L-60"><span class="linenos"> 60</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-61"><a href="#L-61"><span class="linenos"> 61</span></a><span class="sd"> The base class for all expressions in a syntax tree. Each Expression encapsulates any necessary</span>
-</span><span id="L-62"><a href="#L-62"><span class="linenos"> 62</span></a><span class="sd"> context, such as its child expressions, their names (arg keys), and whether a given child expression</span>
-</span><span id="L-63"><a href="#L-63"><span class="linenos"> 63</span></a><span class="sd"> is optional or not.</span>
-</span><span id="L-64"><a href="#L-64"><span class="linenos"> 64</span></a>
-</span><span id="L-65"><a href="#L-65"><span class="linenos"> 65</span></a><span class="sd"> Attributes:</span>
-</span><span id="L-66"><a href="#L-66"><span class="linenos"> 66</span></a><span class="sd"> key: a unique key for each class in the Expression hierarchy. This is useful for hashing</span>
-</span><span id="L-67"><a href="#L-67"><span class="linenos"> 67</span></a><span class="sd"> and representing expressions as strings.</span>
-</span><span id="L-68"><a href="#L-68"><span class="linenos"> 68</span></a><span class="sd"> arg_types: determines what arguments (child nodes) are supported by an expression. It</span>
-</span><span id="L-69"><a href="#L-69"><span class="linenos"> 69</span></a><span class="sd"> maps arg keys to booleans that indicate whether the corresponding args are optional.</span>
-</span><span id="L-70"><a href="#L-70"><span class="linenos"> 70</span></a><span class="sd"> parent: a reference to the parent expression (or None, in case of root expressions).</span>
-</span><span id="L-71"><a href="#L-71"><span class="linenos"> 71</span></a><span class="sd"> arg_key: the arg key an expression is associated with, i.e. the name its parent expression</span>
-</span><span id="L-72"><a href="#L-72"><span class="linenos"> 72</span></a><span class="sd"> uses to refer to it.</span>
-</span><span id="L-73"><a href="#L-73"><span class="linenos"> 73</span></a><span class="sd"> comments: a list of comments that are associated with a given expression. This is used in</span>
-</span><span id="L-74"><a href="#L-74"><span class="linenos"> 74</span></a><span class="sd"> order to preserve comments when transpiling SQL code.</span>
-</span><span id="L-75"><a href="#L-75"><span class="linenos"> 75</span></a><span class="sd"> type: the `sqlglot.expressions.DataType` type of an expression. This is inferred by the</span>
-</span><span id="L-76"><a href="#L-76"><span class="linenos"> 76</span></a><span class="sd"> optimizer, in order to enable some transformations that require type information.</span>
-</span><span id="L-77"><a href="#L-77"><span class="linenos"> 77</span></a><span class="sd"> meta: a dictionary that can be used to store useful metadata for a given expression.</span>
-</span><span id="L-78"><a href="#L-78"><span class="linenos"> 78</span></a>
-</span><span id="L-79"><a href="#L-79"><span class="linenos"> 79</span></a><span class="sd"> Example:</span>
-</span><span id="L-80"><a href="#L-80"><span class="linenos"> 80</span></a><span class="sd"> &gt;&gt;&gt; class Foo(Expression):</span>
-</span><span id="L-81"><a href="#L-81"><span class="linenos"> 81</span></a><span class="sd"> ... arg_types = {&quot;this&quot;: True, &quot;expression&quot;: False}</span>
-</span><span id="L-82"><a href="#L-82"><span class="linenos"> 82</span></a>
-</span><span id="L-83"><a href="#L-83"><span class="linenos"> 83</span></a><span class="sd"> The above definition informs us that Foo is an Expression that requires an argument called</span>
-</span><span id="L-84"><a href="#L-84"><span class="linenos"> 84</span></a><span class="sd"> &quot;this&quot; and may also optionally receive an argument called &quot;expression&quot;.</span>
+</span><span id="L-58"><a href="#L-58"><span class="linenos"> 58</span></a><span class="n">SQLGLOT_META</span> <span class="o">=</span> <span class="s2">&quot;sqlglot.meta&quot;</span>
+</span><span id="L-59"><a href="#L-59"><span class="linenos"> 59</span></a><span class="n">TABLE_PARTS</span> <span class="o">=</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-60"><a href="#L-60"><span class="linenos"> 60</span></a>
+</span><span id="L-61"><a href="#L-61"><span class="linenos"> 61</span></a>
+</span><span id="L-62"><a href="#L-62"><span class="linenos"> 62</span></a><span class="k">class</span> <span class="nc">Expression</span><span class="p">(</span><span class="n">metaclass</span><span class="o">=</span><span class="n">_Expression</span><span class="p">):</span>
+</span><span id="L-63"><a href="#L-63"><span class="linenos"> 63</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-64"><a href="#L-64"><span class="linenos"> 64</span></a><span class="sd"> The base class for all expressions in a syntax tree. Each Expression encapsulates any necessary</span>
+</span><span id="L-65"><a href="#L-65"><span class="linenos"> 65</span></a><span class="sd"> context, such as its child expressions, their names (arg keys), and whether a given child expression</span>
+</span><span id="L-66"><a href="#L-66"><span class="linenos"> 66</span></a><span class="sd"> is optional or not.</span>
+</span><span id="L-67"><a href="#L-67"><span class="linenos"> 67</span></a>
+</span><span id="L-68"><a href="#L-68"><span class="linenos"> 68</span></a><span class="sd"> Attributes:</span>
+</span><span id="L-69"><a href="#L-69"><span class="linenos"> 69</span></a><span class="sd"> key: a unique key for each class in the Expression hierarchy. This is useful for hashing</span>
+</span><span id="L-70"><a href="#L-70"><span class="linenos"> 70</span></a><span class="sd"> and representing expressions as strings.</span>
+</span><span id="L-71"><a href="#L-71"><span class="linenos"> 71</span></a><span class="sd"> arg_types: determines what arguments (child nodes) are supported by an expression. It</span>
+</span><span id="L-72"><a href="#L-72"><span class="linenos"> 72</span></a><span class="sd"> maps arg keys to booleans that indicate whether the corresponding args are optional.</span>
+</span><span id="L-73"><a href="#L-73"><span class="linenos"> 73</span></a><span class="sd"> parent: a reference to the parent expression (or None, in case of root expressions).</span>
+</span><span id="L-74"><a href="#L-74"><span class="linenos"> 74</span></a><span class="sd"> arg_key: the arg key an expression is associated with, i.e. the name its parent expression</span>
+</span><span id="L-75"><a href="#L-75"><span class="linenos"> 75</span></a><span class="sd"> uses to refer to it.</span>
+</span><span id="L-76"><a href="#L-76"><span class="linenos"> 76</span></a><span class="sd"> comments: a list of comments that are associated with a given expression. This is used in</span>
+</span><span id="L-77"><a href="#L-77"><span class="linenos"> 77</span></a><span class="sd"> order to preserve comments when transpiling SQL code.</span>
+</span><span id="L-78"><a href="#L-78"><span class="linenos"> 78</span></a><span class="sd"> type: the `sqlglot.expressions.DataType` type of an expression. This is inferred by the</span>
+</span><span id="L-79"><a href="#L-79"><span class="linenos"> 79</span></a><span class="sd"> optimizer, in order to enable some transformations that require type information.</span>
+</span><span id="L-80"><a href="#L-80"><span class="linenos"> 80</span></a><span class="sd"> meta: a dictionary that can be used to store useful metadata for a given expression.</span>
+</span><span id="L-81"><a href="#L-81"><span class="linenos"> 81</span></a>
+</span><span id="L-82"><a href="#L-82"><span class="linenos"> 82</span></a><span class="sd"> Example:</span>
+</span><span id="L-83"><a href="#L-83"><span class="linenos"> 83</span></a><span class="sd"> &gt;&gt;&gt; class Foo(Expression):</span>
+</span><span id="L-84"><a href="#L-84"><span class="linenos"> 84</span></a><span class="sd"> ... arg_types = {&quot;this&quot;: True, &quot;expression&quot;: False}</span>
</span><span id="L-85"><a href="#L-85"><span class="linenos"> 85</span></a>
-</span><span id="L-86"><a href="#L-86"><span class="linenos"> 86</span></a><span class="sd"> Args:</span>
-</span><span id="L-87"><a href="#L-87"><span class="linenos"> 87</span></a><span class="sd"> args: a mapping used for retrieving the arguments of an expression, given their arg keys.</span>
-</span><span id="L-88"><a href="#L-88"><span class="linenos"> 88</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-89"><a href="#L-89"><span class="linenos"> 89</span></a>
-</span><span id="L-90"><a href="#L-90"><span class="linenos"> 90</span></a> <span class="n">key</span> <span class="o">=</span> <span class="s2">&quot;expression&quot;</span>
-</span><span id="L-91"><a href="#L-91"><span class="linenos"> 91</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-92"><a href="#L-92"><span class="linenos"> 92</span></a> <span class="vm">__slots__</span> <span class="o">=</span> <span class="p">(</span><span class="s2">&quot;args&quot;</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">,</span> <span class="s2">&quot;arg_key&quot;</span><span class="p">,</span> <span class="s2">&quot;comments&quot;</span><span class="p">,</span> <span class="s2">&quot;_type&quot;</span><span class="p">,</span> <span class="s2">&quot;_meta&quot;</span><span class="p">,</span> <span class="s2">&quot;_hash&quot;</span><span class="p">)</span>
-</span><span id="L-93"><a href="#L-93"><span class="linenos"> 93</span></a>
-</span><span id="L-94"><a href="#L-94"><span class="linenos"> 94</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 class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">):</span>
-</span><span id="L-95"><a href="#L-95"><span class="linenos"> 95</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="n">args</span>
-</span><span id="L-96"><a href="#L-96"><span class="linenos"> 96</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span 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="kc">None</span>
-</span><span id="L-97"><a href="#L-97"><span class="linenos"> 97</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">arg_key</span><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><span id="L-98"><a href="#L-98"><span class="linenos"> 98</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span>
-</span><span id="L-99"><a href="#L-99"><span class="linenos"> 99</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_type</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">DataType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>
-</span><span id="L-100"><a href="#L-100"><span class="linenos"> 100</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_meta</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="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="kc">None</span>
-</span><span id="L-101"><a href="#L-101"><span class="linenos"> 101</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_hash</span><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">int</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>
-</span><span id="L-102"><a href="#L-102"><span class="linenos"> 102</span></a>
-</span><span id="L-103"><a href="#L-103"><span class="linenos"> 103</span></a> <span class="k">for</span> <span class="n">arg_key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
-</span><span id="L-104"><a href="#L-104"><span class="linenos"> 104</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_set_parent</span><span class="p">(</span><span class="n">arg_key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
+</span><span id="L-86"><a href="#L-86"><span class="linenos"> 86</span></a><span class="sd"> The above definition informs us that Foo is an Expression that requires an argument called</span>
+</span><span id="L-87"><a href="#L-87"><span class="linenos"> 87</span></a><span class="sd"> &quot;this&quot; and may also optionally receive an argument called &quot;expression&quot;.</span>
+</span><span id="L-88"><a href="#L-88"><span class="linenos"> 88</span></a>
+</span><span id="L-89"><a href="#L-89"><span class="linenos"> 89</span></a><span class="sd"> Args:</span>
+</span><span id="L-90"><a href="#L-90"><span class="linenos"> 90</span></a><span class="sd"> args: a mapping used for retrieving the arguments of an expression, given their arg keys.</span>
+</span><span id="L-91"><a href="#L-91"><span class="linenos"> 91</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-92"><a href="#L-92"><span class="linenos"> 92</span></a>
+</span><span id="L-93"><a href="#L-93"><span class="linenos"> 93</span></a> <span class="n">key</span> <span class="o">=</span> <span class="s2">&quot;expression&quot;</span>
+</span><span id="L-94"><a href="#L-94"><span class="linenos"> 94</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-95"><a href="#L-95"><span class="linenos"> 95</span></a> <span class="vm">__slots__</span> <span class="o">=</span> <span class="p">(</span><span class="s2">&quot;args&quot;</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">,</span> <span class="s2">&quot;arg_key&quot;</span><span class="p">,</span> <span class="s2">&quot;comments&quot;</span><span class="p">,</span> <span class="s2">&quot;_type&quot;</span><span class="p">,</span> <span class="s2">&quot;_meta&quot;</span><span class="p">,</span> <span class="s2">&quot;_hash&quot;</span><span class="p">)</span>
+</span><span id="L-96"><a href="#L-96"><span class="linenos"> 96</span></a>
+</span><span id="L-97"><a href="#L-97"><span class="linenos"> 97</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 class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">):</span>
+</span><span id="L-98"><a href="#L-98"><span class="linenos"> 98</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="n">args</span>
+</span><span id="L-99"><a href="#L-99"><span class="linenos"> 99</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span 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="kc">None</span>
+</span><span id="L-100"><a href="#L-100"><span class="linenos"> 100</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">arg_key</span><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><span id="L-101"><a href="#L-101"><span class="linenos"> 101</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span>
+</span><span id="L-102"><a href="#L-102"><span class="linenos"> 102</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_type</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">DataType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>
+</span><span id="L-103"><a href="#L-103"><span class="linenos"> 103</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_meta</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="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="kc">None</span>
+</span><span id="L-104"><a href="#L-104"><span class="linenos"> 104</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_hash</span><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">int</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>
</span><span id="L-105"><a href="#L-105"><span class="linenos"> 105</span></a>
-</span><span id="L-106"><a href="#L-106"><span class="linenos"> 106</span></a> <span class="k">def</span> <span class="fm">__eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="L-107"><a href="#L-107"><span class="linenos"> 107</span></a> <span class="k">return</span> <span class="nb">type</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">type</span><span class="p">(</span><span class="n">other</span><span class="p">)</span> <span class="ow">and</span> <span class="nb">hash</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">==</span> <span class="nb">hash</span><span class="p">(</span><span class="n">other</span><span class="p">)</span>
+</span><span id="L-106"><a href="#L-106"><span class="linenos"> 106</span></a> <span class="k">for</span> <span class="n">arg_key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+</span><span id="L-107"><a href="#L-107"><span class="linenos"> 107</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_set_parent</span><span class="p">(</span><span class="n">arg_key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
</span><span id="L-108"><a href="#L-108"><span class="linenos"> 108</span></a>
-</span><span id="L-109"><a href="#L-109"><span class="linenos"> 109</span></a> <span class="nd">@property</span>
-</span><span id="L-110"><a href="#L-110"><span class="linenos"> 110</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-111"><a href="#L-111"><span class="linenos"> 111</span></a> <span class="k">return</span> <span class="nb">frozenset</span><span class="p">(</span>
-</span><span id="L-112"><a href="#L-112"><span class="linenos"> 112</span></a> <span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="nb">tuple</span><span class="p">(</span><span class="n">_norm_arg</span><span class="p">(</span><span class="n">a</span><span class="p">)</span> <span class="k">for</span> <span class="n">a</span> <span class="ow">in</span> <span class="n">v</span><span class="p">)</span> <span class="k">if</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 class="k">else</span> <span class="n">_norm_arg</span><span class="p">(</span><span class="n">v</span><span class="p">))</span>
-</span><span id="L-113"><a href="#L-113"><span class="linenos"> 113</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span>
-</span><span id="L-114"><a href="#L-114"><span class="linenos"> 114</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="p">(</span><span class="n">v</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="n">v</span> <span class="ow">is</span> <span class="kc">False</span> <span class="ow">or</span> <span class="p">(</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 class="ow">and</span> <span class="ow">not</span> <span class="n">v</span><span class="p">))</span>
-</span><span id="L-115"><a href="#L-115"><span class="linenos"> 115</span></a> <span class="p">)</span>
-</span><span id="L-116"><a href="#L-116"><span class="linenos"> 116</span></a>
-</span><span id="L-117"><a href="#L-117"><span class="linenos"> 117</span></a> <span class="k">def</span> <span class="fm">__hash__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">int</span><span class="p">:</span>
-</span><span id="L-118"><a href="#L-118"><span class="linenos"> 118</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_hash</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="L-119"><a href="#L-119"><span class="linenos"> 119</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_hash</span>
-</span><span id="L-120"><a href="#L-120"><span class="linenos"> 120</span></a>
-</span><span id="L-121"><a href="#L-121"><span class="linenos"> 121</span></a> <span class="k">return</span> <span class="nb">hash</span><span class="p">((</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">hashable_args</span><span class="p">))</span>
-</span><span id="L-122"><a href="#L-122"><span class="linenos"> 122</span></a>
-</span><span id="L-123"><a href="#L-123"><span class="linenos"> 123</span></a> <span class="nd">@property</span>
-</span><span id="L-124"><a href="#L-124"><span class="linenos"> 124</span></a> <span class="k">def</span> <span class="nf">this</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-125"><a href="#L-125"><span class="linenos"> 125</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-126"><a href="#L-126"><span class="linenos"> 126</span></a><span class="sd"> Retrieves the argument with key &quot;this&quot;.</span>
-</span><span id="L-127"><a href="#L-127"><span class="linenos"> 127</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-128"><a href="#L-128"><span class="linenos"> 128</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;this&quot;</span><span class="p">)</span>
-</span><span id="L-129"><a href="#L-129"><span class="linenos"> 129</span></a>
-</span><span id="L-130"><a href="#L-130"><span class="linenos"> 130</span></a> <span class="nd">@property</span>
-</span><span id="L-131"><a href="#L-131"><span class="linenos"> 131</span></a> <span class="k">def</span> <span class="nf">expression</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-132"><a href="#L-132"><span class="linenos"> 132</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-133"><a href="#L-133"><span class="linenos"> 133</span></a><span class="sd"> Retrieves the argument with key &quot;expression&quot;.</span>
-</span><span id="L-134"><a href="#L-134"><span class="linenos"> 134</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-135"><a href="#L-135"><span class="linenos"> 135</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;expression&quot;</span><span class="p">)</span>
-</span><span id="L-136"><a href="#L-136"><span class="linenos"> 136</span></a>
-</span><span id="L-137"><a href="#L-137"><span class="linenos"> 137</span></a> <span class="nd">@property</span>
-</span><span id="L-138"><a href="#L-138"><span class="linenos"> 138</span></a> <span class="k">def</span> <span class="nf">expressions</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]:</span>
-</span><span id="L-139"><a href="#L-139"><span class="linenos"> 139</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-140"><a href="#L-140"><span class="linenos"> 140</span></a><span class="sd"> Retrieves the argument with key &quot;expressions&quot;.</span>
-</span><span id="L-141"><a href="#L-141"><span class="linenos"> 141</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-142"><a href="#L-142"><span class="linenos"> 142</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;expressions&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]</span>
-</span><span id="L-143"><a href="#L-143"><span class="linenos"> 143</span></a>
-</span><span id="L-144"><a href="#L-144"><span class="linenos"> 144</span></a> <span class="k">def</span> <span class="nf">text</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-145"><a href="#L-145"><span class="linenos"> 145</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-146"><a href="#L-146"><span class="linenos"> 146</span></a><span class="sd"> Returns a textual representation of the argument corresponding to &quot;key&quot;. This can only be used</span>
-</span><span id="L-147"><a href="#L-147"><span class="linenos"> 147</span></a><span class="sd"> for args that are strings or leaf Expression instances, such as identifiers and literals.</span>
-</span><span id="L-148"><a href="#L-148"><span class="linenos"> 148</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-149"><a href="#L-149"><span class="linenos"> 149</span></a> <span class="n">field</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">key</span><span class="p">)</span>
-</span><span id="L-150"><a href="#L-150"><span class="linenos"> 150</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">field</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
-</span><span id="L-151"><a href="#L-151"><span class="linenos"> 151</span></a> <span class="k">return</span> <span class="n">field</span>
-</span><span id="L-152"><a href="#L-152"><span class="linenos"> 152</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">field</span><span class="p">,</span> <span class="p">(</span><span class="n">Identifier</span><span class="p">,</span> <span class="n">Literal</span><span class="p">,</span> <span class="n">Var</span><span class="p">)):</span>
-</span><span id="L-153"><a href="#L-153"><span class="linenos"> 153</span></a> <span class="k">return</span> <span class="n">field</span><span class="o">.</span><span class="n">this</span>
-</span><span id="L-154"><a href="#L-154"><span class="linenos"> 154</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">field</span><span class="p">,</span> <span class="p">(</span><span class="n">Star</span><span class="p">,</span> <span class="n">Null</span><span class="p">)):</span>
-</span><span id="L-155"><a href="#L-155"><span class="linenos"> 155</span></a> <span class="k">return</span> <span class="n">field</span><span class="o">.</span><span class="n">name</span>
-</span><span id="L-156"><a href="#L-156"><span class="linenos"> 156</span></a> <span class="k">return</span> <span class="s2">&quot;&quot;</span>
-</span><span id="L-157"><a href="#L-157"><span class="linenos"> 157</span></a>
-</span><span id="L-158"><a href="#L-158"><span class="linenos"> 158</span></a> <span class="nd">@property</span>
-</span><span id="L-159"><a href="#L-159"><span class="linenos"> 159</span></a> <span class="k">def</span> <span class="nf">is_string</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-160"><a href="#L-160"><span class="linenos"> 160</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-161"><a href="#L-161"><span class="linenos"> 161</span></a><span class="sd"> Checks whether a Literal expression is a string.</span>
-</span><span id="L-162"><a href="#L-162"><span class="linenos"> 162</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-163"><a href="#L-163"><span class="linenos"> 163</span></a> <span class="k">return</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Literal</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;is_string&quot;</span><span class="p">]</span>
-</span><span id="L-164"><a href="#L-164"><span class="linenos"> 164</span></a>
-</span><span id="L-165"><a href="#L-165"><span class="linenos"> 165</span></a> <span class="nd">@property</span>
-</span><span id="L-166"><a href="#L-166"><span class="linenos"> 166</span></a> <span class="k">def</span> <span class="nf">is_number</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-167"><a href="#L-167"><span class="linenos"> 167</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-168"><a href="#L-168"><span class="linenos"> 168</span></a><span class="sd"> Checks whether a Literal expression is a number.</span>
-</span><span id="L-169"><a href="#L-169"><span class="linenos"> 169</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-170"><a href="#L-170"><span class="linenos"> 170</span></a> <span class="k">return</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Literal</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;is_string&quot;</span><span class="p">]</span>
-</span><span id="L-171"><a href="#L-171"><span class="linenos"> 171</span></a>
-</span><span id="L-172"><a href="#L-172"><span class="linenos"> 172</span></a> <span class="nd">@property</span>
-</span><span id="L-173"><a href="#L-173"><span class="linenos"> 173</span></a> <span class="k">def</span> <span class="nf">is_int</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-174"><a href="#L-174"><span class="linenos"> 174</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-175"><a href="#L-175"><span class="linenos"> 175</span></a><span class="sd"> Checks whether a Literal expression is an integer.</span>
-</span><span id="L-176"><a href="#L-176"><span class="linenos"> 176</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-177"><a href="#L-177"><span class="linenos"> 177</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_number</span><span class="p">:</span>
-</span><span id="L-178"><a href="#L-178"><span class="linenos"> 178</span></a> <span class="k">try</span><span class="p">:</span>
-</span><span id="L-179"><a href="#L-179"><span class="linenos"> 179</span></a> <span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
-</span><span id="L-180"><a href="#L-180"><span class="linenos"> 180</span></a> <span class="k">return</span> <span class="kc">True</span>
-</span><span id="L-181"><a href="#L-181"><span class="linenos"> 181</span></a> <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
-</span><span id="L-182"><a href="#L-182"><span class="linenos"> 182</span></a> <span class="k">pass</span>
-</span><span id="L-183"><a href="#L-183"><span class="linenos"> 183</span></a> <span class="k">return</span> <span class="kc">False</span>
-</span><span id="L-184"><a href="#L-184"><span class="linenos"> 184</span></a>
-</span><span id="L-185"><a href="#L-185"><span class="linenos"> 185</span></a> <span class="nd">@property</span>
-</span><span id="L-186"><a href="#L-186"><span class="linenos"> 186</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-187"><a href="#L-187"><span class="linenos"> 187</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Checks whether an expression is a star.&quot;&quot;&quot;</span>
-</span><span id="L-188"><a href="#L-188"><span class="linenos"> 188</span></a> <span class="k">return</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Star</span><span class="p">)</span> <span class="ow">or</span> <span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Column</span><span class="p">)</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">Star</span><span class="p">))</span>
-</span><span id="L-189"><a href="#L-189"><span class="linenos"> 189</span></a>
-</span><span id="L-190"><a href="#L-190"><span class="linenos"> 190</span></a> <span class="nd">@property</span>
-</span><span id="L-191"><a href="#L-191"><span class="linenos"> 191</span></a> <span class="k">def</span> <span class="nf">alias</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-192"><a href="#L-192"><span class="linenos"> 192</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-193"><a href="#L-193"><span class="linenos"> 193</span></a><span class="sd"> Returns the alias of the expression, or an empty string if it&#39;s not aliased.</span>
-</span><span id="L-194"><a href="#L-194"><span class="linenos"> 194</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-195"><a href="#L-195"><span class="linenos"> 195</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;alias&quot;</span><span class="p">),</span> <span class="n">TableAlias</span><span class="p">):</span>
-</span><span id="L-196"><a href="#L-196"><span class="linenos"> 196</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;alias&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">name</span>
-</span><span id="L-197"><a href="#L-197"><span class="linenos"> 197</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;alias&quot;</span><span class="p">)</span>
-</span><span id="L-198"><a href="#L-198"><span class="linenos"> 198</span></a>
-</span><span id="L-199"><a href="#L-199"><span class="linenos"> 199</span></a> <span class="nd">@property</span>
-</span><span id="L-200"><a href="#L-200"><span class="linenos"> 200</span></a> <span class="k">def</span> <span class="nf">alias_column_names</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
-</span><span id="L-201"><a href="#L-201"><span class="linenos"> 201</span></a> <span class="n">table_alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;alias&quot;</span><span class="p">)</span>
-</span><span id="L-202"><a href="#L-202"><span class="linenos"> 202</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">table_alias</span><span class="p">:</span>
-</span><span id="L-203"><a href="#L-203"><span class="linenos"> 203</span></a> <span class="k">return</span> <span class="p">[]</span>
-</span><span id="L-204"><a href="#L-204"><span class="linenos"> 204</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">c</span><span class="o">.</span><span class="n">name</span> <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="n">table_alias</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;columns&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]]</span>
-</span><span id="L-205"><a href="#L-205"><span class="linenos"> 205</span></a>
-</span><span id="L-206"><a href="#L-206"><span class="linenos"> 206</span></a> <span class="nd">@property</span>
-</span><span id="L-207"><a href="#L-207"><span class="linenos"> 207</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-208"><a href="#L-208"><span class="linenos"> 208</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;this&quot;</span><span class="p">)</span>
-</span><span id="L-209"><a href="#L-209"><span class="linenos"> 209</span></a>
-</span><span id="L-210"><a href="#L-210"><span class="linenos"> 210</span></a> <span class="nd">@property</span>
-</span><span id="L-211"><a href="#L-211"><span class="linenos"> 211</span></a> <span class="k">def</span> <span class="nf">alias_or_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-212"><a href="#L-212"><span class="linenos"> 212</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
-</span><span id="L-213"><a href="#L-213"><span class="linenos"> 213</span></a>
-</span><span id="L-214"><a href="#L-214"><span class="linenos"> 214</span></a> <span class="nd">@property</span>
-</span><span id="L-215"><a href="#L-215"><span class="linenos"> 215</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-216"><a href="#L-216"><span class="linenos"> 216</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-217"><a href="#L-217"><span class="linenos"> 217</span></a><span class="sd"> Name of the output column if this expression is a selection.</span>
-</span><span id="L-218"><a href="#L-218"><span class="linenos"> 218</span></a>
-</span><span id="L-219"><a href="#L-219"><span class="linenos"> 219</span></a><span class="sd"> If the Expression has no output name, an empty string is returned.</span>
-</span><span id="L-220"><a href="#L-220"><span class="linenos"> 220</span></a>
-</span><span id="L-221"><a href="#L-221"><span class="linenos"> 221</span></a><span class="sd"> Example:</span>
-</span><span id="L-222"><a href="#L-222"><span class="linenos"> 222</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
-</span><span id="L-223"><a href="#L-223"><span class="linenos"> 223</span></a><span class="sd"> &gt;&gt;&gt; parse_one(&quot;SELECT a&quot;).expressions[0].output_name</span>
-</span><span id="L-224"><a href="#L-224"><span class="linenos"> 224</span></a><span class="sd"> &#39;a&#39;</span>
-</span><span id="L-225"><a href="#L-225"><span class="linenos"> 225</span></a><span class="sd"> &gt;&gt;&gt; parse_one(&quot;SELECT b AS c&quot;).expressions[0].output_name</span>
-</span><span id="L-226"><a href="#L-226"><span class="linenos"> 226</span></a><span class="sd"> &#39;c&#39;</span>
-</span><span id="L-227"><a href="#L-227"><span class="linenos"> 227</span></a><span class="sd"> &gt;&gt;&gt; parse_one(&quot;SELECT 1 + 2&quot;).expressions[0].output_name</span>
-</span><span id="L-228"><a href="#L-228"><span class="linenos"> 228</span></a><span class="sd"> &#39;&#39;</span>
-</span><span id="L-229"><a href="#L-229"><span class="linenos"> 229</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-230"><a href="#L-230"><span class="linenos"> 230</span></a> <span class="k">return</span> <span class="s2">&quot;&quot;</span>
-</span><span id="L-231"><a href="#L-231"><span class="linenos"> 231</span></a>
-</span><span id="L-232"><a href="#L-232"><span class="linenos"> 232</span></a> <span class="nd">@property</span>
-</span><span id="L-233"><a href="#L-233"><span class="linenos"> 233</span></a> <span class="k">def</span> <span class="nf">type</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">DataType</span><span class="p">]:</span>
-</span><span id="L-234"><a href="#L-234"><span class="linenos"> 234</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_type</span>
-</span><span id="L-235"><a href="#L-235"><span class="linenos"> 235</span></a>
-</span><span id="L-236"><a href="#L-236"><span class="linenos"> 236</span></a> <span class="nd">@type</span><span class="o">.</span><span class="n">setter</span>
-</span><span id="L-237"><a href="#L-237"><span class="linenos"> 237</span></a> <span class="k">def</span> <span class="nf">type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">DataType</span> <span class="o">|</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span> <span class="o">|</span> <span class="nb">str</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="L-238"><a href="#L-238"><span class="linenos"> 238</span></a> <span class="k">if</span> <span class="n">dtype</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">DataType</span><span class="p">):</span>
-</span><span id="L-239"><a href="#L-239"><span class="linenos"> 239</span></a> <span class="n">dtype</span> <span class="o">=</span> <span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span>
-</span><span id="L-240"><a href="#L-240"><span class="linenos"> 240</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_type</span> <span class="o">=</span> <span class="n">dtype</span> <span class="c1"># type: ignore</span>
-</span><span id="L-241"><a href="#L-241"><span class="linenos"> 241</span></a>
-</span><span id="L-242"><a href="#L-242"><span class="linenos"> 242</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">dtypes</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="L-243"><a href="#L-243"><span class="linenos"> 243</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">type</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">type</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="o">*</span><span class="n">dtypes</span><span class="p">)</span>
+</span><span id="L-109"><a href="#L-109"><span class="linenos"> 109</span></a> <span class="k">def</span> <span class="fm">__eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="L-110"><a href="#L-110"><span class="linenos"> 110</span></a> <span class="k">return</span> <span class="nb">type</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">type</span><span class="p">(</span><span class="n">other</span><span class="p">)</span> <span class="ow">and</span> <span class="nb">hash</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">==</span> <span class="nb">hash</span><span class="p">(</span><span class="n">other</span><span class="p">)</span>
+</span><span id="L-111"><a href="#L-111"><span class="linenos"> 111</span></a>
+</span><span id="L-112"><a href="#L-112"><span class="linenos"> 112</span></a> <span class="nd">@property</span>
+</span><span id="L-113"><a href="#L-113"><span class="linenos"> 113</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-114"><a href="#L-114"><span class="linenos"> 114</span></a> <span class="k">return</span> <span class="nb">frozenset</span><span class="p">(</span>
+</span><span id="L-115"><a href="#L-115"><span class="linenos"> 115</span></a> <span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="nb">tuple</span><span class="p">(</span><span class="n">_norm_arg</span><span class="p">(</span><span class="n">a</span><span class="p">)</span> <span class="k">for</span> <span class="n">a</span> <span class="ow">in</span> <span class="n">v</span><span class="p">)</span> <span class="k">if</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 class="k">else</span> <span class="n">_norm_arg</span><span class="p">(</span><span class="n">v</span><span class="p">))</span>
+</span><span id="L-116"><a href="#L-116"><span class="linenos"> 116</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span>
+</span><span id="L-117"><a href="#L-117"><span class="linenos"> 117</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="p">(</span><span class="n">v</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="n">v</span> <span class="ow">is</span> <span class="kc">False</span> <span class="ow">or</span> <span class="p">(</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 class="ow">and</span> <span class="ow">not</span> <span class="n">v</span><span class="p">))</span>
+</span><span id="L-118"><a href="#L-118"><span class="linenos"> 118</span></a> <span class="p">)</span>
+</span><span id="L-119"><a href="#L-119"><span class="linenos"> 119</span></a>
+</span><span id="L-120"><a href="#L-120"><span class="linenos"> 120</span></a> <span class="k">def</span> <span class="fm">__hash__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">int</span><span class="p">:</span>
+</span><span id="L-121"><a href="#L-121"><span class="linenos"> 121</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_hash</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="L-122"><a href="#L-122"><span class="linenos"> 122</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_hash</span>
+</span><span id="L-123"><a href="#L-123"><span class="linenos"> 123</span></a>
+</span><span id="L-124"><a href="#L-124"><span class="linenos"> 124</span></a> <span class="k">return</span> <span class="nb">hash</span><span class="p">((</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">hashable_args</span><span class="p">))</span>
+</span><span id="L-125"><a href="#L-125"><span class="linenos"> 125</span></a>
+</span><span id="L-126"><a href="#L-126"><span class="linenos"> 126</span></a> <span class="nd">@property</span>
+</span><span id="L-127"><a href="#L-127"><span class="linenos"> 127</span></a> <span class="k">def</span> <span class="nf">this</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-128"><a href="#L-128"><span class="linenos"> 128</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-129"><a href="#L-129"><span class="linenos"> 129</span></a><span class="sd"> Retrieves the argument with key &quot;this&quot;.</span>
+</span><span id="L-130"><a href="#L-130"><span class="linenos"> 130</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-131"><a href="#L-131"><span class="linenos"> 131</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;this&quot;</span><span class="p">)</span>
+</span><span id="L-132"><a href="#L-132"><span class="linenos"> 132</span></a>
+</span><span id="L-133"><a href="#L-133"><span class="linenos"> 133</span></a> <span class="nd">@property</span>
+</span><span id="L-134"><a href="#L-134"><span class="linenos"> 134</span></a> <span class="k">def</span> <span class="nf">expression</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-135"><a href="#L-135"><span class="linenos"> 135</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-136"><a href="#L-136"><span class="linenos"> 136</span></a><span class="sd"> Retrieves the argument with key &quot;expression&quot;.</span>
+</span><span id="L-137"><a href="#L-137"><span class="linenos"> 137</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-138"><a href="#L-138"><span class="linenos"> 138</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;expression&quot;</span><span class="p">)</span>
+</span><span id="L-139"><a href="#L-139"><span class="linenos"> 139</span></a>
+</span><span id="L-140"><a href="#L-140"><span class="linenos"> 140</span></a> <span class="nd">@property</span>
+</span><span id="L-141"><a href="#L-141"><span class="linenos"> 141</span></a> <span class="k">def</span> <span class="nf">expressions</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]:</span>
+</span><span id="L-142"><a href="#L-142"><span class="linenos"> 142</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-143"><a href="#L-143"><span class="linenos"> 143</span></a><span class="sd"> Retrieves the argument with key &quot;expressions&quot;.</span>
+</span><span id="L-144"><a href="#L-144"><span class="linenos"> 144</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-145"><a href="#L-145"><span class="linenos"> 145</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;expressions&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]</span>
+</span><span id="L-146"><a href="#L-146"><span class="linenos"> 146</span></a>
+</span><span id="L-147"><a href="#L-147"><span class="linenos"> 147</span></a> <span class="k">def</span> <span class="nf">text</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-148"><a href="#L-148"><span class="linenos"> 148</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-149"><a href="#L-149"><span class="linenos"> 149</span></a><span class="sd"> Returns a textual representation of the argument corresponding to &quot;key&quot;. This can only be used</span>
+</span><span id="L-150"><a href="#L-150"><span class="linenos"> 150</span></a><span class="sd"> for args that are strings or leaf Expression instances, such as identifiers and literals.</span>
+</span><span id="L-151"><a href="#L-151"><span class="linenos"> 151</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-152"><a href="#L-152"><span class="linenos"> 152</span></a> <span class="n">field</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">key</span><span class="p">)</span>
+</span><span id="L-153"><a href="#L-153"><span class="linenos"> 153</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">field</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
+</span><span id="L-154"><a href="#L-154"><span class="linenos"> 154</span></a> <span class="k">return</span> <span class="n">field</span>
+</span><span id="L-155"><a href="#L-155"><span class="linenos"> 155</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">field</span><span class="p">,</span> <span class="p">(</span><span class="n">Identifier</span><span class="p">,</span> <span class="n">Literal</span><span class="p">,</span> <span class="n">Var</span><span class="p">)):</span>
+</span><span id="L-156"><a href="#L-156"><span class="linenos"> 156</span></a> <span class="k">return</span> <span class="n">field</span><span class="o">.</span><span class="n">this</span>
+</span><span id="L-157"><a href="#L-157"><span class="linenos"> 157</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">field</span><span class="p">,</span> <span class="p">(</span><span class="n">Star</span><span class="p">,</span> <span class="n">Null</span><span class="p">)):</span>
+</span><span id="L-158"><a href="#L-158"><span class="linenos"> 158</span></a> <span class="k">return</span> <span class="n">field</span><span class="o">.</span><span class="n">name</span>
+</span><span id="L-159"><a href="#L-159"><span class="linenos"> 159</span></a> <span class="k">return</span> <span class="s2">&quot;&quot;</span>
+</span><span id="L-160"><a href="#L-160"><span class="linenos"> 160</span></a>
+</span><span id="L-161"><a href="#L-161"><span class="linenos"> 161</span></a> <span class="nd">@property</span>
+</span><span id="L-162"><a href="#L-162"><span class="linenos"> 162</span></a> <span class="k">def</span> <span class="nf">is_string</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-163"><a href="#L-163"><span class="linenos"> 163</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-164"><a href="#L-164"><span class="linenos"> 164</span></a><span class="sd"> Checks whether a Literal expression is a string.</span>
+</span><span id="L-165"><a href="#L-165"><span class="linenos"> 165</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-166"><a href="#L-166"><span class="linenos"> 166</span></a> <span class="k">return</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Literal</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;is_string&quot;</span><span class="p">]</span>
+</span><span id="L-167"><a href="#L-167"><span class="linenos"> 167</span></a>
+</span><span id="L-168"><a href="#L-168"><span class="linenos"> 168</span></a> <span class="nd">@property</span>
+</span><span id="L-169"><a href="#L-169"><span class="linenos"> 169</span></a> <span class="k">def</span> <span class="nf">is_number</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-170"><a href="#L-170"><span class="linenos"> 170</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-171"><a href="#L-171"><span class="linenos"> 171</span></a><span class="sd"> Checks whether a Literal expression is a number.</span>
+</span><span id="L-172"><a href="#L-172"><span class="linenos"> 172</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-173"><a href="#L-173"><span class="linenos"> 173</span></a> <span class="k">return</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Literal</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;is_string&quot;</span><span class="p">]</span>
+</span><span id="L-174"><a href="#L-174"><span class="linenos"> 174</span></a>
+</span><span id="L-175"><a href="#L-175"><span class="linenos"> 175</span></a> <span class="nd">@property</span>
+</span><span id="L-176"><a href="#L-176"><span class="linenos"> 176</span></a> <span class="k">def</span> <span class="nf">is_int</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-177"><a href="#L-177"><span class="linenos"> 177</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-178"><a href="#L-178"><span class="linenos"> 178</span></a><span class="sd"> Checks whether a Literal expression is an integer.</span>
+</span><span id="L-179"><a href="#L-179"><span class="linenos"> 179</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-180"><a href="#L-180"><span class="linenos"> 180</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_number</span><span class="p">:</span>
+</span><span id="L-181"><a href="#L-181"><span class="linenos"> 181</span></a> <span class="k">try</span><span class="p">:</span>
+</span><span id="L-182"><a href="#L-182"><span class="linenos"> 182</span></a> <span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+</span><span id="L-183"><a href="#L-183"><span class="linenos"> 183</span></a> <span class="k">return</span> <span class="kc">True</span>
+</span><span id="L-184"><a href="#L-184"><span class="linenos"> 184</span></a> <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
+</span><span id="L-185"><a href="#L-185"><span class="linenos"> 185</span></a> <span class="k">pass</span>
+</span><span id="L-186"><a href="#L-186"><span class="linenos"> 186</span></a> <span class="k">return</span> <span class="kc">False</span>
+</span><span id="L-187"><a href="#L-187"><span class="linenos"> 187</span></a>
+</span><span id="L-188"><a href="#L-188"><span class="linenos"> 188</span></a> <span class="nd">@property</span>
+</span><span id="L-189"><a href="#L-189"><span class="linenos"> 189</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-190"><a href="#L-190"><span class="linenos"> 190</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Checks whether an expression is a star.&quot;&quot;&quot;</span>
+</span><span id="L-191"><a href="#L-191"><span class="linenos"> 191</span></a> <span class="k">return</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Star</span><span class="p">)</span> <span class="ow">or</span> <span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Column</span><span class="p">)</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">Star</span><span class="p">))</span>
+</span><span id="L-192"><a href="#L-192"><span class="linenos"> 192</span></a>
+</span><span id="L-193"><a href="#L-193"><span class="linenos"> 193</span></a> <span class="nd">@property</span>
+</span><span id="L-194"><a href="#L-194"><span class="linenos"> 194</span></a> <span class="k">def</span> <span class="nf">alias</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-195"><a href="#L-195"><span class="linenos"> 195</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-196"><a href="#L-196"><span class="linenos"> 196</span></a><span class="sd"> Returns the alias of the expression, or an empty string if it&#39;s not aliased.</span>
+</span><span id="L-197"><a href="#L-197"><span class="linenos"> 197</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-198"><a href="#L-198"><span class="linenos"> 198</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;alias&quot;</span><span class="p">),</span> <span class="n">TableAlias</span><span class="p">):</span>
+</span><span id="L-199"><a href="#L-199"><span class="linenos"> 199</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;alias&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">name</span>
+</span><span id="L-200"><a href="#L-200"><span class="linenos"> 200</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;alias&quot;</span><span class="p">)</span>
+</span><span id="L-201"><a href="#L-201"><span class="linenos"> 201</span></a>
+</span><span id="L-202"><a href="#L-202"><span class="linenos"> 202</span></a> <span class="nd">@property</span>
+</span><span id="L-203"><a href="#L-203"><span class="linenos"> 203</span></a> <span class="k">def</span> <span class="nf">alias_column_names</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
+</span><span id="L-204"><a href="#L-204"><span class="linenos"> 204</span></a> <span class="n">table_alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;alias&quot;</span><span class="p">)</span>
+</span><span id="L-205"><a href="#L-205"><span class="linenos"> 205</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">table_alias</span><span class="p">:</span>
+</span><span id="L-206"><a href="#L-206"><span class="linenos"> 206</span></a> <span class="k">return</span> <span class="p">[]</span>
+</span><span id="L-207"><a href="#L-207"><span class="linenos"> 207</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">c</span><span class="o">.</span><span class="n">name</span> <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="n">table_alias</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;columns&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]]</span>
+</span><span id="L-208"><a href="#L-208"><span class="linenos"> 208</span></a>
+</span><span id="L-209"><a href="#L-209"><span class="linenos"> 209</span></a> <span class="nd">@property</span>
+</span><span id="L-210"><a href="#L-210"><span class="linenos"> 210</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-211"><a href="#L-211"><span class="linenos"> 211</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;this&quot;</span><span class="p">)</span>
+</span><span id="L-212"><a href="#L-212"><span class="linenos"> 212</span></a>
+</span><span id="L-213"><a href="#L-213"><span class="linenos"> 213</span></a> <span class="nd">@property</span>
+</span><span id="L-214"><a href="#L-214"><span class="linenos"> 214</span></a> <span class="k">def</span> <span class="nf">alias_or_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-215"><a href="#L-215"><span class="linenos"> 215</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
+</span><span id="L-216"><a href="#L-216"><span class="linenos"> 216</span></a>
+</span><span id="L-217"><a href="#L-217"><span class="linenos"> 217</span></a> <span class="nd">@property</span>
+</span><span id="L-218"><a href="#L-218"><span class="linenos"> 218</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-219"><a href="#L-219"><span class="linenos"> 219</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-220"><a href="#L-220"><span class="linenos"> 220</span></a><span class="sd"> Name of the output column if this expression is a selection.</span>
+</span><span id="L-221"><a href="#L-221"><span class="linenos"> 221</span></a>
+</span><span id="L-222"><a href="#L-222"><span class="linenos"> 222</span></a><span class="sd"> If the Expression has no output name, an empty string is returned.</span>
+</span><span id="L-223"><a href="#L-223"><span class="linenos"> 223</span></a>
+</span><span id="L-224"><a href="#L-224"><span class="linenos"> 224</span></a><span class="sd"> Example:</span>
+</span><span id="L-225"><a href="#L-225"><span class="linenos"> 225</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
+</span><span id="L-226"><a href="#L-226"><span class="linenos"> 226</span></a><span class="sd"> &gt;&gt;&gt; parse_one(&quot;SELECT a&quot;).expressions[0].output_name</span>
+</span><span id="L-227"><a href="#L-227"><span class="linenos"> 227</span></a><span class="sd"> &#39;a&#39;</span>
+</span><span id="L-228"><a href="#L-228"><span class="linenos"> 228</span></a><span class="sd"> &gt;&gt;&gt; parse_one(&quot;SELECT b AS c&quot;).expressions[0].output_name</span>
+</span><span id="L-229"><a href="#L-229"><span class="linenos"> 229</span></a><span class="sd"> &#39;c&#39;</span>
+</span><span id="L-230"><a href="#L-230"><span class="linenos"> 230</span></a><span class="sd"> &gt;&gt;&gt; parse_one(&quot;SELECT 1 + 2&quot;).expressions[0].output_name</span>
+</span><span id="L-231"><a href="#L-231"><span class="linenos"> 231</span></a><span class="sd"> &#39;&#39;</span>
+</span><span id="L-232"><a href="#L-232"><span class="linenos"> 232</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-233"><a href="#L-233"><span class="linenos"> 233</span></a> <span class="k">return</span> <span class="s2">&quot;&quot;</span>
+</span><span id="L-234"><a href="#L-234"><span class="linenos"> 234</span></a>
+</span><span id="L-235"><a href="#L-235"><span class="linenos"> 235</span></a> <span class="nd">@property</span>
+</span><span id="L-236"><a href="#L-236"><span class="linenos"> 236</span></a> <span class="k">def</span> <span class="nf">type</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">DataType</span><span class="p">]:</span>
+</span><span id="L-237"><a href="#L-237"><span class="linenos"> 237</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_type</span>
+</span><span id="L-238"><a href="#L-238"><span class="linenos"> 238</span></a>
+</span><span id="L-239"><a href="#L-239"><span class="linenos"> 239</span></a> <span class="nd">@type</span><span class="o">.</span><span class="n">setter</span>
+</span><span id="L-240"><a href="#L-240"><span class="linenos"> 240</span></a> <span class="k">def</span> <span class="nf">type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">DataType</span> <span class="o">|</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span> <span class="o">|</span> <span class="nb">str</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="L-241"><a href="#L-241"><span class="linenos"> 241</span></a> <span class="k">if</span> <span class="n">dtype</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">DataType</span><span class="p">):</span>
+</span><span id="L-242"><a href="#L-242"><span class="linenos"> 242</span></a> <span class="n">dtype</span> <span class="o">=</span> <span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span>
+</span><span id="L-243"><a href="#L-243"><span class="linenos"> 243</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_type</span> <span class="o">=</span> <span class="n">dtype</span> <span class="c1"># type: ignore</span>
</span><span id="L-244"><a href="#L-244"><span class="linenos"> 244</span></a>
-</span><span id="L-245"><a href="#L-245"><span class="linenos"> 245</span></a> <span class="nd">@property</span>
-</span><span id="L-246"><a href="#L-246"><span class="linenos"> 246</span></a> <span class="k">def</span> <span class="nf">meta</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]:</span>
-</span><span id="L-247"><a href="#L-247"><span class="linenos"> 247</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_meta</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="L-248"><a href="#L-248"><span class="linenos"> 248</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_meta</span> <span class="o">=</span> <span class="p">{}</span>
-</span><span id="L-249"><a href="#L-249"><span class="linenos"> 249</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_meta</span>
+</span><span id="L-245"><a href="#L-245"><span class="linenos"> 245</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">dtypes</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="L-246"><a href="#L-246"><span class="linenos"> 246</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">type</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">type</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="o">*</span><span class="n">dtypes</span><span class="p">)</span>
+</span><span id="L-247"><a href="#L-247"><span class="linenos"> 247</span></a>
+</span><span id="L-248"><a href="#L-248"><span class="linenos"> 248</span></a> <span class="k">def</span> <span class="nf">is_leaf</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-249"><a href="#L-249"><span class="linenos"> 249</span></a> <span class="k">return</span> <span class="ow">not</span> <span class="nb">any</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="p">(</span><span class="n">Expression</span><span class="p">,</span> <span class="nb">list</span><span class="p">))</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">values</span><span class="p">())</span>
</span><span id="L-250"><a href="#L-250"><span class="linenos"> 250</span></a>
-</span><span id="L-251"><a href="#L-251"><span class="linenos"> 251</span></a> <span class="k">def</span> <span class="nf">__deepcopy__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">memo</span><span class="p">):</span>
-</span><span id="L-252"><a href="#L-252"><span class="linenos"> 252</span></a> <span class="n">copy</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">(</span><span class="o">**</span><span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">))</span>
-</span><span id="L-253"><a href="#L-253"><span class="linenos"> 253</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="L-254"><a href="#L-254"><span class="linenos"> 254</span></a> <span class="n">copy</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">comments</span><span class="p">)</span>
-</span><span id="L-255"><a href="#L-255"><span class="linenos"> 255</span></a>
-</span><span id="L-256"><a href="#L-256"><span class="linenos"> 256</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_type</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="L-257"><a href="#L-257"><span class="linenos"> 257</span></a> <span class="n">copy</span><span class="o">.</span><span class="n">_type</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_type</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
-</span><span id="L-258"><a href="#L-258"><span class="linenos"> 258</span></a>
-</span><span id="L-259"><a href="#L-259"><span class="linenos"> 259</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_meta</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="L-260"><a href="#L-260"><span class="linenos"> 260</span></a> <span class="n">copy</span><span class="o">.</span><span class="n">_meta</span> <span class="o">=</span> <span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_meta</span><span class="p">)</span>
+</span><span id="L-251"><a href="#L-251"><span class="linenos"> 251</span></a> <span class="nd">@property</span>
+</span><span id="L-252"><a href="#L-252"><span class="linenos"> 252</span></a> <span class="k">def</span> <span class="nf">meta</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]:</span>
+</span><span id="L-253"><a href="#L-253"><span class="linenos"> 253</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_meta</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="L-254"><a href="#L-254"><span class="linenos"> 254</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_meta</span> <span class="o">=</span> <span class="p">{}</span>
+</span><span id="L-255"><a href="#L-255"><span class="linenos"> 255</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_meta</span>
+</span><span id="L-256"><a href="#L-256"><span class="linenos"> 256</span></a>
+</span><span id="L-257"><a href="#L-257"><span class="linenos"> 257</span></a> <span class="k">def</span> <span class="nf">__deepcopy__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">memo</span><span class="p">):</span>
+</span><span id="L-258"><a href="#L-258"><span class="linenos"> 258</span></a> <span class="n">copy</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">(</span><span class="o">**</span><span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">))</span>
+</span><span id="L-259"><a href="#L-259"><span class="linenos"> 259</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="L-260"><a href="#L-260"><span class="linenos"> 260</span></a> <span class="n">copy</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">comments</span><span class="p">)</span>
</span><span id="L-261"><a href="#L-261"><span class="linenos"> 261</span></a>
-</span><span id="L-262"><a href="#L-262"><span class="linenos"> 262</span></a> <span class="k">return</span> <span class="n">copy</span>
-</span><span id="L-263"><a href="#L-263"><span class="linenos"> 263</span></a>
-</span><span id="L-264"><a href="#L-264"><span class="linenos"> 264</span></a> <span class="k">def</span> <span class="nf">copy</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-265"><a href="#L-265"><span class="linenos"> 265</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-266"><a href="#L-266"><span class="linenos"> 266</span></a><span class="sd"> Returns a deep copy of the expression.</span>
-</span><span id="L-267"><a href="#L-267"><span class="linenos"> 267</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-268"><a href="#L-268"><span class="linenos"> 268</span></a> <span class="n">new</span> <span class="o">=</span> <span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
-</span><span id="L-269"><a href="#L-269"><span class="linenos"> 269</span></a> <span class="n">new</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
-</span><span id="L-270"><a href="#L-270"><span class="linenos"> 270</span></a> <span class="k">return</span> <span class="n">new</span>
-</span><span id="L-271"><a href="#L-271"><span class="linenos"> 271</span></a>
-</span><span id="L-272"><a href="#L-272"><span class="linenos"> 272</span></a> <span class="k">def</span> <span class="nf">add_comments</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">comments</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]])</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="L-273"><a href="#L-273"><span class="linenos"> 273</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="L-274"><a href="#L-274"><span class="linenos"> 274</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="p">[]</span>
-</span><span id="L-275"><a href="#L-275"><span class="linenos"> 275</span></a> <span class="k">if</span> <span class="n">comments</span><span class="p">:</span>
-</span><span id="L-276"><a href="#L-276"><span class="linenos"> 276</span></a> <span class="k">for</span> <span class="n">comment</span> <span class="ow">in</span> <span class="n">comments</span><span class="p">:</span>
-</span><span id="L-277"><a href="#L-277"><span class="linenos"> 277</span></a> <span class="n">_</span><span class="p">,</span> <span class="o">*</span><span class="n">meta</span> <span class="o">=</span> <span class="n">comment</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">SQLGLOT_META</span><span class="p">)</span>
-</span><span id="L-278"><a href="#L-278"><span class="linenos"> 278</span></a> <span class="k">if</span> <span class="n">meta</span><span class="p">:</span>
-</span><span id="L-279"><a href="#L-279"><span class="linenos"> 279</span></a> <span class="k">for</span> <span class="n">kv</span> <span class="ow">in</span> <span class="s2">&quot;&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">meta</span><span class="p">)</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><span id="L-280"><a href="#L-280"><span class="linenos"> 280</span></a> <span class="n">k</span><span class="p">,</span> <span class="o">*</span><span class="n">v</span> <span class="o">=</span> <span class="n">kv</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><span id="L-281"><a href="#L-281"><span class="linenos"> 281</span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">v</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="k">if</span> <span class="n">v</span> <span class="k">else</span> <span class="kc">True</span>
-</span><span id="L-282"><a href="#L-282"><span class="linenos"> 282</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">meta</span><span class="p">[</span><span class="n">k</span><span class="o">.</span><span class="n">strip</span><span class="p">()]</span> <span class="o">=</span> <span class="n">value</span>
-</span><span id="L-283"><a href="#L-283"><span class="linenos"> 283</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">comment</span><span class="p">)</span>
-</span><span id="L-284"><a href="#L-284"><span class="linenos"> 284</span></a>
-</span><span id="L-285"><a href="#L-285"><span class="linenos"> 285</span></a> <span class="k">def</span> <span class="nf">append</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">arg_key</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="L-286"><a href="#L-286"><span class="linenos"> 286</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-287"><a href="#L-287"><span class="linenos"> 287</span></a><span class="sd"> Appends value to arg_key if it&#39;s a list or sets it as a new list.</span>
-</span><span id="L-288"><a href="#L-288"><span class="linenos"> 288</span></a>
-</span><span id="L-289"><a href="#L-289"><span class="linenos"> 289</span></a><span class="sd"> Args:</span>
-</span><span id="L-290"><a href="#L-290"><span class="linenos"> 290</span></a><span class="sd"> arg_key (str): name of the list expression arg</span>
-</span><span id="L-291"><a href="#L-291"><span class="linenos"> 291</span></a><span class="sd"> value (Any): value to append to the list</span>
-</span><span id="L-292"><a href="#L-292"><span class="linenos"> 292</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-293"><a href="#L-293"><span class="linenos"> 293</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">arg_key</span><span class="p">),</span> <span class="nb">list</span><span class="p">):</span>
-</span><span id="L-294"><a href="#L-294"><span class="linenos"> 294</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">arg_key</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
-</span><span id="L-295"><a href="#L-295"><span class="linenos"> 295</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">arg_key</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
-</span><span id="L-296"><a href="#L-296"><span class="linenos"> 296</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_set_parent</span><span class="p">(</span><span class="n">arg_key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
-</span><span id="L-297"><a href="#L-297"><span class="linenos"> 297</span></a>
-</span><span id="L-298"><a href="#L-298"><span class="linenos"> 298</span></a> <span class="k">def</span> <span class="nf">set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">arg_key</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="L-299"><a href="#L-299"><span class="linenos"> 299</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-300"><a href="#L-300"><span class="linenos"> 300</span></a><span class="sd"> Sets arg_key to value.</span>
-</span><span id="L-301"><a href="#L-301"><span class="linenos"> 301</span></a>
-</span><span id="L-302"><a href="#L-302"><span class="linenos"> 302</span></a><span class="sd"> Args:</span>
-</span><span id="L-303"><a href="#L-303"><span class="linenos"> 303</span></a><span class="sd"> arg_key: name of the expression arg.</span>
-</span><span id="L-304"><a href="#L-304"><span class="linenos"> 304</span></a><span class="sd"> value: value to set the arg to.</span>
-</span><span id="L-305"><a href="#L-305"><span class="linenos"> 305</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-306"><a href="#L-306"><span class="linenos"> 306</span></a> <span class="k">if</span> <span class="n">value</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="L-307"><a href="#L-307"><span class="linenos"> 307</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">arg_key</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
-</span><span id="L-308"><a href="#L-308"><span class="linenos"> 308</span></a> <span class="k">return</span>
-</span><span id="L-309"><a href="#L-309"><span class="linenos"> 309</span></a>
-</span><span id="L-310"><a href="#L-310"><span class="linenos"> 310</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">arg_key</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span>
-</span><span id="L-311"><a href="#L-311"><span class="linenos"> 311</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_set_parent</span><span class="p">(</span><span class="n">arg_key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
-</span><span id="L-312"><a href="#L-312"><span class="linenos"> 312</span></a>
-</span><span id="L-313"><a href="#L-313"><span class="linenos"> 313</span></a> <span class="k">def</span> <span class="nf">_set_parent</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">arg_key</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="L-314"><a href="#L-314"><span class="linenos"> 314</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">):</span>
-</span><span id="L-315"><a href="#L-315"><span class="linenos"> 315</span></a> <span class="n">value</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span>
-</span><span id="L-316"><a href="#L-316"><span class="linenos"> 316</span></a> <span class="n">value</span><span class="o">.</span><span class="n">arg_key</span> <span class="o">=</span> <span class="n">arg_key</span>
-</span><span id="L-317"><a href="#L-317"><span class="linenos"> 317</span></a> <span class="k">elif</span> <span class="nb">type</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">list</span><span class="p">:</span>
-</span><span id="L-318"><a href="#L-318"><span class="linenos"> 318</span></a> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">:</span>
-</span><span id="L-319"><a href="#L-319"><span class="linenos"> 319</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">):</span>
-</span><span id="L-320"><a href="#L-320"><span class="linenos"> 320</span></a> <span class="n">v</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span>
-</span><span id="L-321"><a href="#L-321"><span class="linenos"> 321</span></a> <span class="n">v</span><span class="o">.</span><span class="n">arg_key</span> <span class="o">=</span> <span class="n">arg_key</span>
-</span><span id="L-322"><a href="#L-322"><span class="linenos"> 322</span></a>
-</span><span id="L-323"><a href="#L-323"><span class="linenos"> 323</span></a> <span class="nd">@property</span>
-</span><span id="L-324"><a href="#L-324"><span class="linenos"> 324</span></a> <span class="k">def</span> <span class="nf">depth</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">int</span><span class="p">:</span>
-</span><span id="L-325"><a href="#L-325"><span class="linenos"> 325</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-326"><a href="#L-326"><span class="linenos"> 326</span></a><span class="sd"> Returns the depth of this tree.</span>
-</span><span id="L-327"><a href="#L-327"><span class="linenos"> 327</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-328"><a href="#L-328"><span class="linenos"> 328</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">:</span>
-</span><span id="L-329"><a href="#L-329"><span class="linenos"> 329</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">depth</span> <span class="o">+</span> <span class="mi">1</span>
-</span><span id="L-330"><a href="#L-330"><span class="linenos"> 330</span></a> <span class="k">return</span> <span class="mi">0</span>
-</span><span id="L-331"><a href="#L-331"><span class="linenos"> 331</span></a>
-</span><span id="L-332"><a href="#L-332"><span class="linenos"> 332</span></a> <span class="k">def</span> <span class="nf">iter_expressions</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Iterator</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Tuple</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Expression</span><span class="p">]]:</span>
-</span><span id="L-333"><a href="#L-333"><span class="linenos"> 333</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Yields the key and expression for all arguments, exploding list args.&quot;&quot;&quot;</span>
-</span><span id="L-334"><a href="#L-334"><span class="linenos"> 334</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">vs</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
-</span><span id="L-335"><a href="#L-335"><span class="linenos"> 335</span></a> <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">vs</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">list</span><span class="p">:</span>
-</span><span id="L-336"><a href="#L-336"><span class="linenos"> 336</span></a> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">vs</span><span class="p">:</span>
-</span><span id="L-337"><a href="#L-337"><span class="linenos"> 337</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">):</span>
-</span><span id="L-338"><a href="#L-338"><span class="linenos"> 338</span></a> <span class="k">yield</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span>
-</span><span id="L-339"><a href="#L-339"><span class="linenos"> 339</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-340"><a href="#L-340"><span class="linenos"> 340</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">vs</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">):</span>
-</span><span id="L-341"><a href="#L-341"><span class="linenos"> 341</span></a> <span class="k">yield</span> <span class="n">k</span><span class="p">,</span> <span class="n">vs</span>
-</span><span id="L-342"><a href="#L-342"><span class="linenos"> 342</span></a>
-</span><span id="L-343"><a href="#L-343"><span class="linenos"> 343</span></a> <span class="k">def</span> <span class="nf">find</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">],</span> <span class="n">bfs</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">E</span><span class="p">]:</span>
-</span><span id="L-344"><a href="#L-344"><span class="linenos"> 344</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-345"><a href="#L-345"><span class="linenos"> 345</span></a><span class="sd"> Returns the first node in this tree which matches at least one of</span>
-</span><span id="L-346"><a href="#L-346"><span class="linenos"> 346</span></a><span class="sd"> the specified types.</span>
-</span><span id="L-347"><a href="#L-347"><span class="linenos"> 347</span></a>
-</span><span id="L-348"><a href="#L-348"><span class="linenos"> 348</span></a><span class="sd"> Args:</span>
-</span><span id="L-349"><a href="#L-349"><span class="linenos"> 349</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
-</span><span id="L-350"><a href="#L-350"><span class="linenos"> 350</span></a><span class="sd"> bfs: whether to search the AST using the BFS algorithm (DFS is used if false).</span>
-</span><span id="L-351"><a href="#L-351"><span class="linenos"> 351</span></a>
-</span><span id="L-352"><a href="#L-352"><span class="linenos"> 352</span></a><span class="sd"> Returns:</span>
-</span><span id="L-353"><a href="#L-353"><span class="linenos"> 353</span></a><span class="sd"> The node which matches the criteria or None if no such node was found.</span>
-</span><span id="L-354"><a href="#L-354"><span class="linenos"> 354</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-355"><a href="#L-355"><span class="linenos"> 355</span></a> <span class="k">return</span> <span class="nb">next</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="o">*</span><span class="n">expression_types</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="n">bfs</span><span class="p">),</span> <span class="kc">None</span><span class="p">)</span>
-</span><span id="L-356"><a href="#L-356"><span class="linenos"> 356</span></a>
-</span><span id="L-357"><a href="#L-357"><span class="linenos"> 357</span></a> <span class="k">def</span> <span class="nf">find_all</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">],</span> <span class="n">bfs</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Iterator</span><span class="p">[</span><span class="n">E</span><span class="p">]:</span>
-</span><span id="L-358"><a href="#L-358"><span class="linenos"> 358</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-359"><a href="#L-359"><span class="linenos"> 359</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree and only</span>
-</span><span id="L-360"><a href="#L-360"><span class="linenos"> 360</span></a><span class="sd"> yields those that match at least one of the specified expression types.</span>
-</span><span id="L-361"><a href="#L-361"><span class="linenos"> 361</span></a>
-</span><span id="L-362"><a href="#L-362"><span class="linenos"> 362</span></a><span class="sd"> Args:</span>
-</span><span id="L-363"><a href="#L-363"><span class="linenos"> 363</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
-</span><span id="L-364"><a href="#L-364"><span class="linenos"> 364</span></a><span class="sd"> bfs: whether to search the AST using the BFS algorithm (DFS is used if false).</span>
-</span><span id="L-365"><a href="#L-365"><span class="linenos"> 365</span></a>
-</span><span id="L-366"><a href="#L-366"><span class="linenos"> 366</span></a><span class="sd"> Returns:</span>
-</span><span id="L-367"><a href="#L-367"><span class="linenos"> 367</span></a><span class="sd"> The generator object.</span>
-</span><span id="L-368"><a href="#L-368"><span class="linenos"> 368</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-369"><a href="#L-369"><span class="linenos"> 369</span></a> <span class="k">for</span> <span class="n">expression</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">walk</span><span class="p">(</span><span class="n">bfs</span><span class="o">=</span><span class="n">bfs</span><span class="p">):</span>
-</span><span id="L-370"><a href="#L-370"><span class="linenos"> 370</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">expression_types</span><span class="p">):</span>
-</span><span id="L-371"><a href="#L-371"><span class="linenos"> 371</span></a> <span class="k">yield</span> <span class="n">expression</span>
-</span><span id="L-372"><a href="#L-372"><span class="linenos"> 372</span></a>
-</span><span id="L-373"><a href="#L-373"><span class="linenos"> 373</span></a> <span class="k">def</span> <span class="nf">find_ancestor</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">E</span><span class="p">]:</span>
-</span><span id="L-374"><a href="#L-374"><span class="linenos"> 374</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-375"><a href="#L-375"><span class="linenos"> 375</span></a><span class="sd"> Returns a nearest parent matching expression_types.</span>
-</span><span id="L-376"><a href="#L-376"><span class="linenos"> 376</span></a>
-</span><span id="L-377"><a href="#L-377"><span class="linenos"> 377</span></a><span class="sd"> Args:</span>
-</span><span id="L-378"><a href="#L-378"><span class="linenos"> 378</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
-</span><span id="L-379"><a href="#L-379"><span class="linenos"> 379</span></a>
-</span><span id="L-380"><a href="#L-380"><span class="linenos"> 380</span></a><span class="sd"> Returns:</span>
-</span><span id="L-381"><a href="#L-381"><span class="linenos"> 381</span></a><span class="sd"> The parent node.</span>
-</span><span id="L-382"><a href="#L-382"><span class="linenos"> 382</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-383"><a href="#L-383"><span class="linenos"> 383</span></a> <span class="n">ancestor</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
-</span><span id="L-384"><a href="#L-384"><span class="linenos"> 384</span></a> <span class="k">while</span> <span class="n">ancestor</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">ancestor</span><span class="p">,</span> <span class="n">expression_types</span><span class="p">):</span>
-</span><span id="L-385"><a href="#L-385"><span class="linenos"> 385</span></a> <span class="n">ancestor</span> <span class="o">=</span> <span class="n">ancestor</span><span class="o">.</span><span class="n">parent</span>
-</span><span id="L-386"><a href="#L-386"><span class="linenos"> 386</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">E</span><span class="p">,</span> <span class="n">ancestor</span><span class="p">)</span>
-</span><span id="L-387"><a href="#L-387"><span class="linenos"> 387</span></a>
-</span><span id="L-388"><a href="#L-388"><span class="linenos"> 388</span></a> <span class="nd">@property</span>
-</span><span id="L-389"><a href="#L-389"><span class="linenos"> 389</span></a> <span class="k">def</span> <span class="nf">parent_select</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Select</span><span class="p">]:</span>
-</span><span id="L-390"><a href="#L-390"><span class="linenos"> 390</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-391"><a href="#L-391"><span class="linenos"> 391</span></a><span class="sd"> Returns the parent select statement.</span>
-</span><span id="L-392"><a href="#L-392"><span class="linenos"> 392</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-393"><a href="#L-393"><span class="linenos"> 393</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">find_ancestor</span><span class="p">(</span><span class="n">Select</span><span class="p">)</span>
-</span><span id="L-394"><a href="#L-394"><span class="linenos"> 394</span></a>
-</span><span id="L-395"><a href="#L-395"><span class="linenos"> 395</span></a> <span class="nd">@property</span>
-</span><span id="L-396"><a href="#L-396"><span class="linenos"> 396</span></a> <span class="k">def</span> <span class="nf">same_parent</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="L-397"><a href="#L-397"><span class="linenos"> 397</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Returns if the parent is the same class as itself.&quot;&quot;&quot;</span>
-</span><span id="L-398"><a href="#L-398"><span class="linenos"> 398</span></a> <span class="k">return</span> <span class="nb">type</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">)</span> <span class="ow">is</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span>
-</span><span id="L-399"><a href="#L-399"><span class="linenos"> 399</span></a>
-</span><span id="L-400"><a href="#L-400"><span class="linenos"> 400</span></a> <span class="k">def</span> <span class="nf">root</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="L-401"><a href="#L-401"><span class="linenos"> 401</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-402"><a href="#L-402"><span class="linenos"> 402</span></a><span class="sd"> Returns the root expression of this tree.</span>
-</span><span id="L-403"><a href="#L-403"><span class="linenos"> 403</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-404"><a href="#L-404"><span class="linenos"> 404</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
-</span><span id="L-405"><a href="#L-405"><span class="linenos"> 405</span></a> <span class="k">while</span> <span class="n">expression</span><span class="o">.</span><span class="n">parent</span><span class="p">:</span>
-</span><span id="L-406"><a href="#L-406"><span class="linenos"> 406</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">parent</span>
-</span><span id="L-407"><a href="#L-407"><span class="linenos"> 407</span></a> <span class="k">return</span> <span class="n">expression</span>
-</span><span id="L-408"><a href="#L-408"><span class="linenos"> 408</span></a>
-</span><span id="L-409"><a href="#L-409"><span class="linenos"> 409</span></a> <span class="k">def</span> <span class="nf">walk</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">prune</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
-</span><span id="L-410"><a href="#L-410"><span class="linenos"> 410</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-411"><a href="#L-411"><span class="linenos"> 411</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree.</span>
-</span><span id="L-412"><a href="#L-412"><span class="linenos"> 412</span></a>
-</span><span id="L-413"><a href="#L-413"><span class="linenos"> 413</span></a><span class="sd"> Args:</span>
-</span><span id="L-414"><a href="#L-414"><span class="linenos"> 414</span></a><span class="sd"> bfs (bool): if set to True the BFS traversal order will be applied,</span>
-</span><span id="L-415"><a href="#L-415"><span class="linenos"> 415</span></a><span class="sd"> otherwise the DFS traversal will be used instead.</span>
-</span><span id="L-416"><a href="#L-416"><span class="linenos"> 416</span></a><span class="sd"> prune ((node, parent, arg_key) -&gt; bool): callable that returns True if</span>
-</span><span id="L-417"><a href="#L-417"><span class="linenos"> 417</span></a><span class="sd"> the generator should stop traversing this branch of the tree.</span>
+</span><span id="L-262"><a href="#L-262"><span class="linenos"> 262</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_type</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="L-263"><a href="#L-263"><span class="linenos"> 263</span></a> <span class="n">copy</span><span class="o">.</span><span class="n">_type</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_type</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
+</span><span id="L-264"><a href="#L-264"><span class="linenos"> 264</span></a>
+</span><span id="L-265"><a href="#L-265"><span class="linenos"> 265</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_meta</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="L-266"><a href="#L-266"><span class="linenos"> 266</span></a> <span class="n">copy</span><span class="o">.</span><span class="n">_meta</span> <span class="o">=</span> <span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_meta</span><span class="p">)</span>
+</span><span id="L-267"><a href="#L-267"><span class="linenos"> 267</span></a>
+</span><span id="L-268"><a href="#L-268"><span class="linenos"> 268</span></a> <span class="k">return</span> <span class="n">copy</span>
+</span><span id="L-269"><a href="#L-269"><span class="linenos"> 269</span></a>
+</span><span id="L-270"><a href="#L-270"><span class="linenos"> 270</span></a> <span class="k">def</span> <span class="nf">copy</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="L-271"><a href="#L-271"><span class="linenos"> 271</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-272"><a href="#L-272"><span class="linenos"> 272</span></a><span class="sd"> Returns a deep copy of the expression.</span>
+</span><span id="L-273"><a href="#L-273"><span class="linenos"> 273</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-274"><a href="#L-274"><span class="linenos"> 274</span></a> <span class="n">new</span> <span class="o">=</span> <span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
+</span><span id="L-275"><a href="#L-275"><span class="linenos"> 275</span></a> <span class="n">new</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
+</span><span id="L-276"><a href="#L-276"><span class="linenos"> 276</span></a> <span class="k">return</span> <span class="n">new</span>
+</span><span id="L-277"><a href="#L-277"><span class="linenos"> 277</span></a>
+</span><span id="L-278"><a href="#L-278"><span class="linenos"> 278</span></a> <span class="k">def</span> <span class="nf">add_comments</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">comments</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]])</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="L-279"><a href="#L-279"><span class="linenos"> 279</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="L-280"><a href="#L-280"><span class="linenos"> 280</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="L-281"><a href="#L-281"><span class="linenos"> 281</span></a> <span class="k">if</span> <span class="n">comments</span><span class="p">:</span>
+</span><span id="L-282"><a href="#L-282"><span class="linenos"> 282</span></a> <span class="k">for</span> <span class="n">comment</span> <span class="ow">in</span> <span class="n">comments</span><span class="p">:</span>
+</span><span id="L-283"><a href="#L-283"><span class="linenos"> 283</span></a> <span class="n">_</span><span class="p">,</span> <span class="o">*</span><span class="n">meta</span> <span class="o">=</span> <span class="n">comment</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">SQLGLOT_META</span><span class="p">)</span>
+</span><span id="L-284"><a href="#L-284"><span class="linenos"> 284</span></a> <span class="k">if</span> <span class="n">meta</span><span class="p">:</span>
+</span><span id="L-285"><a href="#L-285"><span class="linenos"> 285</span></a> <span class="k">for</span> <span class="n">kv</span> <span class="ow">in</span> <span class="s2">&quot;&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">meta</span><span class="p">)</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><span id="L-286"><a href="#L-286"><span class="linenos"> 286</span></a> <span class="n">k</span><span class="p">,</span> <span class="o">*</span><span class="n">v</span> <span class="o">=</span> <span class="n">kv</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><span id="L-287"><a href="#L-287"><span class="linenos"> 287</span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">v</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="k">if</span> <span class="n">v</span> <span class="k">else</span> <span class="kc">True</span>
+</span><span id="L-288"><a href="#L-288"><span class="linenos"> 288</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">meta</span><span class="p">[</span><span class="n">k</span><span class="o">.</span><span class="n">strip</span><span class="p">()]</span> <span class="o">=</span> <span class="n">value</span>
+</span><span id="L-289"><a href="#L-289"><span class="linenos"> 289</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">comment</span><span class="p">)</span>
+</span><span id="L-290"><a href="#L-290"><span class="linenos"> 290</span></a>
+</span><span id="L-291"><a href="#L-291"><span class="linenos"> 291</span></a> <span class="k">def</span> <span class="nf">append</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">arg_key</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="L-292"><a href="#L-292"><span class="linenos"> 292</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-293"><a href="#L-293"><span class="linenos"> 293</span></a><span class="sd"> Appends value to arg_key if it&#39;s a list or sets it as a new list.</span>
+</span><span id="L-294"><a href="#L-294"><span class="linenos"> 294</span></a>
+</span><span id="L-295"><a href="#L-295"><span class="linenos"> 295</span></a><span class="sd"> Args:</span>
+</span><span id="L-296"><a href="#L-296"><span class="linenos"> 296</span></a><span class="sd"> arg_key (str): name of the list expression arg</span>
+</span><span id="L-297"><a href="#L-297"><span class="linenos"> 297</span></a><span class="sd"> value (Any): value to append to the list</span>
+</span><span id="L-298"><a href="#L-298"><span class="linenos"> 298</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-299"><a href="#L-299"><span class="linenos"> 299</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">arg_key</span><span class="p">),</span> <span class="nb">list</span><span class="p">):</span>
+</span><span id="L-300"><a href="#L-300"><span class="linenos"> 300</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">arg_key</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="L-301"><a href="#L-301"><span class="linenos"> 301</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">arg_key</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
+</span><span id="L-302"><a href="#L-302"><span class="linenos"> 302</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_set_parent</span><span class="p">(</span><span class="n">arg_key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
+</span><span id="L-303"><a href="#L-303"><span class="linenos"> 303</span></a>
+</span><span id="L-304"><a href="#L-304"><span class="linenos"> 304</span></a> <span class="k">def</span> <span class="nf">set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">arg_key</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="L-305"><a href="#L-305"><span class="linenos"> 305</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-306"><a href="#L-306"><span class="linenos"> 306</span></a><span class="sd"> Sets arg_key to value.</span>
+</span><span id="L-307"><a href="#L-307"><span class="linenos"> 307</span></a>
+</span><span id="L-308"><a href="#L-308"><span class="linenos"> 308</span></a><span class="sd"> Args:</span>
+</span><span id="L-309"><a href="#L-309"><span class="linenos"> 309</span></a><span class="sd"> arg_key: name of the expression arg.</span>
+</span><span id="L-310"><a href="#L-310"><span class="linenos"> 310</span></a><span class="sd"> value: value to set the arg to.</span>
+</span><span id="L-311"><a href="#L-311"><span class="linenos"> 311</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-312"><a href="#L-312"><span class="linenos"> 312</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-313"><a href="#L-313"><span class="linenos"> 313</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">arg_key</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
+</span><span id="L-314"><a href="#L-314"><span class="linenos"> 314</span></a> <span class="k">return</span>
+</span><span id="L-315"><a href="#L-315"><span class="linenos"> 315</span></a>
+</span><span id="L-316"><a href="#L-316"><span class="linenos"> 316</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">arg_key</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span>
+</span><span id="L-317"><a href="#L-317"><span class="linenos"> 317</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_set_parent</span><span class="p">(</span><span class="n">arg_key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
+</span><span id="L-318"><a href="#L-318"><span class="linenos"> 318</span></a>
+</span><span id="L-319"><a href="#L-319"><span class="linenos"> 319</span></a> <span class="k">def</span> <span class="nf">_set_parent</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">arg_key</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="L-320"><a href="#L-320"><span class="linenos"> 320</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">):</span>
+</span><span id="L-321"><a href="#L-321"><span class="linenos"> 321</span></a> <span class="n">value</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span>
+</span><span id="L-322"><a href="#L-322"><span class="linenos"> 322</span></a> <span class="n">value</span><span class="o">.</span><span class="n">arg_key</span> <span class="o">=</span> <span class="n">arg_key</span>
+</span><span id="L-323"><a href="#L-323"><span class="linenos"> 323</span></a> <span class="k">elif</span> <span class="nb">type</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">list</span><span class="p">:</span>
+</span><span id="L-324"><a href="#L-324"><span class="linenos"> 324</span></a> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">:</span>
+</span><span id="L-325"><a href="#L-325"><span class="linenos"> 325</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">):</span>
+</span><span id="L-326"><a href="#L-326"><span class="linenos"> 326</span></a> <span class="n">v</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span>
+</span><span id="L-327"><a href="#L-327"><span class="linenos"> 327</span></a> <span class="n">v</span><span class="o">.</span><span class="n">arg_key</span> <span class="o">=</span> <span class="n">arg_key</span>
+</span><span id="L-328"><a href="#L-328"><span class="linenos"> 328</span></a>
+</span><span id="L-329"><a href="#L-329"><span class="linenos"> 329</span></a> <span class="nd">@property</span>
+</span><span id="L-330"><a href="#L-330"><span class="linenos"> 330</span></a> <span class="k">def</span> <span class="nf">depth</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">int</span><span class="p">:</span>
+</span><span id="L-331"><a href="#L-331"><span class="linenos"> 331</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-332"><a href="#L-332"><span class="linenos"> 332</span></a><span class="sd"> Returns the depth of this tree.</span>
+</span><span id="L-333"><a href="#L-333"><span class="linenos"> 333</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-334"><a href="#L-334"><span class="linenos"> 334</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">:</span>
+</span><span id="L-335"><a href="#L-335"><span class="linenos"> 335</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">depth</span> <span class="o">+</span> <span class="mi">1</span>
+</span><span id="L-336"><a href="#L-336"><span class="linenos"> 336</span></a> <span class="k">return</span> <span class="mi">0</span>
+</span><span id="L-337"><a href="#L-337"><span class="linenos"> 337</span></a>
+</span><span id="L-338"><a href="#L-338"><span class="linenos"> 338</span></a> <span class="k">def</span> <span class="nf">iter_expressions</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Iterator</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Tuple</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Expression</span><span class="p">]]:</span>
+</span><span id="L-339"><a href="#L-339"><span class="linenos"> 339</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Yields the key and expression for all arguments, exploding list args.&quot;&quot;&quot;</span>
+</span><span id="L-340"><a href="#L-340"><span class="linenos"> 340</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">vs</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+</span><span id="L-341"><a href="#L-341"><span class="linenos"> 341</span></a> <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">vs</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">list</span><span class="p">:</span>
+</span><span id="L-342"><a href="#L-342"><span class="linenos"> 342</span></a> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">vs</span><span class="p">:</span>
+</span><span id="L-343"><a href="#L-343"><span class="linenos"> 343</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">):</span>
+</span><span id="L-344"><a href="#L-344"><span class="linenos"> 344</span></a> <span class="k">yield</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span>
+</span><span id="L-345"><a href="#L-345"><span class="linenos"> 345</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-346"><a href="#L-346"><span class="linenos"> 346</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">vs</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">):</span>
+</span><span id="L-347"><a href="#L-347"><span class="linenos"> 347</span></a> <span class="k">yield</span> <span class="n">k</span><span class="p">,</span> <span class="n">vs</span>
+</span><span id="L-348"><a href="#L-348"><span class="linenos"> 348</span></a>
+</span><span id="L-349"><a href="#L-349"><span class="linenos"> 349</span></a> <span class="k">def</span> <span class="nf">find</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">],</span> <span class="n">bfs</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">E</span><span class="p">]:</span>
+</span><span id="L-350"><a href="#L-350"><span class="linenos"> 350</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-351"><a href="#L-351"><span class="linenos"> 351</span></a><span class="sd"> Returns the first node in this tree which matches at least one of</span>
+</span><span id="L-352"><a href="#L-352"><span class="linenos"> 352</span></a><span class="sd"> the specified types.</span>
+</span><span id="L-353"><a href="#L-353"><span class="linenos"> 353</span></a>
+</span><span id="L-354"><a href="#L-354"><span class="linenos"> 354</span></a><span class="sd"> Args:</span>
+</span><span id="L-355"><a href="#L-355"><span class="linenos"> 355</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
+</span><span id="L-356"><a href="#L-356"><span class="linenos"> 356</span></a><span class="sd"> bfs: whether to search the AST using the BFS algorithm (DFS is used if false).</span>
+</span><span id="L-357"><a href="#L-357"><span class="linenos"> 357</span></a>
+</span><span id="L-358"><a href="#L-358"><span class="linenos"> 358</span></a><span class="sd"> Returns:</span>
+</span><span id="L-359"><a href="#L-359"><span class="linenos"> 359</span></a><span class="sd"> The node which matches the criteria or None if no such node was found.</span>
+</span><span id="L-360"><a href="#L-360"><span class="linenos"> 360</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-361"><a href="#L-361"><span class="linenos"> 361</span></a> <span class="k">return</span> <span class="nb">next</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="o">*</span><span class="n">expression_types</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="n">bfs</span><span class="p">),</span> <span class="kc">None</span><span class="p">)</span>
+</span><span id="L-362"><a href="#L-362"><span class="linenos"> 362</span></a>
+</span><span id="L-363"><a href="#L-363"><span class="linenos"> 363</span></a> <span class="k">def</span> <span class="nf">find_all</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">],</span> <span class="n">bfs</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Iterator</span><span class="p">[</span><span class="n">E</span><span class="p">]:</span>
+</span><span id="L-364"><a href="#L-364"><span class="linenos"> 364</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-365"><a href="#L-365"><span class="linenos"> 365</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree and only</span>
+</span><span id="L-366"><a href="#L-366"><span class="linenos"> 366</span></a><span class="sd"> yields those that match at least one of the specified expression types.</span>
+</span><span id="L-367"><a href="#L-367"><span class="linenos"> 367</span></a>
+</span><span id="L-368"><a href="#L-368"><span class="linenos"> 368</span></a><span class="sd"> Args:</span>
+</span><span id="L-369"><a href="#L-369"><span class="linenos"> 369</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
+</span><span id="L-370"><a href="#L-370"><span class="linenos"> 370</span></a><span class="sd"> bfs: whether to search the AST using the BFS algorithm (DFS is used if false).</span>
+</span><span id="L-371"><a href="#L-371"><span class="linenos"> 371</span></a>
+</span><span id="L-372"><a href="#L-372"><span class="linenos"> 372</span></a><span class="sd"> Returns:</span>
+</span><span id="L-373"><a href="#L-373"><span class="linenos"> 373</span></a><span class="sd"> The generator object.</span>
+</span><span id="L-374"><a href="#L-374"><span class="linenos"> 374</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-375"><a href="#L-375"><span class="linenos"> 375</span></a> <span class="k">for</span> <span class="n">expression</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">walk</span><span class="p">(</span><span class="n">bfs</span><span class="o">=</span><span class="n">bfs</span><span class="p">):</span>
+</span><span id="L-376"><a href="#L-376"><span class="linenos"> 376</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">expression_types</span><span class="p">):</span>
+</span><span id="L-377"><a href="#L-377"><span class="linenos"> 377</span></a> <span class="k">yield</span> <span class="n">expression</span>
+</span><span id="L-378"><a href="#L-378"><span class="linenos"> 378</span></a>
+</span><span id="L-379"><a href="#L-379"><span class="linenos"> 379</span></a> <span class="k">def</span> <span class="nf">find_ancestor</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">E</span><span class="p">]:</span>
+</span><span id="L-380"><a href="#L-380"><span class="linenos"> 380</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-381"><a href="#L-381"><span class="linenos"> 381</span></a><span class="sd"> Returns a nearest parent matching expression_types.</span>
+</span><span id="L-382"><a href="#L-382"><span class="linenos"> 382</span></a>
+</span><span id="L-383"><a href="#L-383"><span class="linenos"> 383</span></a><span class="sd"> Args:</span>
+</span><span id="L-384"><a href="#L-384"><span class="linenos"> 384</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
+</span><span id="L-385"><a href="#L-385"><span class="linenos"> 385</span></a>
+</span><span id="L-386"><a href="#L-386"><span class="linenos"> 386</span></a><span class="sd"> Returns:</span>
+</span><span id="L-387"><a href="#L-387"><span class="linenos"> 387</span></a><span class="sd"> The parent node.</span>
+</span><span id="L-388"><a href="#L-388"><span class="linenos"> 388</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-389"><a href="#L-389"><span class="linenos"> 389</span></a> <span class="n">ancestor</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
+</span><span id="L-390"><a href="#L-390"><span class="linenos"> 390</span></a> <span class="k">while</span> <span class="n">ancestor</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">ancestor</span><span class="p">,</span> <span class="n">expression_types</span><span class="p">):</span>
+</span><span id="L-391"><a href="#L-391"><span class="linenos"> 391</span></a> <span class="n">ancestor</span> <span class="o">=</span> <span class="n">ancestor</span><span class="o">.</span><span class="n">parent</span>
+</span><span id="L-392"><a href="#L-392"><span class="linenos"> 392</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">E</span><span class="p">,</span> <span class="n">ancestor</span><span class="p">)</span>
+</span><span id="L-393"><a href="#L-393"><span class="linenos"> 393</span></a>
+</span><span id="L-394"><a href="#L-394"><span class="linenos"> 394</span></a> <span class="nd">@property</span>
+</span><span id="L-395"><a href="#L-395"><span class="linenos"> 395</span></a> <span class="k">def</span> <span class="nf">parent_select</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Select</span><span class="p">]:</span>
+</span><span id="L-396"><a href="#L-396"><span class="linenos"> 396</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-397"><a href="#L-397"><span class="linenos"> 397</span></a><span class="sd"> Returns the parent select statement.</span>
+</span><span id="L-398"><a href="#L-398"><span class="linenos"> 398</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-399"><a href="#L-399"><span class="linenos"> 399</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">find_ancestor</span><span class="p">(</span><span class="n">Select</span><span class="p">)</span>
+</span><span id="L-400"><a href="#L-400"><span class="linenos"> 400</span></a>
+</span><span id="L-401"><a href="#L-401"><span class="linenos"> 401</span></a> <span class="nd">@property</span>
+</span><span id="L-402"><a href="#L-402"><span class="linenos"> 402</span></a> <span class="k">def</span> <span class="nf">same_parent</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="L-403"><a href="#L-403"><span class="linenos"> 403</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Returns if the parent is the same class as itself.&quot;&quot;&quot;</span>
+</span><span id="L-404"><a href="#L-404"><span class="linenos"> 404</span></a> <span class="k">return</span> <span class="nb">type</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">)</span> <span class="ow">is</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span>
+</span><span id="L-405"><a href="#L-405"><span class="linenos"> 405</span></a>
+</span><span id="L-406"><a href="#L-406"><span class="linenos"> 406</span></a> <span class="k">def</span> <span class="nf">root</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="L-407"><a href="#L-407"><span class="linenos"> 407</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-408"><a href="#L-408"><span class="linenos"> 408</span></a><span class="sd"> Returns the root expression of this tree.</span>
+</span><span id="L-409"><a href="#L-409"><span class="linenos"> 409</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-410"><a href="#L-410"><span class="linenos"> 410</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
+</span><span id="L-411"><a href="#L-411"><span class="linenos"> 411</span></a> <span class="k">while</span> <span class="n">expression</span><span class="o">.</span><span class="n">parent</span><span class="p">:</span>
+</span><span id="L-412"><a href="#L-412"><span class="linenos"> 412</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">parent</span>
+</span><span id="L-413"><a href="#L-413"><span class="linenos"> 413</span></a> <span class="k">return</span> <span class="n">expression</span>
+</span><span id="L-414"><a href="#L-414"><span class="linenos"> 414</span></a>
+</span><span id="L-415"><a href="#L-415"><span class="linenos"> 415</span></a> <span class="k">def</span> <span class="nf">walk</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">prune</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+</span><span id="L-416"><a href="#L-416"><span class="linenos"> 416</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-417"><a href="#L-417"><span class="linenos"> 417</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree.</span>
</span><span id="L-418"><a href="#L-418"><span class="linenos"> 418</span></a>
-</span><span id="L-419"><a href="#L-419"><span class="linenos"> 419</span></a><span class="sd"> Returns:</span>
-</span><span id="L-420"><a href="#L-420"><span class="linenos"> 420</span></a><span class="sd"> the generator object.</span>
-</span><span id="L-421"><a href="#L-421"><span class="linenos"> 421</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-422"><a href="#L-422"><span class="linenos"> 422</span></a> <span class="k">if</span> <span class="n">bfs</span><span class="p">:</span>
-</span><span id="L-423"><a href="#L-423"><span class="linenos"> 423</span></a> <span class="k">yield from</span> <span class="bp">self</span><span class="o">.</span><span class="n">bfs</span><span class="p">(</span><span class="n">prune</span><span class="o">=</span><span class="n">prune</span><span class="p">)</span>
-</span><span id="L-424"><a href="#L-424"><span class="linenos"> 424</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-425"><a href="#L-425"><span class="linenos"> 425</span></a> <span class="k">yield from</span> <span class="bp">self</span><span class="o">.</span><span class="n">dfs</span><span class="p">(</span><span class="n">prune</span><span class="o">=</span><span class="n">prune</span><span class="p">)</span>
-</span><span id="L-426"><a href="#L-426"><span class="linenos"> 426</span></a>
-</span><span id="L-427"><a href="#L-427"><span class="linenos"> 427</span></a> <span class="k">def</span> <span class="nf">dfs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">prune</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
-</span><span id="L-428"><a href="#L-428"><span class="linenos"> 428</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-429"><a href="#L-429"><span class="linenos"> 429</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree in</span>
-</span><span id="L-430"><a href="#L-430"><span class="linenos"> 430</span></a><span class="sd"> the DFS (Depth-first) order.</span>
-</span><span id="L-431"><a href="#L-431"><span class="linenos"> 431</span></a>
-</span><span id="L-432"><a href="#L-432"><span class="linenos"> 432</span></a><span class="sd"> Returns:</span>
-</span><span id="L-433"><a href="#L-433"><span class="linenos"> 433</span></a><span class="sd"> The generator object.</span>
-</span><span id="L-434"><a href="#L-434"><span class="linenos"> 434</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-435"><a href="#L-435"><span class="linenos"> 435</span></a> <span class="n">parent</span> <span class="o">=</span> <span class="n">parent</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
-</span><span id="L-436"><a href="#L-436"><span class="linenos"> 436</span></a> <span class="k">yield</span> <span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span>
-</span><span id="L-437"><a href="#L-437"><span class="linenos"> 437</span></a> <span class="k">if</span> <span class="n">prune</span> <span class="ow">and</span> <span class="n">prune</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
-</span><span id="L-438"><a href="#L-438"><span class="linenos"> 438</span></a> <span class="k">return</span>
-</span><span id="L-439"><a href="#L-439"><span class="linenos"> 439</span></a>
-</span><span id="L-440"><a href="#L-440"><span class="linenos"> 440</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">iter_expressions</span><span class="p">():</span>
-</span><span id="L-441"><a href="#L-441"><span class="linenos"> 441</span></a> <span class="k">yield from</span> <span class="n">v</span><span class="o">.</span><span class="n">dfs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">k</span><span class="p">,</span> <span class="n">prune</span><span class="p">)</span>
-</span><span id="L-442"><a href="#L-442"><span class="linenos"> 442</span></a>
-</span><span id="L-443"><a href="#L-443"><span class="linenos"> 443</span></a> <span class="k">def</span> <span class="nf">bfs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">prune</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
-</span><span id="L-444"><a href="#L-444"><span class="linenos"> 444</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-445"><a href="#L-445"><span class="linenos"> 445</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree in</span>
-</span><span id="L-446"><a href="#L-446"><span class="linenos"> 446</span></a><span class="sd"> the BFS (Breadth-first) order.</span>
-</span><span id="L-447"><a href="#L-447"><span class="linenos"> 447</span></a>
-</span><span id="L-448"><a href="#L-448"><span class="linenos"> 448</span></a><span class="sd"> Returns:</span>
-</span><span id="L-449"><a href="#L-449"><span class="linenos"> 449</span></a><span class="sd"> The generator object.</span>
-</span><span id="L-450"><a href="#L-450"><span class="linenos"> 450</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-451"><a href="#L-451"><span class="linenos"> 451</span></a> <span class="n">queue</span> <span class="o">=</span> <span class="n">deque</span><span class="p">([(</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="kc">None</span><span class="p">)])</span>
-</span><span id="L-452"><a href="#L-452"><span class="linenos"> 452</span></a>
-</span><span id="L-453"><a href="#L-453"><span class="linenos"> 453</span></a> <span class="k">while</span> <span class="n">queue</span><span class="p">:</span>
-</span><span id="L-454"><a href="#L-454"><span class="linenos"> 454</span></a> <span class="n">item</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span> <span class="o">=</span> <span class="n">queue</span><span class="o">.</span><span class="n">popleft</span><span class="p">()</span>
-</span><span id="L-455"><a href="#L-455"><span class="linenos"> 455</span></a>
-</span><span id="L-456"><a href="#L-456"><span class="linenos"> 456</span></a> <span class="k">yield</span> <span class="n">item</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span>
-</span><span id="L-457"><a href="#L-457"><span class="linenos"> 457</span></a> <span class="k">if</span> <span class="n">prune</span> <span class="ow">and</span> <span class="n">prune</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
-</span><span id="L-458"><a href="#L-458"><span class="linenos"> 458</span></a> <span class="k">continue</span>
-</span><span id="L-459"><a href="#L-459"><span class="linenos"> 459</span></a>
-</span><span id="L-460"><a href="#L-460"><span class="linenos"> 460</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">item</span><span class="o">.</span><span class="n">iter_expressions</span><span class="p">():</span>
-</span><span id="L-461"><a href="#L-461"><span class="linenos"> 461</span></a> <span class="n">queue</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">v</span><span class="p">,</span> <span class="n">item</span><span class="p">,</span> <span class="n">k</span><span class="p">))</span>
-</span><span id="L-462"><a href="#L-462"><span class="linenos"> 462</span></a>
-</span><span id="L-463"><a href="#L-463"><span class="linenos"> 463</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-464"><a href="#L-464"><span class="linenos"> 464</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-465"><a href="#L-465"><span class="linenos"> 465</span></a><span class="sd"> Returns the first non parenthesis child or self.</span>
-</span><span id="L-466"><a href="#L-466"><span class="linenos"> 466</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-467"><a href="#L-467"><span class="linenos"> 467</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
-</span><span id="L-468"><a href="#L-468"><span class="linenos"> 468</span></a> <span class="k">while</span> <span class="nb">type</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> <span class="ow">is</span> <span class="n">Paren</span><span class="p">:</span>
-</span><span id="L-469"><a href="#L-469"><span class="linenos"> 469</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-470"><a href="#L-470"><span class="linenos"> 470</span></a> <span class="k">return</span> <span class="n">expression</span>
-</span><span id="L-471"><a href="#L-471"><span class="linenos"> 471</span></a>
-</span><span id="L-472"><a href="#L-472"><span class="linenos"> 472</span></a> <span class="k">def</span> <span class="nf">unalias</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-473"><a href="#L-473"><span class="linenos"> 473</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-474"><a href="#L-474"><span class="linenos"> 474</span></a><span class="sd"> Returns the inner expression if this is an Alias.</span>
-</span><span id="L-475"><a href="#L-475"><span class="linenos"> 475</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-476"><a href="#L-476"><span class="linenos"> 476</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Alias</span><span class="p">):</span>
-</span><span id="L-477"><a href="#L-477"><span class="linenos"> 477</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-478"><a href="#L-478"><span class="linenos"> 478</span></a> <span class="k">return</span> <span class="bp">self</span>
-</span><span id="L-479"><a href="#L-479"><span class="linenos"> 479</span></a>
-</span><span id="L-480"><a href="#L-480"><span class="linenos"> 480</span></a> <span class="k">def</span> <span class="nf">unnest_operands</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-481"><a href="#L-481"><span class="linenos"> 481</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-482"><a href="#L-482"><span class="linenos"> 482</span></a><span class="sd"> Returns unnested operands as a tuple.</span>
-</span><span id="L-483"><a href="#L-483"><span class="linenos"> 483</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-484"><a href="#L-484"><span class="linenos"> 484</span></a> <span class="k">return</span> <span class="nb">tuple</span><span class="p">(</span><span class="n">arg</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span> <span class="k">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">arg</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">iter_expressions</span><span class="p">())</span>
+</span><span id="L-419"><a href="#L-419"><span class="linenos"> 419</span></a><span class="sd"> Args:</span>
+</span><span id="L-420"><a href="#L-420"><span class="linenos"> 420</span></a><span class="sd"> bfs (bool): if set to True the BFS traversal order will be applied,</span>
+</span><span id="L-421"><a href="#L-421"><span class="linenos"> 421</span></a><span class="sd"> otherwise the DFS traversal will be used instead.</span>
+</span><span id="L-422"><a href="#L-422"><span class="linenos"> 422</span></a><span class="sd"> prune ((node, parent, arg_key) -&gt; bool): callable that returns True if</span>
+</span><span id="L-423"><a href="#L-423"><span class="linenos"> 423</span></a><span class="sd"> the generator should stop traversing this branch of the tree.</span>
+</span><span id="L-424"><a href="#L-424"><span class="linenos"> 424</span></a>
+</span><span id="L-425"><a href="#L-425"><span class="linenos"> 425</span></a><span class="sd"> Returns:</span>
+</span><span id="L-426"><a href="#L-426"><span class="linenos"> 426</span></a><span class="sd"> the generator object.</span>
+</span><span id="L-427"><a href="#L-427"><span class="linenos"> 427</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-428"><a href="#L-428"><span class="linenos"> 428</span></a> <span class="k">if</span> <span class="n">bfs</span><span class="p">:</span>
+</span><span id="L-429"><a href="#L-429"><span class="linenos"> 429</span></a> <span class="k">yield from</span> <span class="bp">self</span><span class="o">.</span><span class="n">bfs</span><span class="p">(</span><span class="n">prune</span><span class="o">=</span><span class="n">prune</span><span class="p">)</span>
+</span><span id="L-430"><a href="#L-430"><span class="linenos"> 430</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-431"><a href="#L-431"><span class="linenos"> 431</span></a> <span class="k">yield from</span> <span class="bp">self</span><span class="o">.</span><span class="n">dfs</span><span class="p">(</span><span class="n">prune</span><span class="o">=</span><span class="n">prune</span><span class="p">)</span>
+</span><span id="L-432"><a href="#L-432"><span class="linenos"> 432</span></a>
+</span><span id="L-433"><a href="#L-433"><span class="linenos"> 433</span></a> <span class="k">def</span> <span class="nf">dfs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">prune</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+</span><span id="L-434"><a href="#L-434"><span class="linenos"> 434</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-435"><a href="#L-435"><span class="linenos"> 435</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree in</span>
+</span><span id="L-436"><a href="#L-436"><span class="linenos"> 436</span></a><span class="sd"> the DFS (Depth-first) order.</span>
+</span><span id="L-437"><a href="#L-437"><span class="linenos"> 437</span></a>
+</span><span id="L-438"><a href="#L-438"><span class="linenos"> 438</span></a><span class="sd"> Returns:</span>
+</span><span id="L-439"><a href="#L-439"><span class="linenos"> 439</span></a><span class="sd"> The generator object.</span>
+</span><span id="L-440"><a href="#L-440"><span class="linenos"> 440</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-441"><a href="#L-441"><span class="linenos"> 441</span></a> <span class="n">parent</span> <span class="o">=</span> <span class="n">parent</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
+</span><span id="L-442"><a href="#L-442"><span class="linenos"> 442</span></a> <span class="k">yield</span> <span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span>
+</span><span id="L-443"><a href="#L-443"><span class="linenos"> 443</span></a> <span class="k">if</span> <span class="n">prune</span> <span class="ow">and</span> <span class="n">prune</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
+</span><span id="L-444"><a href="#L-444"><span class="linenos"> 444</span></a> <span class="k">return</span>
+</span><span id="L-445"><a href="#L-445"><span class="linenos"> 445</span></a>
+</span><span id="L-446"><a href="#L-446"><span class="linenos"> 446</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">iter_expressions</span><span class="p">():</span>
+</span><span id="L-447"><a href="#L-447"><span class="linenos"> 447</span></a> <span class="k">yield from</span> <span class="n">v</span><span class="o">.</span><span class="n">dfs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">k</span><span class="p">,</span> <span class="n">prune</span><span class="p">)</span>
+</span><span id="L-448"><a href="#L-448"><span class="linenos"> 448</span></a>
+</span><span id="L-449"><a href="#L-449"><span class="linenos"> 449</span></a> <span class="k">def</span> <span class="nf">bfs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">prune</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+</span><span id="L-450"><a href="#L-450"><span class="linenos"> 450</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-451"><a href="#L-451"><span class="linenos"> 451</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree in</span>
+</span><span id="L-452"><a href="#L-452"><span class="linenos"> 452</span></a><span class="sd"> the BFS (Breadth-first) order.</span>
+</span><span id="L-453"><a href="#L-453"><span class="linenos"> 453</span></a>
+</span><span id="L-454"><a href="#L-454"><span class="linenos"> 454</span></a><span class="sd"> Returns:</span>
+</span><span id="L-455"><a href="#L-455"><span class="linenos"> 455</span></a><span class="sd"> The generator object.</span>
+</span><span id="L-456"><a href="#L-456"><span class="linenos"> 456</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-457"><a href="#L-457"><span class="linenos"> 457</span></a> <span class="n">queue</span> <span class="o">=</span> <span class="n">deque</span><span class="p">([(</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="kc">None</span><span class="p">)])</span>
+</span><span id="L-458"><a href="#L-458"><span class="linenos"> 458</span></a>
+</span><span id="L-459"><a href="#L-459"><span class="linenos"> 459</span></a> <span class="k">while</span> <span class="n">queue</span><span class="p">:</span>
+</span><span id="L-460"><a href="#L-460"><span class="linenos"> 460</span></a> <span class="n">item</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span> <span class="o">=</span> <span class="n">queue</span><span class="o">.</span><span class="n">popleft</span><span class="p">()</span>
+</span><span id="L-461"><a href="#L-461"><span class="linenos"> 461</span></a>
+</span><span id="L-462"><a href="#L-462"><span class="linenos"> 462</span></a> <span class="k">yield</span> <span class="n">item</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span>
+</span><span id="L-463"><a href="#L-463"><span class="linenos"> 463</span></a> <span class="k">if</span> <span class="n">prune</span> <span class="ow">and</span> <span class="n">prune</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
+</span><span id="L-464"><a href="#L-464"><span class="linenos"> 464</span></a> <span class="k">continue</span>
+</span><span id="L-465"><a href="#L-465"><span class="linenos"> 465</span></a>
+</span><span id="L-466"><a href="#L-466"><span class="linenos"> 466</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">item</span><span class="o">.</span><span class="n">iter_expressions</span><span class="p">():</span>
+</span><span id="L-467"><a href="#L-467"><span class="linenos"> 467</span></a> <span class="n">queue</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">v</span><span class="p">,</span> <span class="n">item</span><span class="p">,</span> <span class="n">k</span><span class="p">))</span>
+</span><span id="L-468"><a href="#L-468"><span class="linenos"> 468</span></a>
+</span><span id="L-469"><a href="#L-469"><span class="linenos"> 469</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-470"><a href="#L-470"><span class="linenos"> 470</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-471"><a href="#L-471"><span class="linenos"> 471</span></a><span class="sd"> Returns the first non parenthesis child or self.</span>
+</span><span id="L-472"><a href="#L-472"><span class="linenos"> 472</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-473"><a href="#L-473"><span class="linenos"> 473</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
+</span><span id="L-474"><a href="#L-474"><span class="linenos"> 474</span></a> <span class="k">while</span> <span class="nb">type</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> <span class="ow">is</span> <span class="n">Paren</span><span class="p">:</span>
+</span><span id="L-475"><a href="#L-475"><span class="linenos"> 475</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-476"><a href="#L-476"><span class="linenos"> 476</span></a> <span class="k">return</span> <span class="n">expression</span>
+</span><span id="L-477"><a href="#L-477"><span class="linenos"> 477</span></a>
+</span><span id="L-478"><a href="#L-478"><span class="linenos"> 478</span></a> <span class="k">def</span> <span class="nf">unalias</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="L-479"><a href="#L-479"><span class="linenos"> 479</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-480"><a href="#L-480"><span class="linenos"> 480</span></a><span class="sd"> Returns the inner expression if this is an Alias.</span>
+</span><span id="L-481"><a href="#L-481"><span class="linenos"> 481</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-482"><a href="#L-482"><span class="linenos"> 482</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Alias</span><span class="p">):</span>
+</span><span id="L-483"><a href="#L-483"><span class="linenos"> 483</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-484"><a href="#L-484"><span class="linenos"> 484</span></a> <span class="k">return</span> <span class="bp">self</span>
</span><span id="L-485"><a href="#L-485"><span class="linenos"> 485</span></a>
-</span><span id="L-486"><a href="#L-486"><span class="linenos"> 486</span></a> <span class="k">def</span> <span class="nf">flatten</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">unnest</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
+</span><span id="L-486"><a href="#L-486"><span class="linenos"> 486</span></a> <span class="k">def</span> <span class="nf">unnest_operands</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="L-487"><a href="#L-487"><span class="linenos"> 487</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-488"><a href="#L-488"><span class="linenos"> 488</span></a><span class="sd"> Returns a generator which yields child nodes whose parents are the same class.</span>
-</span><span id="L-489"><a href="#L-489"><span class="linenos"> 489</span></a>
-</span><span id="L-490"><a href="#L-490"><span class="linenos"> 490</span></a><span class="sd"> A AND B AND C -&gt; [A, B, C]</span>
-</span><span id="L-491"><a href="#L-491"><span class="linenos"> 491</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-492"><a href="#L-492"><span class="linenos"> 492</span></a> <span class="k">for</span> <span class="n">node</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">dfs</span><span class="p">(</span><span class="n">prune</span><span class="o">=</span><span class="k">lambda</span> <span class="n">n</span><span class="p">,</span> <span class="n">p</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span><span class="p">:</span> <span class="n">p</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">type</span><span class="p">(</span><span class="n">n</span><span class="p">)</span> <span class="ow">is</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">):</span>
-</span><span id="L-493"><a href="#L-493"><span class="linenos"> 493</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">type</span><span class="p">(</span><span class="n">node</span><span class="p">)</span> <span class="ow">is</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">:</span>
-</span><span id="L-494"><a href="#L-494"><span class="linenos"> 494</span></a> <span class="k">yield</span> <span class="n">node</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span> <span class="k">if</span> <span class="n">unnest</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">Subquery</span><span class="p">)</span> <span class="k">else</span> <span class="n">node</span>
+</span><span id="L-488"><a href="#L-488"><span class="linenos"> 488</span></a><span class="sd"> Returns unnested operands as a tuple.</span>
+</span><span id="L-489"><a href="#L-489"><span class="linenos"> 489</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-490"><a href="#L-490"><span class="linenos"> 490</span></a> <span class="k">return</span> <span class="nb">tuple</span><span class="p">(</span><span class="n">arg</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span> <span class="k">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">arg</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">iter_expressions</span><span class="p">())</span>
+</span><span id="L-491"><a href="#L-491"><span class="linenos"> 491</span></a>
+</span><span id="L-492"><a href="#L-492"><span class="linenos"> 492</span></a> <span class="k">def</span> <span class="nf">flatten</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">unnest</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
+</span><span id="L-493"><a href="#L-493"><span class="linenos"> 493</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-494"><a href="#L-494"><span class="linenos"> 494</span></a><span class="sd"> Returns a generator which yields child nodes whose parents are the same class.</span>
</span><span id="L-495"><a href="#L-495"><span class="linenos"> 495</span></a>
-</span><span id="L-496"><a href="#L-496"><span class="linenos"> 496</span></a> <span class="k">def</span> <span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-497"><a href="#L-497"><span class="linenos"> 497</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
-</span><span id="L-498"><a href="#L-498"><span class="linenos"> 498</span></a>
-</span><span id="L-499"><a href="#L-499"><span class="linenos"> 499</span></a> <span class="k">def</span> <span class="fm">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-500"><a href="#L-500"><span class="linenos"> 500</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_to_s</span><span class="p">()</span>
+</span><span id="L-496"><a href="#L-496"><span class="linenos"> 496</span></a><span class="sd"> A AND B AND C -&gt; [A, B, C]</span>
+</span><span id="L-497"><a href="#L-497"><span class="linenos"> 497</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-498"><a href="#L-498"><span class="linenos"> 498</span></a> <span class="k">for</span> <span class="n">node</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">dfs</span><span class="p">(</span><span class="n">prune</span><span class="o">=</span><span class="k">lambda</span> <span class="n">n</span><span class="p">,</span> <span class="n">p</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span><span class="p">:</span> <span class="n">p</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">type</span><span class="p">(</span><span class="n">n</span><span class="p">)</span> <span class="ow">is</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">):</span>
+</span><span id="L-499"><a href="#L-499"><span class="linenos"> 499</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">type</span><span class="p">(</span><span class="n">node</span><span class="p">)</span> <span class="ow">is</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">:</span>
+</span><span id="L-500"><a href="#L-500"><span class="linenos"> 500</span></a> <span class="k">yield</span> <span class="n">node</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span> <span class="k">if</span> <span class="n">unnest</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">Subquery</span><span class="p">)</span> <span class="k">else</span> <span class="n">node</span>
</span><span id="L-501"><a href="#L-501"><span class="linenos"> 501</span></a>
-</span><span id="L-502"><a href="#L-502"><span class="linenos"> 502</span></a> <span class="k">def</span> <span class="nf">sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-503"><a href="#L-503"><span class="linenos"> 503</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-504"><a href="#L-504"><span class="linenos"> 504</span></a><span class="sd"> Returns SQL string representation of this tree.</span>
-</span><span id="L-505"><a href="#L-505"><span class="linenos"> 505</span></a>
-</span><span id="L-506"><a href="#L-506"><span class="linenos"> 506</span></a><span class="sd"> Args:</span>
-</span><span id="L-507"><a href="#L-507"><span class="linenos"> 507</span></a><span class="sd"> dialect: the dialect of the output SQL string (eg. &quot;spark&quot;, &quot;hive&quot;, &quot;presto&quot;, &quot;mysql&quot;).</span>
-</span><span id="L-508"><a href="#L-508"><span class="linenos"> 508</span></a><span class="sd"> opts: other `sqlglot.generator.Generator` options.</span>
-</span><span id="L-509"><a href="#L-509"><span class="linenos"> 509</span></a>
-</span><span id="L-510"><a href="#L-510"><span class="linenos"> 510</span></a><span class="sd"> Returns:</span>
-</span><span id="L-511"><a href="#L-511"><span class="linenos"> 511</span></a><span class="sd"> The SQL string.</span>
+</span><span id="L-502"><a href="#L-502"><span class="linenos"> 502</span></a> <span class="k">def</span> <span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-503"><a href="#L-503"><span class="linenos"> 503</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
+</span><span id="L-504"><a href="#L-504"><span class="linenos"> 504</span></a>
+</span><span id="L-505"><a href="#L-505"><span class="linenos"> 505</span></a> <span class="k">def</span> <span class="fm">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-506"><a href="#L-506"><span class="linenos"> 506</span></a> <span class="k">return</span> <span class="n">_to_s</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
+</span><span id="L-507"><a href="#L-507"><span class="linenos"> 507</span></a>
+</span><span id="L-508"><a href="#L-508"><span class="linenos"> 508</span></a> <span class="k">def</span> <span class="nf">to_s</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-509"><a href="#L-509"><span class="linenos"> 509</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-510"><a href="#L-510"><span class="linenos"> 510</span></a><span class="sd"> Same as __repr__, but includes additional information which can be useful</span>
+</span><span id="L-511"><a href="#L-511"><span class="linenos"> 511</span></a><span class="sd"> for debugging, like empty or missing args and the AST nodes&#39; object IDs.</span>
</span><span id="L-512"><a href="#L-512"><span class="linenos"> 512</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-513"><a href="#L-513"><span class="linenos"> 513</span></a> <span class="kn">from</span> <span class="nn">sqlglot.dialects</span> <span class="kn">import</span> <span class="n">Dialect</span>
+</span><span id="L-513"><a href="#L-513"><span class="linenos"> 513</span></a> <span class="k">return</span> <span class="n">_to_s</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">verbose</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</span><span id="L-514"><a href="#L-514"><span class="linenos"> 514</span></a>
-</span><span id="L-515"><a href="#L-515"><span class="linenos"> 515</span></a> <span class="k">return</span> <span class="n">Dialect</span><span class="o">.</span><span class="n">get_or_raise</span><span class="p">(</span><span class="n">dialect</span><span class="p">)</span><span class="o">.</span><span class="n">generate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-516"><a href="#L-516"><span class="linenos"> 516</span></a>
-</span><span id="L-517"><a href="#L-517"><span class="linenos"> 517</span></a> <span class="k">def</span> <span class="nf">_to_s</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">hide_missing</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">level</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">0</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-518"><a href="#L-518"><span class="linenos"> 518</span></a> <span class="n">indent</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">level</span> <span class="k">else</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span>
-</span><span id="L-519"><a href="#L-519"><span class="linenos"> 519</span></a> <span class="n">indent</span> <span class="o">+=</span> <span class="s2">&quot;&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="s2">&quot; &quot;</span><span class="p">]</span> <span class="o">*</span> <span class="n">level</span><span class="p">)</span>
-</span><span id="L-520"><a href="#L-520"><span class="linenos"> 520</span></a> <span class="n">left</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;(</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">key</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span><span class="si">}</span><span class="s2"> &quot;</span>
-</span><span id="L-521"><a href="#L-521"><span class="linenos"> 521</span></a>
-</span><span id="L-522"><a href="#L-522"><span class="linenos"> 522</span></a> <span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-523"><a href="#L-523"><span class="linenos"> 523</span></a> <span class="n">k</span><span class="p">:</span> <span class="s2">&quot;, &quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span>
-</span><span id="L-524"><a href="#L-524"><span class="linenos"> 524</span></a> <span class="n">v</span><span class="o">.</span><span class="n">_to_s</span><span class="p">(</span><span class="n">hide_missing</span><span class="o">=</span><span class="n">hide_missing</span><span class="p">,</span> <span class="n">level</span><span class="o">=</span><span class="n">level</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span>
-</span><span id="L-525"><a href="#L-525"><span class="linenos"> 525</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="s2">&quot;_to_s&quot;</span><span class="p">)</span>
-</span><span id="L-526"><a href="#L-526"><span class="linenos"> 526</span></a> <span class="k">else</span> <span class="nb">str</span><span class="p">(</span><span class="n">v</span><span class="p">)</span>
-</span><span id="L-527"><a href="#L-527"><span class="linenos"> 527</span></a> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">ensure_list</span><span class="p">(</span><span class="n">vs</span><span class="p">)</span>
-</span><span id="L-528"><a href="#L-528"><span class="linenos"> 528</span></a> <span class="k">if</span> <span class="n">v</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span>
-</span><span id="L-529"><a href="#L-529"><span class="linenos"> 529</span></a> <span class="p">)</span>
-</span><span id="L-530"><a href="#L-530"><span class="linenos"> 530</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">vs</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span>
-</span><span id="L-531"><a href="#L-531"><span class="linenos"> 531</span></a> <span class="p">}</span>
-</span><span id="L-532"><a href="#L-532"><span class="linenos"> 532</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">&quot;comments&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span>
-</span><span id="L-533"><a href="#L-533"><span class="linenos"> 533</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">&quot;type&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">type</span>
-</span><span id="L-534"><a href="#L-534"><span class="linenos"> 534</span></a> <span class="n">args</span> <span class="o">=</span> <span class="p">{</span><span class="n">k</span><span class="p">:</span> <span class="n">v</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> <span class="k">if</span> <span class="n">v</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">hide_missing</span><span class="p">}</span>
-</span><span id="L-535"><a href="#L-535"><span class="linenos"> 535</span></a>
-</span><span id="L-536"><a href="#L-536"><span class="linenos"> 536</span></a> <span class="n">right</span> <span class="o">=</span> <span class="s2">&quot;, &quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">k</span><span class="si">}</span><span class="s2">: </span><span class="si">{</span><span class="n">v</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">())</span>
-</span><span id="L-537"><a href="#L-537"><span class="linenos"> 537</span></a> <span class="n">right</span> <span class="o">+=</span> <span class="s2">&quot;)&quot;</span>
-</span><span id="L-538"><a href="#L-538"><span class="linenos"> 538</span></a>
-</span><span id="L-539"><a href="#L-539"><span class="linenos"> 539</span></a> <span class="k">return</span> <span class="n">indent</span> <span class="o">+</span> <span class="n">left</span> <span class="o">+</span> <span class="n">right</span>
-</span><span id="L-540"><a href="#L-540"><span class="linenos"> 540</span></a>
-</span><span id="L-541"><a href="#L-541"><span class="linenos"> 541</span></a> <span class="k">def</span> <span class="nf">transform</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fun</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
-</span><span id="L-542"><a href="#L-542"><span class="linenos"> 542</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-543"><a href="#L-543"><span class="linenos"> 543</span></a><span class="sd"> Recursively visits all tree nodes (excluding already transformed ones)</span>
-</span><span id="L-544"><a href="#L-544"><span class="linenos"> 544</span></a><span class="sd"> and applies the given transformation function to each node.</span>
-</span><span id="L-545"><a href="#L-545"><span class="linenos"> 545</span></a>
-</span><span id="L-546"><a href="#L-546"><span class="linenos"> 546</span></a><span class="sd"> Args:</span>
-</span><span id="L-547"><a href="#L-547"><span class="linenos"> 547</span></a><span class="sd"> fun (function): a function which takes a node as an argument and returns a</span>
-</span><span id="L-548"><a href="#L-548"><span class="linenos"> 548</span></a><span class="sd"> new transformed node or the same node without modifications. If the function</span>
-</span><span id="L-549"><a href="#L-549"><span class="linenos"> 549</span></a><span class="sd"> returns None, then the corresponding node will be removed from the syntax tree.</span>
-</span><span id="L-550"><a href="#L-550"><span class="linenos"> 550</span></a><span class="sd"> copy (bool): if set to True a new tree instance is constructed, otherwise the tree is</span>
-</span><span id="L-551"><a href="#L-551"><span class="linenos"> 551</span></a><span class="sd"> modified in place.</span>
-</span><span id="L-552"><a href="#L-552"><span class="linenos"> 552</span></a>
-</span><span id="L-553"><a href="#L-553"><span class="linenos"> 553</span></a><span class="sd"> Returns:</span>
-</span><span id="L-554"><a href="#L-554"><span class="linenos"> 554</span></a><span class="sd"> The transformed tree.</span>
-</span><span id="L-555"><a href="#L-555"><span class="linenos"> 555</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-556"><a href="#L-556"><span class="linenos"> 556</span></a> <span class="n">node</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">copy</span> <span class="k">else</span> <span class="bp">self</span>
-</span><span id="L-557"><a href="#L-557"><span class="linenos"> 557</span></a> <span class="n">new_node</span> <span class="o">=</span> <span class="n">fun</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
-</span><span id="L-558"><a href="#L-558"><span class="linenos"> 558</span></a>
-</span><span id="L-559"><a href="#L-559"><span class="linenos"> 559</span></a> <span class="k">if</span> <span class="n">new_node</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">new_node</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-560"><a href="#L-560"><span class="linenos"> 560</span></a> <span class="k">return</span> <span class="n">new_node</span>
-</span><span id="L-561"><a href="#L-561"><span class="linenos"> 561</span></a> <span class="k">if</span> <span class="n">new_node</span> <span class="ow">is</span> <span class="ow">not</span> <span class="n">node</span><span class="p">:</span>
-</span><span id="L-562"><a href="#L-562"><span class="linenos"> 562</span></a> <span class="n">new_node</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">node</span><span class="o">.</span><span class="n">parent</span>
-</span><span id="L-563"><a href="#L-563"><span class="linenos"> 563</span></a> <span class="k">return</span> <span class="n">new_node</span>
+</span><span id="L-515"><a href="#L-515"><span class="linenos"> 515</span></a> <span class="k">def</span> <span class="nf">sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-516"><a href="#L-516"><span class="linenos"> 516</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-517"><a href="#L-517"><span class="linenos"> 517</span></a><span class="sd"> Returns SQL string representation of this tree.</span>
+</span><span id="L-518"><a href="#L-518"><span class="linenos"> 518</span></a>
+</span><span id="L-519"><a href="#L-519"><span class="linenos"> 519</span></a><span class="sd"> Args:</span>
+</span><span id="L-520"><a href="#L-520"><span class="linenos"> 520</span></a><span class="sd"> dialect: the dialect of the output SQL string (eg. &quot;spark&quot;, &quot;hive&quot;, &quot;presto&quot;, &quot;mysql&quot;).</span>
+</span><span id="L-521"><a href="#L-521"><span class="linenos"> 521</span></a><span class="sd"> opts: other `sqlglot.generator.Generator` options.</span>
+</span><span id="L-522"><a href="#L-522"><span class="linenos"> 522</span></a>
+</span><span id="L-523"><a href="#L-523"><span class="linenos"> 523</span></a><span class="sd"> Returns:</span>
+</span><span id="L-524"><a href="#L-524"><span class="linenos"> 524</span></a><span class="sd"> The SQL string.</span>
+</span><span id="L-525"><a href="#L-525"><span class="linenos"> 525</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-526"><a href="#L-526"><span class="linenos"> 526</span></a> <span class="kn">from</span> <span class="nn">sqlglot.dialects</span> <span class="kn">import</span> <span class="n">Dialect</span>
+</span><span id="L-527"><a href="#L-527"><span class="linenos"> 527</span></a>
+</span><span id="L-528"><a href="#L-528"><span class="linenos"> 528</span></a> <span class="k">return</span> <span class="n">Dialect</span><span class="o">.</span><span class="n">get_or_raise</span><span class="p">(</span><span class="n">dialect</span><span class="p">)</span><span class="o">.</span><span class="n">generate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-529"><a href="#L-529"><span class="linenos"> 529</span></a>
+</span><span id="L-530"><a href="#L-530"><span class="linenos"> 530</span></a> <span class="k">def</span> <span class="nf">transform</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fun</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
+</span><span id="L-531"><a href="#L-531"><span class="linenos"> 531</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-532"><a href="#L-532"><span class="linenos"> 532</span></a><span class="sd"> Recursively visits all tree nodes (excluding already transformed ones)</span>
+</span><span id="L-533"><a href="#L-533"><span class="linenos"> 533</span></a><span class="sd"> and applies the given transformation function to each node.</span>
+</span><span id="L-534"><a href="#L-534"><span class="linenos"> 534</span></a>
+</span><span id="L-535"><a href="#L-535"><span class="linenos"> 535</span></a><span class="sd"> Args:</span>
+</span><span id="L-536"><a href="#L-536"><span class="linenos"> 536</span></a><span class="sd"> fun (function): a function which takes a node as an argument and returns a</span>
+</span><span id="L-537"><a href="#L-537"><span class="linenos"> 537</span></a><span class="sd"> new transformed node or the same node without modifications. If the function</span>
+</span><span id="L-538"><a href="#L-538"><span class="linenos"> 538</span></a><span class="sd"> returns None, then the corresponding node will be removed from the syntax tree.</span>
+</span><span id="L-539"><a href="#L-539"><span class="linenos"> 539</span></a><span class="sd"> copy (bool): if set to True a new tree instance is constructed, otherwise the tree is</span>
+</span><span id="L-540"><a href="#L-540"><span class="linenos"> 540</span></a><span class="sd"> modified in place.</span>
+</span><span id="L-541"><a href="#L-541"><span class="linenos"> 541</span></a>
+</span><span id="L-542"><a href="#L-542"><span class="linenos"> 542</span></a><span class="sd"> Returns:</span>
+</span><span id="L-543"><a href="#L-543"><span class="linenos"> 543</span></a><span class="sd"> The transformed tree.</span>
+</span><span id="L-544"><a href="#L-544"><span class="linenos"> 544</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-545"><a href="#L-545"><span class="linenos"> 545</span></a> <span class="n">node</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">copy</span> <span class="k">else</span> <span class="bp">self</span>
+</span><span id="L-546"><a href="#L-546"><span class="linenos"> 546</span></a> <span class="n">new_node</span> <span class="o">=</span> <span class="n">fun</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+</span><span id="L-547"><a href="#L-547"><span class="linenos"> 547</span></a>
+</span><span id="L-548"><a href="#L-548"><span class="linenos"> 548</span></a> <span class="k">if</span> <span class="n">new_node</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">new_node</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-549"><a href="#L-549"><span class="linenos"> 549</span></a> <span class="k">return</span> <span class="n">new_node</span>
+</span><span id="L-550"><a href="#L-550"><span class="linenos"> 550</span></a> <span class="k">if</span> <span class="n">new_node</span> <span class="ow">is</span> <span class="ow">not</span> <span class="n">node</span><span class="p">:</span>
+</span><span id="L-551"><a href="#L-551"><span class="linenos"> 551</span></a> <span class="n">new_node</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">node</span><span class="o">.</span><span class="n">parent</span>
+</span><span id="L-552"><a href="#L-552"><span class="linenos"> 552</span></a> <span class="k">return</span> <span class="n">new_node</span>
+</span><span id="L-553"><a href="#L-553"><span class="linenos"> 553</span></a>
+</span><span id="L-554"><a href="#L-554"><span class="linenos"> 554</span></a> <span class="n">replace_children</span><span class="p">(</span><span class="n">new_node</span><span class="p">,</span> <span class="k">lambda</span> <span class="n">child</span><span class="p">:</span> <span class="n">child</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">fun</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">))</span>
+</span><span id="L-555"><a href="#L-555"><span class="linenos"> 555</span></a> <span class="k">return</span> <span class="n">new_node</span>
+</span><span id="L-556"><a href="#L-556"><span class="linenos"> 556</span></a>
+</span><span id="L-557"><a href="#L-557"><span class="linenos"> 557</span></a> <span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="L-558"><a href="#L-558"><span class="linenos"> 558</span></a> <span class="k">def</span> <span class="nf">replace</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">E</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
+</span><span id="L-559"><a href="#L-559"><span class="linenos"> 559</span></a> <span class="o">...</span>
+</span><span id="L-560"><a href="#L-560"><span class="linenos"> 560</span></a>
+</span><span id="L-561"><a href="#L-561"><span class="linenos"> 561</span></a> <span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="L-562"><a href="#L-562"><span class="linenos"> 562</span></a> <span class="k">def</span> <span class="nf">replace</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span 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-563"><a href="#L-563"><span class="linenos"> 563</span></a> <span class="o">...</span>
</span><span id="L-564"><a href="#L-564"><span class="linenos"> 564</span></a>
-</span><span id="L-565"><a href="#L-565"><span class="linenos"> 565</span></a> <span class="n">replace_children</span><span class="p">(</span><span class="n">new_node</span><span class="p">,</span> <span class="k">lambda</span> <span class="n">child</span><span class="p">:</span> <span class="n">child</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">fun</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">))</span>
-</span><span id="L-566"><a href="#L-566"><span class="linenos"> 566</span></a> <span class="k">return</span> <span class="n">new_node</span>
-</span><span id="L-567"><a href="#L-567"><span class="linenos"> 567</span></a>
-</span><span id="L-568"><a href="#L-568"><span class="linenos"> 568</span></a> <span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
-</span><span id="L-569"><a href="#L-569"><span class="linenos"> 569</span></a> <span class="k">def</span> <span class="nf">replace</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">E</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
-</span><span id="L-570"><a href="#L-570"><span class="linenos"> 570</span></a> <span class="o">...</span>
-</span><span id="L-571"><a href="#L-571"><span class="linenos"> 571</span></a>
-</span><span id="L-572"><a href="#L-572"><span class="linenos"> 572</span></a> <span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
-</span><span id="L-573"><a href="#L-573"><span class="linenos"> 573</span></a> <span class="k">def</span> <span class="nf">replace</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="L-574"><a href="#L-574"><span class="linenos"> 574</span></a> <span class="o">...</span>
-</span><span id="L-575"><a href="#L-575"><span class="linenos"> 575</span></a>
-</span><span id="L-576"><a href="#L-576"><span class="linenos"> 576</span></a> <span class="k">def</span> <span class="nf">replace</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">):</span>
-</span><span id="L-577"><a href="#L-577"><span class="linenos"> 577</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-578"><a href="#L-578"><span class="linenos"> 578</span></a><span class="sd"> Swap out this expression with a new expression.</span>
-</span><span id="L-579"><a href="#L-579"><span class="linenos"> 579</span></a>
-</span><span id="L-580"><a href="#L-580"><span class="linenos"> 580</span></a><span class="sd"> For example::</span>
-</span><span id="L-581"><a href="#L-581"><span class="linenos"> 581</span></a>
-</span><span id="L-582"><a href="#L-582"><span class="linenos"> 582</span></a><span class="sd"> &gt;&gt;&gt; tree = Select().select(&quot;x&quot;).from_(&quot;tbl&quot;)</span>
-</span><span id="L-583"><a href="#L-583"><span class="linenos"> 583</span></a><span class="sd"> &gt;&gt;&gt; tree.find(Column).replace(Column(this=&quot;y&quot;))</span>
-</span><span id="L-584"><a href="#L-584"><span class="linenos"> 584</span></a><span class="sd"> (COLUMN this: y)</span>
-</span><span id="L-585"><a href="#L-585"><span class="linenos"> 585</span></a><span class="sd"> &gt;&gt;&gt; tree.sql()</span>
-</span><span id="L-586"><a href="#L-586"><span class="linenos"> 586</span></a><span class="sd"> &#39;SELECT y FROM tbl&#39;</span>
-</span><span id="L-587"><a href="#L-587"><span class="linenos"> 587</span></a>
-</span><span id="L-588"><a href="#L-588"><span class="linenos"> 588</span></a><span class="sd"> Args:</span>
-</span><span id="L-589"><a href="#L-589"><span class="linenos"> 589</span></a><span class="sd"> expression: new node</span>
-</span><span id="L-590"><a href="#L-590"><span class="linenos"> 590</span></a>
-</span><span id="L-591"><a href="#L-591"><span class="linenos"> 591</span></a><span class="sd"> Returns:</span>
-</span><span id="L-592"><a href="#L-592"><span class="linenos"> 592</span></a><span class="sd"> The new expression or expressions.</span>
-</span><span id="L-593"><a href="#L-593"><span class="linenos"> 593</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-594"><a href="#L-594"><span class="linenos"> 594</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">:</span>
-</span><span id="L-595"><a href="#L-595"><span class="linenos"> 595</span></a> <span class="k">return</span> <span class="n">expression</span>
+</span><span id="L-565"><a href="#L-565"><span class="linenos"> 565</span></a> <span class="k">def</span> <span class="nf">replace</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">):</span>
+</span><span id="L-566"><a href="#L-566"><span class="linenos"> 566</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-567"><a href="#L-567"><span class="linenos"> 567</span></a><span class="sd"> Swap out this expression with a new expression.</span>
+</span><span id="L-568"><a href="#L-568"><span class="linenos"> 568</span></a>
+</span><span id="L-569"><a href="#L-569"><span class="linenos"> 569</span></a><span class="sd"> For example::</span>
+</span><span id="L-570"><a href="#L-570"><span class="linenos"> 570</span></a>
+</span><span id="L-571"><a href="#L-571"><span class="linenos"> 571</span></a><span class="sd"> &gt;&gt;&gt; tree = Select().select(&quot;x&quot;).from_(&quot;tbl&quot;)</span>
+</span><span id="L-572"><a href="#L-572"><span class="linenos"> 572</span></a><span class="sd"> &gt;&gt;&gt; tree.find(Column).replace(column(&quot;y&quot;))</span>
+</span><span id="L-573"><a href="#L-573"><span class="linenos"> 573</span></a><span class="sd"> Column(</span>
+</span><span id="L-574"><a href="#L-574"><span class="linenos"> 574</span></a><span class="sd"> this=Identifier(this=y, quoted=False))</span>
+</span><span id="L-575"><a href="#L-575"><span class="linenos"> 575</span></a><span class="sd"> &gt;&gt;&gt; tree.sql()</span>
+</span><span id="L-576"><a href="#L-576"><span class="linenos"> 576</span></a><span class="sd"> &#39;SELECT y FROM tbl&#39;</span>
+</span><span id="L-577"><a href="#L-577"><span class="linenos"> 577</span></a>
+</span><span id="L-578"><a href="#L-578"><span class="linenos"> 578</span></a><span class="sd"> Args:</span>
+</span><span id="L-579"><a href="#L-579"><span class="linenos"> 579</span></a><span class="sd"> expression: new node</span>
+</span><span id="L-580"><a href="#L-580"><span class="linenos"> 580</span></a>
+</span><span id="L-581"><a href="#L-581"><span class="linenos"> 581</span></a><span class="sd"> Returns:</span>
+</span><span id="L-582"><a href="#L-582"><span class="linenos"> 582</span></a><span class="sd"> The new expression or expressions.</span>
+</span><span id="L-583"><a href="#L-583"><span class="linenos"> 583</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-584"><a href="#L-584"><span class="linenos"> 584</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">:</span>
+</span><span id="L-585"><a href="#L-585"><span class="linenos"> 585</span></a> <span class="k">return</span> <span class="n">expression</span>
+</span><span id="L-586"><a href="#L-586"><span class="linenos"> 586</span></a>
+</span><span id="L-587"><a href="#L-587"><span class="linenos"> 587</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-588"><a href="#L-588"><span class="linenos"> 588</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="kc">None</span>
+</span><span id="L-589"><a href="#L-589"><span class="linenos"> 589</span></a>
+</span><span id="L-590"><a href="#L-590"><span class="linenos"> 590</span></a> <span class="n">replace_children</span><span class="p">(</span><span class="n">parent</span><span class="p">,</span> <span class="k">lambda</span> <span class="n">child</span><span class="p">:</span> <span class="n">expression</span> <span class="k">if</span> <span class="n">child</span> <span class="ow">is</span> <span class="bp">self</span> <span class="k">else</span> <span class="n">child</span><span class="p">)</span>
+</span><span id="L-591"><a href="#L-591"><span class="linenos"> 591</span></a> <span class="k">return</span> <span class="n">expression</span>
+</span><span id="L-592"><a href="#L-592"><span class="linenos"> 592</span></a>
+</span><span id="L-593"><a href="#L-593"><span class="linenos"> 593</span></a> <span class="k">def</span> <span class="nf">pop</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">E</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
+</span><span id="L-594"><a href="#L-594"><span class="linenos"> 594</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-595"><a href="#L-595"><span class="linenos"> 595</span></a><span class="sd"> Remove this expression from its AST.</span>
</span><span id="L-596"><a href="#L-596"><span class="linenos"> 596</span></a>
-</span><span id="L-597"><a href="#L-597"><span class="linenos"> 597</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-598"><a href="#L-598"><span class="linenos"> 598</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="kc">None</span>
-</span><span id="L-599"><a href="#L-599"><span class="linenos"> 599</span></a>
-</span><span id="L-600"><a href="#L-600"><span class="linenos"> 600</span></a> <span class="n">replace_children</span><span class="p">(</span><span class="n">parent</span><span class="p">,</span> <span class="k">lambda</span> <span class="n">child</span><span class="p">:</span> <span class="n">expression</span> <span class="k">if</span> <span class="n">child</span> <span class="ow">is</span> <span class="bp">self</span> <span class="k">else</span> <span class="n">child</span><span class="p">)</span>
-</span><span id="L-601"><a href="#L-601"><span class="linenos"> 601</span></a> <span class="k">return</span> <span class="n">expression</span>
+</span><span id="L-597"><a href="#L-597"><span class="linenos"> 597</span></a><span class="sd"> Returns:</span>
+</span><span id="L-598"><a href="#L-598"><span class="linenos"> 598</span></a><span class="sd"> The popped expression.</span>
+</span><span id="L-599"><a href="#L-599"><span class="linenos"> 599</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-600"><a href="#L-600"><span class="linenos"> 600</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="kc">None</span><span class="p">)</span>
+</span><span id="L-601"><a href="#L-601"><span class="linenos"> 601</span></a> <span class="k">return</span> <span class="bp">self</span>
</span><span id="L-602"><a href="#L-602"><span class="linenos"> 602</span></a>
-</span><span id="L-603"><a href="#L-603"><span class="linenos"> 603</span></a> <span class="k">def</span> <span class="nf">pop</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">E</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
+</span><span id="L-603"><a href="#L-603"><span class="linenos"> 603</span></a> <span class="k">def</span> <span class="nf">assert_is</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type_</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
</span><span id="L-604"><a href="#L-604"><span class="linenos"> 604</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-605"><a href="#L-605"><span class="linenos"> 605</span></a><span class="sd"> Remove this expression from its AST.</span>
+</span><span id="L-605"><a href="#L-605"><span class="linenos"> 605</span></a><span class="sd"> Assert that this `Expression` is an instance of `type_`.</span>
</span><span id="L-606"><a href="#L-606"><span class="linenos"> 606</span></a>
-</span><span id="L-607"><a href="#L-607"><span class="linenos"> 607</span></a><span class="sd"> Returns:</span>
-</span><span id="L-608"><a href="#L-608"><span class="linenos"> 608</span></a><span class="sd"> The popped expression.</span>
-</span><span id="L-609"><a href="#L-609"><span class="linenos"> 609</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-610"><a href="#L-610"><span class="linenos"> 610</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="kc">None</span><span class="p">)</span>
-</span><span id="L-611"><a href="#L-611"><span class="linenos"> 611</span></a> <span class="k">return</span> <span class="bp">self</span>
+</span><span id="L-607"><a href="#L-607"><span class="linenos"> 607</span></a><span class="sd"> If it is NOT an instance of `type_`, this raises an assertion error.</span>
+</span><span id="L-608"><a href="#L-608"><span class="linenos"> 608</span></a><span class="sd"> Otherwise, this returns this expression.</span>
+</span><span id="L-609"><a href="#L-609"><span class="linenos"> 609</span></a>
+</span><span id="L-610"><a href="#L-610"><span class="linenos"> 610</span></a><span class="sd"> Examples:</span>
+</span><span id="L-611"><a href="#L-611"><span class="linenos"> 611</span></a><span class="sd"> This is useful for type security in chained expressions:</span>
</span><span id="L-612"><a href="#L-612"><span class="linenos"> 612</span></a>
-</span><span id="L-613"><a href="#L-613"><span class="linenos"> 613</span></a> <span class="k">def</span> <span class="nf">assert_is</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type_</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
-</span><span id="L-614"><a href="#L-614"><span class="linenos"> 614</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-615"><a href="#L-615"><span class="linenos"> 615</span></a><span class="sd"> Assert that this `Expression` is an instance of `type_`.</span>
-</span><span id="L-616"><a href="#L-616"><span class="linenos"> 616</span></a>
-</span><span id="L-617"><a href="#L-617"><span class="linenos"> 617</span></a><span class="sd"> If it is NOT an instance of `type_`, this raises an assertion error.</span>
-</span><span id="L-618"><a href="#L-618"><span class="linenos"> 618</span></a><span class="sd"> Otherwise, this returns this expression.</span>
+</span><span id="L-613"><a href="#L-613"><span class="linenos"> 613</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="L-614"><a href="#L-614"><span class="linenos"> 614</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;SELECT x from y&quot;).assert_is(Select).select(&quot;z&quot;).sql()</span>
+</span><span id="L-615"><a href="#L-615"><span class="linenos"> 615</span></a><span class="sd"> &#39;SELECT x, z FROM y&#39;</span>
+</span><span id="L-616"><a href="#L-616"><span class="linenos"> 616</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-617"><a href="#L-617"><span class="linenos"> 617</span></a> <span class="k">assert</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type_</span><span class="p">)</span>
+</span><span id="L-618"><a href="#L-618"><span class="linenos"> 618</span></a> <span class="k">return</span> <span class="bp">self</span>
</span><span id="L-619"><a href="#L-619"><span class="linenos"> 619</span></a>
-</span><span id="L-620"><a href="#L-620"><span class="linenos"> 620</span></a><span class="sd"> Examples:</span>
-</span><span id="L-621"><a href="#L-621"><span class="linenos"> 621</span></a><span class="sd"> This is useful for type security in chained expressions:</span>
-</span><span id="L-622"><a href="#L-622"><span class="linenos"> 622</span></a>
-</span><span id="L-623"><a href="#L-623"><span class="linenos"> 623</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="L-624"><a href="#L-624"><span class="linenos"> 624</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;SELECT x from y&quot;).assert_is(Select).select(&quot;z&quot;).sql()</span>
-</span><span id="L-625"><a href="#L-625"><span class="linenos"> 625</span></a><span class="sd"> &#39;SELECT x, z FROM y&#39;</span>
-</span><span id="L-626"><a href="#L-626"><span class="linenos"> 626</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-627"><a href="#L-627"><span class="linenos"> 627</span></a> <span class="k">assert</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type_</span><span class="p">)</span>
-</span><span id="L-628"><a href="#L-628"><span class="linenos"> 628</span></a> <span class="k">return</span> <span class="bp">self</span>
-</span><span id="L-629"><a href="#L-629"><span class="linenos"> 629</span></a>
-</span><span id="L-630"><a href="#L-630"><span class="linenos"> 630</span></a> <span class="k">def</span> <span class="nf">error_messages</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
-</span><span id="L-631"><a href="#L-631"><span class="linenos"> 631</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-632"><a href="#L-632"><span class="linenos"> 632</span></a><span class="sd"> Checks if this expression is valid (e.g. all mandatory args are set).</span>
-</span><span id="L-633"><a href="#L-633"><span class="linenos"> 633</span></a>
-</span><span id="L-634"><a href="#L-634"><span class="linenos"> 634</span></a><span class="sd"> Args:</span>
-</span><span id="L-635"><a href="#L-635"><span class="linenos"> 635</span></a><span class="sd"> args: a sequence of values that were used to instantiate a Func expression. This is used</span>
-</span><span id="L-636"><a href="#L-636"><span class="linenos"> 636</span></a><span class="sd"> to check that the provided arguments don&#39;t exceed the function argument limit.</span>
-</span><span id="L-637"><a href="#L-637"><span class="linenos"> 637</span></a>
-</span><span id="L-638"><a href="#L-638"><span class="linenos"> 638</span></a><span class="sd"> Returns:</span>
-</span><span id="L-639"><a href="#L-639"><span class="linenos"> 639</span></a><span class="sd"> A list of error messages for all possible errors that were found.</span>
-</span><span id="L-640"><a href="#L-640"><span class="linenos"> 640</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-641"><a href="#L-641"><span class="linenos"> 641</span></a> <span class="n">errors</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
-</span><span id="L-642"><a href="#L-642"><span class="linenos"> 642</span></a>
-</span><span id="L-643"><a href="#L-643"><span class="linenos"> 643</span></a> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">:</span>
-</span><span id="L-644"><a href="#L-644"><span class="linenos"> 644</span></a> <span class="k">if</span> <span class="n">k</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">:</span>
-</span><span id="L-645"><a href="#L-645"><span class="linenos"> 645</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Unexpected keyword: &#39;</span><span class="si">{</span><span class="n">k</span><span class="si">}</span><span class="s2">&#39; for </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
-</span><span id="L-646"><a href="#L-646"><span class="linenos"> 646</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">mandatory</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
-</span><span id="L-647"><a href="#L-647"><span class="linenos"> 647</span></a> <span class="n">v</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">k</span><span class="p">)</span>
-</span><span id="L-648"><a href="#L-648"><span class="linenos"> 648</span></a> <span class="k">if</span> <span class="n">mandatory</span> <span class="ow">and</span> <span class="p">(</span><span class="n">v</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="nb">list</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">v</span><span class="p">)):</span>
-</span><span id="L-649"><a href="#L-649"><span class="linenos"> 649</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Required keyword: &#39;</span><span class="si">{</span><span class="n">k</span><span class="si">}</span><span class="s2">&#39; missing for </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
-</span><span id="L-650"><a href="#L-650"><span class="linenos"> 650</span></a>
-</span><span id="L-651"><a href="#L-651"><span class="linenos"> 651</span></a> <span class="k">if</span> <span class="p">(</span>
-</span><span id="L-652"><a href="#L-652"><span class="linenos"> 652</span></a> <span class="n">args</span>
-</span><span id="L-653"><a href="#L-653"><span class="linenos"> 653</span></a> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Func</span><span class="p">)</span>
-</span><span id="L-654"><a href="#L-654"><span class="linenos"> 654</span></a> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="o">&gt;</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span>
-</span><span id="L-655"><a href="#L-655"><span class="linenos"> 655</span></a> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_var_len_args</span>
-</span><span id="L-656"><a href="#L-656"><span class="linenos"> 656</span></a> <span class="p">):</span>
-</span><span id="L-657"><a href="#L-657"><span class="linenos"> 657</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
-</span><span id="L-658"><a href="#L-658"><span class="linenos"> 658</span></a> <span class="sa">f</span><span class="s2">&quot;The number of provided arguments (</span><span class="si">{</span><span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span><span class="si">}</span><span class="s2">) is greater than &quot;</span>
-</span><span id="L-659"><a href="#L-659"><span class="linenos"> 659</span></a> <span class="sa">f</span><span class="s2">&quot;the maximum number of supported arguments (</span><span class="si">{</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span><span class="si">}</span><span class="s2">)&quot;</span>
-</span><span id="L-660"><a href="#L-660"><span class="linenos"> 660</span></a> <span class="p">)</span>
+</span><span id="L-620"><a href="#L-620"><span class="linenos"> 620</span></a> <span class="k">def</span> <span class="nf">error_messages</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
+</span><span id="L-621"><a href="#L-621"><span class="linenos"> 621</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-622"><a href="#L-622"><span class="linenos"> 622</span></a><span class="sd"> Checks if this expression is valid (e.g. all mandatory args are set).</span>
+</span><span id="L-623"><a href="#L-623"><span class="linenos"> 623</span></a>
+</span><span id="L-624"><a href="#L-624"><span class="linenos"> 624</span></a><span class="sd"> Args:</span>
+</span><span id="L-625"><a href="#L-625"><span class="linenos"> 625</span></a><span class="sd"> args: a sequence of values that were used to instantiate a Func expression. This is used</span>
+</span><span id="L-626"><a href="#L-626"><span class="linenos"> 626</span></a><span class="sd"> to check that the provided arguments don&#39;t exceed the function argument limit.</span>
+</span><span id="L-627"><a href="#L-627"><span class="linenos"> 627</span></a>
+</span><span id="L-628"><a href="#L-628"><span class="linenos"> 628</span></a><span class="sd"> Returns:</span>
+</span><span id="L-629"><a href="#L-629"><span class="linenos"> 629</span></a><span class="sd"> A list of error messages for all possible errors that were found.</span>
+</span><span id="L-630"><a href="#L-630"><span class="linenos"> 630</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-631"><a href="#L-631"><span class="linenos"> 631</span></a> <span class="n">errors</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="L-632"><a href="#L-632"><span class="linenos"> 632</span></a>
+</span><span id="L-633"><a href="#L-633"><span class="linenos"> 633</span></a> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">:</span>
+</span><span id="L-634"><a href="#L-634"><span class="linenos"> 634</span></a> <span class="k">if</span> <span class="n">k</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">:</span>
+</span><span id="L-635"><a href="#L-635"><span class="linenos"> 635</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Unexpected keyword: &#39;</span><span class="si">{</span><span class="n">k</span><span class="si">}</span><span class="s2">&#39; for </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
+</span><span id="L-636"><a href="#L-636"><span class="linenos"> 636</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">mandatory</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+</span><span id="L-637"><a href="#L-637"><span class="linenos"> 637</span></a> <span class="n">v</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">k</span><span class="p">)</span>
+</span><span id="L-638"><a href="#L-638"><span class="linenos"> 638</span></a> <span class="k">if</span> <span class="n">mandatory</span> <span class="ow">and</span> <span class="p">(</span><span class="n">v</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="nb">list</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">v</span><span class="p">)):</span>
+</span><span id="L-639"><a href="#L-639"><span class="linenos"> 639</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Required keyword: &#39;</span><span class="si">{</span><span class="n">k</span><span class="si">}</span><span class="s2">&#39; missing for </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
+</span><span id="L-640"><a href="#L-640"><span class="linenos"> 640</span></a>
+</span><span id="L-641"><a href="#L-641"><span class="linenos"> 641</span></a> <span class="k">if</span> <span class="p">(</span>
+</span><span id="L-642"><a href="#L-642"><span class="linenos"> 642</span></a> <span class="n">args</span>
+</span><span id="L-643"><a href="#L-643"><span class="linenos"> 643</span></a> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Func</span><span class="p">)</span>
+</span><span id="L-644"><a href="#L-644"><span class="linenos"> 644</span></a> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="o">&gt;</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span>
+</span><span id="L-645"><a href="#L-645"><span class="linenos"> 645</span></a> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_var_len_args</span>
+</span><span id="L-646"><a href="#L-646"><span class="linenos"> 646</span></a> <span class="p">):</span>
+</span><span id="L-647"><a href="#L-647"><span class="linenos"> 647</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
+</span><span id="L-648"><a href="#L-648"><span class="linenos"> 648</span></a> <span class="sa">f</span><span class="s2">&quot;The number of provided arguments (</span><span class="si">{</span><span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span><span class="si">}</span><span class="s2">) is greater than &quot;</span>
+</span><span id="L-649"><a href="#L-649"><span class="linenos"> 649</span></a> <span class="sa">f</span><span class="s2">&quot;the maximum number of supported arguments (</span><span class="si">{</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span><span class="si">}</span><span class="s2">)&quot;</span>
+</span><span id="L-650"><a href="#L-650"><span class="linenos"> 650</span></a> <span class="p">)</span>
+</span><span id="L-651"><a href="#L-651"><span class="linenos"> 651</span></a>
+</span><span id="L-652"><a href="#L-652"><span class="linenos"> 652</span></a> <span class="k">return</span> <span class="n">errors</span>
+</span><span id="L-653"><a href="#L-653"><span class="linenos"> 653</span></a>
+</span><span id="L-654"><a href="#L-654"><span class="linenos"> 654</span></a> <span class="k">def</span> <span class="nf">dump</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="L-655"><a href="#L-655"><span class="linenos"> 655</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-656"><a href="#L-656"><span class="linenos"> 656</span></a><span class="sd"> Dump this Expression to a JSON-serializable dict.</span>
+</span><span id="L-657"><a href="#L-657"><span class="linenos"> 657</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-658"><a href="#L-658"><span class="linenos"> 658</span></a> <span class="kn">from</span> <span class="nn">sqlglot.serde</span> <span class="kn">import</span> <span class="n">dump</span>
+</span><span id="L-659"><a href="#L-659"><span class="linenos"> 659</span></a>
+</span><span id="L-660"><a href="#L-660"><span class="linenos"> 660</span></a> <span class="k">return</span> <span class="n">dump</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
</span><span id="L-661"><a href="#L-661"><span class="linenos"> 661</span></a>
-</span><span id="L-662"><a href="#L-662"><span class="linenos"> 662</span></a> <span class="k">return</span> <span class="n">errors</span>
-</span><span id="L-663"><a href="#L-663"><span class="linenos"> 663</span></a>
-</span><span id="L-664"><a href="#L-664"><span class="linenos"> 664</span></a> <span class="k">def</span> <span class="nf">dump</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-665"><a href="#L-665"><span class="linenos"> 665</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-666"><a href="#L-666"><span class="linenos"> 666</span></a><span class="sd"> Dump this Expression to a JSON-serializable dict.</span>
-</span><span id="L-667"><a href="#L-667"><span class="linenos"> 667</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-668"><a href="#L-668"><span class="linenos"> 668</span></a> <span class="kn">from</span> <span class="nn">sqlglot.serde</span> <span class="kn">import</span> <span class="n">dump</span>
-</span><span id="L-669"><a href="#L-669"><span class="linenos"> 669</span></a>
-</span><span id="L-670"><a href="#L-670"><span class="linenos"> 670</span></a> <span class="k">return</span> <span class="n">dump</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
-</span><span id="L-671"><a href="#L-671"><span class="linenos"> 671</span></a>
-</span><span id="L-672"><a href="#L-672"><span class="linenos"> 672</span></a> <span class="nd">@classmethod</span>
-</span><span id="L-673"><a href="#L-673"><span class="linenos"> 673</span></a> <span class="k">def</span> <span class="nf">load</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">obj</span><span class="p">):</span>
-</span><span id="L-674"><a href="#L-674"><span class="linenos"> 674</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-675"><a href="#L-675"><span class="linenos"> 675</span></a><span class="sd"> Load a dict (as returned by `Expression.dump`) into an Expression instance.</span>
-</span><span id="L-676"><a href="#L-676"><span class="linenos"> 676</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-677"><a href="#L-677"><span class="linenos"> 677</span></a> <span class="kn">from</span> <span class="nn">sqlglot.serde</span> <span class="kn">import</span> <span class="n">load</span>
-</span><span id="L-678"><a href="#L-678"><span class="linenos"> 678</span></a>
-</span><span id="L-679"><a href="#L-679"><span class="linenos"> 679</span></a> <span class="k">return</span> <span class="n">load</span><span class="p">(</span><span class="n">obj</span><span class="p">)</span>
+</span><span id="L-662"><a href="#L-662"><span class="linenos"> 662</span></a> <span class="nd">@classmethod</span>
+</span><span id="L-663"><a href="#L-663"><span class="linenos"> 663</span></a> <span class="k">def</span> <span class="nf">load</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">obj</span><span class="p">):</span>
+</span><span id="L-664"><a href="#L-664"><span class="linenos"> 664</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-665"><a href="#L-665"><span class="linenos"> 665</span></a><span class="sd"> Load a dict (as returned by `Expression.dump`) into an Expression instance.</span>
+</span><span id="L-666"><a href="#L-666"><span class="linenos"> 666</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-667"><a href="#L-667"><span class="linenos"> 667</span></a> <span class="kn">from</span> <span class="nn">sqlglot.serde</span> <span class="kn">import</span> <span class="n">load</span>
+</span><span id="L-668"><a href="#L-668"><span class="linenos"> 668</span></a>
+</span><span id="L-669"><a href="#L-669"><span class="linenos"> 669</span></a> <span class="k">return</span> <span class="n">load</span><span class="p">(</span><span class="n">obj</span><span class="p">)</span>
+</span><span id="L-670"><a href="#L-670"><span class="linenos"> 670</span></a>
+</span><span id="L-671"><a href="#L-671"><span class="linenos"> 671</span></a> <span class="k">def</span> <span class="nf">and_</span><span class="p">(</span>
+</span><span id="L-672"><a href="#L-672"><span class="linenos"> 672</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-673"><a href="#L-673"><span class="linenos"> 673</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="L-674"><a href="#L-674"><span class="linenos"> 674</span></a> <span class="n">dialect</span><span 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-675"><a href="#L-675"><span class="linenos"> 675</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-676"><a href="#L-676"><span class="linenos"> 676</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-677"><a href="#L-677"><span class="linenos"> 677</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
+</span><span id="L-678"><a href="#L-678"><span class="linenos"> 678</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-679"><a href="#L-679"><span class="linenos"> 679</span></a><span class="sd"> AND this condition with one or multiple expressions.</span>
</span><span id="L-680"><a href="#L-680"><span class="linenos"> 680</span></a>
-</span><span id="L-681"><a href="#L-681"><span class="linenos"> 681</span></a> <span class="k">def</span> <span class="nf">and_</span><span class="p">(</span>
-</span><span id="L-682"><a href="#L-682"><span class="linenos"> 682</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-683"><a href="#L-683"><span class="linenos"> 683</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="L-684"><a href="#L-684"><span class="linenos"> 684</span></a> <span class="n">dialect</span><span 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-685"><a href="#L-685"><span class="linenos"> 685</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-686"><a href="#L-686"><span class="linenos"> 686</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-687"><a href="#L-687"><span class="linenos"> 687</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
-</span><span id="L-688"><a href="#L-688"><span class="linenos"> 688</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-689"><a href="#L-689"><span class="linenos"> 689</span></a><span class="sd"> AND this condition with one or multiple expressions.</span>
-</span><span id="L-690"><a href="#L-690"><span class="linenos"> 690</span></a>
-</span><span id="L-691"><a href="#L-691"><span class="linenos"> 691</span></a><span class="sd"> Example:</span>
-</span><span id="L-692"><a href="#L-692"><span class="linenos"> 692</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).and_(&quot;y=1&quot;).sql()</span>
-</span><span id="L-693"><a href="#L-693"><span class="linenos"> 693</span></a><span class="sd"> &#39;x = 1 AND y = 1&#39;</span>
-</span><span id="L-694"><a href="#L-694"><span class="linenos"> 694</span></a>
-</span><span id="L-695"><a href="#L-695"><span class="linenos"> 695</span></a><span class="sd"> Args:</span>
-</span><span id="L-696"><a href="#L-696"><span class="linenos"> 696</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="L-697"><a href="#L-697"><span class="linenos"> 697</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-698"><a href="#L-698"><span class="linenos"> 698</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-699"><a href="#L-699"><span class="linenos"> 699</span></a><span class="sd"> copy: whether or not to copy the involved expressions (only applies to Expressions).</span>
-</span><span id="L-700"><a href="#L-700"><span class="linenos"> 700</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="L-701"><a href="#L-701"><span class="linenos"> 701</span></a>
-</span><span id="L-702"><a href="#L-702"><span class="linenos"> 702</span></a><span class="sd"> Returns:</span>
-</span><span id="L-703"><a href="#L-703"><span class="linenos"> 703</span></a><span class="sd"> The new And condition.</span>
-</span><span id="L-704"><a href="#L-704"><span class="linenos"> 704</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-705"><a href="#L-705"><span class="linenos"> 705</span></a> <span class="k">return</span> <span class="n">and_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-681"><a href="#L-681"><span class="linenos"> 681</span></a><span class="sd"> Example:</span>
+</span><span id="L-682"><a href="#L-682"><span class="linenos"> 682</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).and_(&quot;y=1&quot;).sql()</span>
+</span><span id="L-683"><a href="#L-683"><span class="linenos"> 683</span></a><span class="sd"> &#39;x = 1 AND y = 1&#39;</span>
+</span><span id="L-684"><a href="#L-684"><span class="linenos"> 684</span></a>
+</span><span id="L-685"><a href="#L-685"><span class="linenos"> 685</span></a><span class="sd"> Args:</span>
+</span><span id="L-686"><a href="#L-686"><span class="linenos"> 686</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="L-687"><a href="#L-687"><span class="linenos"> 687</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-688"><a href="#L-688"><span class="linenos"> 688</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-689"><a href="#L-689"><span class="linenos"> 689</span></a><span class="sd"> copy: whether or not to copy the involved expressions (only applies to Expressions).</span>
+</span><span id="L-690"><a href="#L-690"><span class="linenos"> 690</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-691"><a href="#L-691"><span class="linenos"> 691</span></a>
+</span><span id="L-692"><a href="#L-692"><span class="linenos"> 692</span></a><span class="sd"> Returns:</span>
+</span><span id="L-693"><a href="#L-693"><span class="linenos"> 693</span></a><span class="sd"> The new And condition.</span>
+</span><span id="L-694"><a href="#L-694"><span class="linenos"> 694</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-695"><a href="#L-695"><span class="linenos"> 695</span></a> <span class="k">return</span> <span class="n">and_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-696"><a href="#L-696"><span class="linenos"> 696</span></a>
+</span><span id="L-697"><a href="#L-697"><span class="linenos"> 697</span></a> <span class="k">def</span> <span class="nf">or_</span><span class="p">(</span>
+</span><span id="L-698"><a href="#L-698"><span class="linenos"> 698</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-699"><a href="#L-699"><span class="linenos"> 699</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="L-700"><a href="#L-700"><span class="linenos"> 700</span></a> <span class="n">dialect</span><span 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-701"><a href="#L-701"><span class="linenos"> 701</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-702"><a href="#L-702"><span class="linenos"> 702</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-703"><a href="#L-703"><span class="linenos"> 703</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
+</span><span id="L-704"><a href="#L-704"><span class="linenos"> 704</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-705"><a href="#L-705"><span class="linenos"> 705</span></a><span class="sd"> OR this condition with one or multiple expressions.</span>
</span><span id="L-706"><a href="#L-706"><span class="linenos"> 706</span></a>
-</span><span id="L-707"><a href="#L-707"><span class="linenos"> 707</span></a> <span class="k">def</span> <span class="nf">or_</span><span class="p">(</span>
-</span><span id="L-708"><a href="#L-708"><span class="linenos"> 708</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-709"><a href="#L-709"><span class="linenos"> 709</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="L-710"><a href="#L-710"><span class="linenos"> 710</span></a> <span class="n">dialect</span><span 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-711"><a href="#L-711"><span class="linenos"> 711</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-712"><a href="#L-712"><span class="linenos"> 712</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-713"><a href="#L-713"><span class="linenos"> 713</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
-</span><span id="L-714"><a href="#L-714"><span class="linenos"> 714</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-715"><a href="#L-715"><span class="linenos"> 715</span></a><span class="sd"> OR this condition with one or multiple expressions.</span>
-</span><span id="L-716"><a href="#L-716"><span class="linenos"> 716</span></a>
-</span><span id="L-717"><a href="#L-717"><span class="linenos"> 717</span></a><span class="sd"> Example:</span>
-</span><span id="L-718"><a href="#L-718"><span class="linenos"> 718</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).or_(&quot;y=1&quot;).sql()</span>
-</span><span id="L-719"><a href="#L-719"><span class="linenos"> 719</span></a><span class="sd"> &#39;x = 1 OR y = 1&#39;</span>
-</span><span id="L-720"><a href="#L-720"><span class="linenos"> 720</span></a>
-</span><span id="L-721"><a href="#L-721"><span class="linenos"> 721</span></a><span class="sd"> Args:</span>
-</span><span id="L-722"><a href="#L-722"><span class="linenos"> 722</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="L-723"><a href="#L-723"><span class="linenos"> 723</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-724"><a href="#L-724"><span class="linenos"> 724</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-725"><a href="#L-725"><span class="linenos"> 725</span></a><span class="sd"> copy: whether or not to copy the involved expressions (only applies to Expressions).</span>
-</span><span id="L-726"><a href="#L-726"><span class="linenos"> 726</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="L-727"><a href="#L-727"><span class="linenos"> 727</span></a>
-</span><span id="L-728"><a href="#L-728"><span class="linenos"> 728</span></a><span class="sd"> Returns:</span>
-</span><span id="L-729"><a href="#L-729"><span class="linenos"> 729</span></a><span class="sd"> The new Or condition.</span>
-</span><span id="L-730"><a href="#L-730"><span class="linenos"> 730</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-731"><a href="#L-731"><span class="linenos"> 731</span></a> <span class="k">return</span> <span class="n">or_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-732"><a href="#L-732"><span class="linenos"> 732</span></a>
-</span><span id="L-733"><a href="#L-733"><span class="linenos"> 733</span></a> <span class="k">def</span> <span class="nf">not_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">):</span>
-</span><span id="L-734"><a href="#L-734"><span class="linenos"> 734</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-735"><a href="#L-735"><span class="linenos"> 735</span></a><span class="sd"> Wrap this condition with NOT.</span>
-</span><span id="L-736"><a href="#L-736"><span class="linenos"> 736</span></a>
-</span><span id="L-737"><a href="#L-737"><span class="linenos"> 737</span></a><span class="sd"> Example:</span>
-</span><span id="L-738"><a href="#L-738"><span class="linenos"> 738</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).not_().sql()</span>
-</span><span id="L-739"><a href="#L-739"><span class="linenos"> 739</span></a><span class="sd"> &#39;NOT x = 1&#39;</span>
-</span><span id="L-740"><a href="#L-740"><span class="linenos"> 740</span></a>
-</span><span id="L-741"><a href="#L-741"><span class="linenos"> 741</span></a><span class="sd"> Args:</span>
-</span><span id="L-742"><a href="#L-742"><span class="linenos"> 742</span></a><span class="sd"> copy: whether or not to copy this object.</span>
-</span><span id="L-743"><a href="#L-743"><span class="linenos"> 743</span></a>
-</span><span id="L-744"><a href="#L-744"><span class="linenos"> 744</span></a><span class="sd"> Returns:</span>
-</span><span id="L-745"><a href="#L-745"><span class="linenos"> 745</span></a><span class="sd"> The new Not instance.</span>
-</span><span id="L-746"><a href="#L-746"><span class="linenos"> 746</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-747"><a href="#L-747"><span class="linenos"> 747</span></a> <span class="k">return</span> <span class="n">not_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span>
+</span><span id="L-707"><a href="#L-707"><span class="linenos"> 707</span></a><span class="sd"> Example:</span>
+</span><span id="L-708"><a href="#L-708"><span class="linenos"> 708</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).or_(&quot;y=1&quot;).sql()</span>
+</span><span id="L-709"><a href="#L-709"><span class="linenos"> 709</span></a><span class="sd"> &#39;x = 1 OR y = 1&#39;</span>
+</span><span id="L-710"><a href="#L-710"><span class="linenos"> 710</span></a>
+</span><span id="L-711"><a href="#L-711"><span class="linenos"> 711</span></a><span class="sd"> Args:</span>
+</span><span id="L-712"><a href="#L-712"><span class="linenos"> 712</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="L-713"><a href="#L-713"><span class="linenos"> 713</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-714"><a href="#L-714"><span class="linenos"> 714</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-715"><a href="#L-715"><span class="linenos"> 715</span></a><span class="sd"> copy: whether or not to copy the involved expressions (only applies to Expressions).</span>
+</span><span id="L-716"><a href="#L-716"><span class="linenos"> 716</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-717"><a href="#L-717"><span class="linenos"> 717</span></a>
+</span><span id="L-718"><a href="#L-718"><span class="linenos"> 718</span></a><span class="sd"> Returns:</span>
+</span><span id="L-719"><a href="#L-719"><span class="linenos"> 719</span></a><span class="sd"> The new Or condition.</span>
+</span><span id="L-720"><a href="#L-720"><span class="linenos"> 720</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-721"><a href="#L-721"><span class="linenos"> 721</span></a> <span class="k">return</span> <span class="n">or_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-722"><a href="#L-722"><span class="linenos"> 722</span></a>
+</span><span id="L-723"><a href="#L-723"><span class="linenos"> 723</span></a> <span class="k">def</span> <span class="nf">not_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">):</span>
+</span><span id="L-724"><a href="#L-724"><span class="linenos"> 724</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-725"><a href="#L-725"><span class="linenos"> 725</span></a><span class="sd"> Wrap this condition with NOT.</span>
+</span><span id="L-726"><a href="#L-726"><span class="linenos"> 726</span></a>
+</span><span id="L-727"><a href="#L-727"><span class="linenos"> 727</span></a><span class="sd"> Example:</span>
+</span><span id="L-728"><a href="#L-728"><span class="linenos"> 728</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).not_().sql()</span>
+</span><span id="L-729"><a href="#L-729"><span class="linenos"> 729</span></a><span class="sd"> &#39;NOT x = 1&#39;</span>
+</span><span id="L-730"><a href="#L-730"><span class="linenos"> 730</span></a>
+</span><span id="L-731"><a href="#L-731"><span class="linenos"> 731</span></a><span class="sd"> Args:</span>
+</span><span id="L-732"><a href="#L-732"><span class="linenos"> 732</span></a><span class="sd"> copy: whether or not to copy this object.</span>
+</span><span id="L-733"><a href="#L-733"><span class="linenos"> 733</span></a>
+</span><span id="L-734"><a href="#L-734"><span class="linenos"> 734</span></a><span class="sd"> Returns:</span>
+</span><span id="L-735"><a href="#L-735"><span class="linenos"> 735</span></a><span class="sd"> The new Not instance.</span>
+</span><span id="L-736"><a href="#L-736"><span class="linenos"> 736</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-737"><a href="#L-737"><span class="linenos"> 737</span></a> <span class="k">return</span> <span class="n">not_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span>
+</span><span id="L-738"><a href="#L-738"><span class="linenos"> 738</span></a>
+</span><span id="L-739"><a href="#L-739"><span class="linenos"> 739</span></a> <span class="k">def</span> <span class="nf">as_</span><span class="p">(</span>
+</span><span id="L-740"><a href="#L-740"><span class="linenos"> 740</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-741"><a href="#L-741"><span class="linenos"> 741</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-742"><a href="#L-742"><span class="linenos"> 742</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-743"><a href="#L-743"><span class="linenos"> 743</span></a> <span class="n">dialect</span><span 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-744"><a href="#L-744"><span class="linenos"> 744</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-745"><a href="#L-745"><span class="linenos"> 745</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-746"><a href="#L-746"><span class="linenos"> 746</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Alias</span><span class="p">:</span>
+</span><span id="L-747"><a href="#L-747"><span class="linenos"> 747</span></a> <span class="k">return</span> <span class="n">alias_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="L-748"><a href="#L-748"><span class="linenos"> 748</span></a>
-</span><span id="L-749"><a href="#L-749"><span class="linenos"> 749</span></a> <span class="k">def</span> <span class="nf">as_</span><span class="p">(</span>
-</span><span id="L-750"><a href="#L-750"><span class="linenos"> 750</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-751"><a href="#L-751"><span class="linenos"> 751</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-752"><a href="#L-752"><span class="linenos"> 752</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-753"><a href="#L-753"><span class="linenos"> 753</span></a> <span class="n">dialect</span><span 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-754"><a href="#L-754"><span class="linenos"> 754</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-755"><a href="#L-755"><span class="linenos"> 755</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-756"><a href="#L-756"><span class="linenos"> 756</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Alias</span><span class="p">:</span>
-</span><span id="L-757"><a href="#L-757"><span class="linenos"> 757</span></a> <span class="k">return</span> <span class="n">alias_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-749"><a href="#L-749"><span class="linenos"> 749</span></a> <span class="k">def</span> <span class="nf">_binop</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">klass</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">],</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">reverse</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
+</span><span id="L-750"><a href="#L-750"><span class="linenos"> 750</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
+</span><span id="L-751"><a href="#L-751"><span class="linenos"> 751</span></a> <span class="n">other</span> <span class="o">=</span> <span class="n">convert</span><span class="p">(</span><span class="n">other</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+</span><span id="L-752"><a href="#L-752"><span class="linenos"> 752</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">klass</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">other</span><span class="p">,</span> <span class="n">klass</span><span class="p">):</span>
+</span><span id="L-753"><a href="#L-753"><span class="linenos"> 753</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">_wrap</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">Binary</span><span class="p">)</span>
+</span><span id="L-754"><a href="#L-754"><span class="linenos"> 754</span></a> <span class="n">other</span> <span class="o">=</span> <span class="n">_wrap</span><span class="p">(</span><span class="n">other</span><span class="p">,</span> <span class="n">Binary</span><span class="p">)</span>
+</span><span id="L-755"><a href="#L-755"><span class="linenos"> 755</span></a> <span class="k">if</span> <span class="n">reverse</span><span class="p">:</span>
+</span><span id="L-756"><a href="#L-756"><span class="linenos"> 756</span></a> <span class="k">return</span> <span class="n">klass</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">other</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">this</span><span class="p">)</span>
+</span><span id="L-757"><a href="#L-757"><span class="linenos"> 757</span></a> <span class="k">return</span> <span class="n">klass</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">other</span><span class="p">)</span>
</span><span id="L-758"><a href="#L-758"><span class="linenos"> 758</span></a>
-</span><span id="L-759"><a href="#L-759"><span class="linenos"> 759</span></a> <span class="k">def</span> <span class="nf">_binop</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">klass</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">],</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">reverse</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
-</span><span id="L-760"><a href="#L-760"><span class="linenos"> 760</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
-</span><span id="L-761"><a href="#L-761"><span class="linenos"> 761</span></a> <span class="n">other</span> <span class="o">=</span> <span class="n">convert</span><span class="p">(</span><span class="n">other</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</span><span id="L-762"><a href="#L-762"><span class="linenos"> 762</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">klass</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">other</span><span class="p">,</span> <span class="n">klass</span><span class="p">):</span>
-</span><span id="L-763"><a href="#L-763"><span class="linenos"> 763</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">_wrap</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">Binary</span><span class="p">)</span>
-</span><span id="L-764"><a href="#L-764"><span class="linenos"> 764</span></a> <span class="n">other</span> <span class="o">=</span> <span class="n">_wrap</span><span class="p">(</span><span class="n">other</span><span class="p">,</span> <span class="n">Binary</span><span class="p">)</span>
-</span><span id="L-765"><a href="#L-765"><span class="linenos"> 765</span></a> <span class="k">if</span> <span class="n">reverse</span><span class="p">:</span>
-</span><span id="L-766"><a href="#L-766"><span class="linenos"> 766</span></a> <span class="k">return</span> <span class="n">klass</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">other</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">this</span><span class="p">)</span>
-</span><span id="L-767"><a href="#L-767"><span class="linenos"> 767</span></a> <span class="k">return</span> <span class="n">klass</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">other</span><span class="p">)</span>
-</span><span id="L-768"><a href="#L-768"><span class="linenos"> 768</span></a>
-</span><span id="L-769"><a href="#L-769"><span class="linenos"> 769</span></a> <span class="k">def</span> <span class="fm">__getitem__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Tuple</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">Bracket</span><span class="p">:</span>
-</span><span id="L-770"><a href="#L-770"><span class="linenos"> 770</span></a> <span class="k">return</span> <span class="n">Bracket</span><span class="p">(</span>
-</span><span id="L-771"><a href="#L-771"><span class="linenos"> 771</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">ensure_list</span><span class="p">(</span><span class="n">other</span><span class="p">)]</span>
-</span><span id="L-772"><a href="#L-772"><span class="linenos"> 772</span></a> <span class="p">)</span>
-</span><span id="L-773"><a href="#L-773"><span class="linenos"> 773</span></a>
-</span><span id="L-774"><a href="#L-774"><span class="linenos"> 774</span></a> <span class="k">def</span> <span class="fm">__iter__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Iterator</span><span class="p">:</span>
-</span><span id="L-775"><a href="#L-775"><span class="linenos"> 775</span></a> <span class="k">if</span> <span class="s2">&quot;expressions&quot;</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">:</span>
-</span><span id="L-776"><a href="#L-776"><span class="linenos"> 776</span></a> <span class="k">return</span> <span class="nb">iter</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;expressions&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[])</span>
-</span><span id="L-777"><a href="#L-777"><span class="linenos"> 777</span></a> <span class="c1"># We define this because __getitem__ converts Expression into an iterable, which is</span>
-</span><span id="L-778"><a href="#L-778"><span class="linenos"> 778</span></a> <span class="c1"># problematic because one can hit infinite loops if they do &quot;for x in some_expr: ...&quot;</span>
-</span><span id="L-779"><a href="#L-779"><span class="linenos"> 779</span></a> <span class="c1"># See: https://peps.python.org/pep-0234/</span>
-</span><span id="L-780"><a href="#L-780"><span class="linenos"> 780</span></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;&#39;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="si">}</span><span class="s2">&#39; object is not iterable&quot;</span><span class="p">)</span>
-</span><span id="L-781"><a href="#L-781"><span class="linenos"> 781</span></a>
-</span><span id="L-782"><a href="#L-782"><span class="linenos"> 782</span></a> <span class="k">def</span> <span class="nf">isin</span><span class="p">(</span>
-</span><span id="L-783"><a href="#L-783"><span class="linenos"> 783</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-784"><a href="#L-784"><span class="linenos"> 784</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span>
-</span><span id="L-785"><a href="#L-785"><span class="linenos"> 785</span></a> <span class="n">query</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-786"><a href="#L-786"><span class="linenos"> 786</span></a> <span class="n">unnest</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Collection</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-787"><a href="#L-787"><span class="linenos"> 787</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-788"><a href="#L-788"><span class="linenos"> 788</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-789"><a href="#L-789"><span class="linenos"> 789</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">In</span><span class="p">:</span>
-</span><span id="L-790"><a href="#L-790"><span class="linenos"> 790</span></a> <span class="k">return</span> <span class="n">In</span><span class="p">(</span>
-</span><span id="L-791"><a href="#L-791"><span class="linenos"> 791</span></a> <span class="n">this</span><span class="o">=</span><span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">),</span>
-</span><span id="L-792"><a href="#L-792"><span class="linenos"> 792</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">],</span>
-</span><span id="L-793"><a href="#L-793"><span class="linenos"> 793</span></a> <span class="n">query</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">query</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="k">if</span> <span class="n">query</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-794"><a href="#L-794"><span class="linenos"> 794</span></a> <span class="n">unnest</span><span class="o">=</span><span class="n">Unnest</span><span class="p">(</span>
-</span><span id="L-795"><a href="#L-795"><span class="linenos"> 795</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span>
-</span><span id="L-796"><a href="#L-796"><span class="linenos"> 796</span></a> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">e</span><span class="p">),</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">ensure_list</span><span class="p">(</span><span class="n">unnest</span><span class="p">)</span>
-</span><span id="L-797"><a href="#L-797"><span class="linenos"> 797</span></a> <span class="p">]</span>
-</span><span id="L-798"><a href="#L-798"><span class="linenos"> 798</span></a> <span class="p">)</span>
-</span><span id="L-799"><a href="#L-799"><span class="linenos"> 799</span></a> <span class="k">if</span> <span class="n">unnest</span>
-</span><span id="L-800"><a href="#L-800"><span class="linenos"> 800</span></a> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-801"><a href="#L-801"><span class="linenos"> 801</span></a> <span class="p">)</span>
+</span><span id="L-759"><a href="#L-759"><span class="linenos"> 759</span></a> <span class="k">def</span> <span class="fm">__getitem__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Tuple</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">Bracket</span><span class="p">:</span>
+</span><span id="L-760"><a href="#L-760"><span class="linenos"> 760</span></a> <span class="k">return</span> <span class="n">Bracket</span><span class="p">(</span>
+</span><span id="L-761"><a href="#L-761"><span class="linenos"> 761</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">ensure_list</span><span class="p">(</span><span class="n">other</span><span class="p">)]</span>
+</span><span id="L-762"><a href="#L-762"><span class="linenos"> 762</span></a> <span class="p">)</span>
+</span><span id="L-763"><a href="#L-763"><span class="linenos"> 763</span></a>
+</span><span id="L-764"><a href="#L-764"><span class="linenos"> 764</span></a> <span class="k">def</span> <span class="fm">__iter__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Iterator</span><span class="p">:</span>
+</span><span id="L-765"><a href="#L-765"><span class="linenos"> 765</span></a> <span class="k">if</span> <span class="s2">&quot;expressions&quot;</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">:</span>
+</span><span id="L-766"><a href="#L-766"><span class="linenos"> 766</span></a> <span class="k">return</span> <span class="nb">iter</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;expressions&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[])</span>
+</span><span id="L-767"><a href="#L-767"><span class="linenos"> 767</span></a> <span class="c1"># We define this because __getitem__ converts Expression into an iterable, which is</span>
+</span><span id="L-768"><a href="#L-768"><span class="linenos"> 768</span></a> <span class="c1"># problematic because one can hit infinite loops if they do &quot;for x in some_expr: ...&quot;</span>
+</span><span id="L-769"><a href="#L-769"><span class="linenos"> 769</span></a> <span class="c1"># See: https://peps.python.org/pep-0234/</span>
+</span><span id="L-770"><a href="#L-770"><span class="linenos"> 770</span></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;&#39;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="si">}</span><span class="s2">&#39; object is not iterable&quot;</span><span class="p">)</span>
+</span><span id="L-771"><a href="#L-771"><span class="linenos"> 771</span></a>
+</span><span id="L-772"><a href="#L-772"><span class="linenos"> 772</span></a> <span class="k">def</span> <span class="nf">isin</span><span class="p">(</span>
+</span><span id="L-773"><a href="#L-773"><span class="linenos"> 773</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-774"><a href="#L-774"><span class="linenos"> 774</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span>
+</span><span id="L-775"><a href="#L-775"><span class="linenos"> 775</span></a> <span class="n">query</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-776"><a href="#L-776"><span class="linenos"> 776</span></a> <span class="n">unnest</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Collection</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-777"><a href="#L-777"><span class="linenos"> 777</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-778"><a href="#L-778"><span class="linenos"> 778</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-779"><a href="#L-779"><span class="linenos"> 779</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">In</span><span class="p">:</span>
+</span><span id="L-780"><a href="#L-780"><span class="linenos"> 780</span></a> <span class="k">return</span> <span class="n">In</span><span class="p">(</span>
+</span><span id="L-781"><a href="#L-781"><span class="linenos"> 781</span></a> <span class="n">this</span><span class="o">=</span><span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">),</span>
+</span><span id="L-782"><a href="#L-782"><span class="linenos"> 782</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">],</span>
+</span><span id="L-783"><a href="#L-783"><span class="linenos"> 783</span></a> <span class="n">query</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">query</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="k">if</span> <span class="n">query</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-784"><a href="#L-784"><span class="linenos"> 784</span></a> <span class="n">unnest</span><span class="o">=</span><span class="n">Unnest</span><span class="p">(</span>
+</span><span id="L-785"><a href="#L-785"><span class="linenos"> 785</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span>
+</span><span id="L-786"><a href="#L-786"><span class="linenos"> 786</span></a> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">e</span><span class="p">),</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">ensure_list</span><span class="p">(</span><span class="n">unnest</span><span class="p">)</span>
+</span><span id="L-787"><a href="#L-787"><span class="linenos"> 787</span></a> <span class="p">]</span>
+</span><span id="L-788"><a href="#L-788"><span class="linenos"> 788</span></a> <span class="p">)</span>
+</span><span id="L-789"><a href="#L-789"><span class="linenos"> 789</span></a> <span class="k">if</span> <span class="n">unnest</span>
+</span><span id="L-790"><a href="#L-790"><span class="linenos"> 790</span></a> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-791"><a href="#L-791"><span class="linenos"> 791</span></a> <span class="p">)</span>
+</span><span id="L-792"><a href="#L-792"><span class="linenos"> 792</span></a>
+</span><span id="L-793"><a href="#L-793"><span class="linenos"> 793</span></a> <span class="k">def</span> <span class="nf">between</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">low</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">high</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Between</span><span class="p">:</span>
+</span><span id="L-794"><a href="#L-794"><span class="linenos"> 794</span></a> <span class="k">return</span> <span class="n">Between</span><span class="p">(</span>
+</span><span id="L-795"><a href="#L-795"><span class="linenos"> 795</span></a> <span class="n">this</span><span class="o">=</span><span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">),</span>
+</span><span id="L-796"><a href="#L-796"><span class="linenos"> 796</span></a> <span class="n">low</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">low</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
+</span><span id="L-797"><a href="#L-797"><span class="linenos"> 797</span></a> <span class="n">high</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">high</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
+</span><span id="L-798"><a href="#L-798"><span class="linenos"> 798</span></a> <span class="p">)</span>
+</span><span id="L-799"><a href="#L-799"><span class="linenos"> 799</span></a>
+</span><span id="L-800"><a href="#L-800"><span class="linenos"> 800</span></a> <span class="k">def</span> <span class="nf">is_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Is</span><span class="p">:</span>
+</span><span id="L-801"><a href="#L-801"><span class="linenos"> 801</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Is</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span><span id="L-802"><a href="#L-802"><span class="linenos"> 802</span></a>
-</span><span id="L-803"><a href="#L-803"><span class="linenos"> 803</span></a> <span class="k">def</span> <span class="nf">between</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">low</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">high</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Between</span><span class="p">:</span>
-</span><span id="L-804"><a href="#L-804"><span class="linenos"> 804</span></a> <span class="k">return</span> <span class="n">Between</span><span class="p">(</span>
-</span><span id="L-805"><a href="#L-805"><span class="linenos"> 805</span></a> <span class="n">this</span><span class="o">=</span><span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">),</span>
-</span><span id="L-806"><a href="#L-806"><span class="linenos"> 806</span></a> <span class="n">low</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">low</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
-</span><span id="L-807"><a href="#L-807"><span class="linenos"> 807</span></a> <span class="n">high</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">high</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
-</span><span id="L-808"><a href="#L-808"><span class="linenos"> 808</span></a> <span class="p">)</span>
-</span><span id="L-809"><a href="#L-809"><span class="linenos"> 809</span></a>
-</span><span id="L-810"><a href="#L-810"><span class="linenos"> 810</span></a> <span class="k">def</span> <span class="nf">is_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Is</span><span class="p">:</span>
-</span><span id="L-811"><a href="#L-811"><span class="linenos"> 811</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Is</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="L-812"><a href="#L-812"><span class="linenos"> 812</span></a>
-</span><span id="L-813"><a href="#L-813"><span class="linenos"> 813</span></a> <span class="k">def</span> <span class="nf">like</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Like</span><span class="p">:</span>
-</span><span id="L-814"><a href="#L-814"><span class="linenos"> 814</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Like</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="L-815"><a href="#L-815"><span class="linenos"> 815</span></a>
-</span><span id="L-816"><a href="#L-816"><span class="linenos"> 816</span></a> <span class="k">def</span> <span class="nf">ilike</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">ILike</span><span class="p">:</span>
-</span><span id="L-817"><a href="#L-817"><span class="linenos"> 817</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">ILike</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="L-818"><a href="#L-818"><span class="linenos"> 818</span></a>
-</span><span id="L-819"><a href="#L-819"><span class="linenos"> 819</span></a> <span class="k">def</span> <span class="nf">eq</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">EQ</span><span class="p">:</span>
-</span><span id="L-820"><a href="#L-820"><span class="linenos"> 820</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">EQ</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="L-821"><a href="#L-821"><span class="linenos"> 821</span></a>
-</span><span id="L-822"><a href="#L-822"><span class="linenos"> 822</span></a> <span class="k">def</span> <span class="nf">neq</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">NEQ</span><span class="p">:</span>
-</span><span id="L-823"><a href="#L-823"><span class="linenos"> 823</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">NEQ</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="L-824"><a href="#L-824"><span class="linenos"> 824</span></a>
-</span><span id="L-825"><a href="#L-825"><span class="linenos"> 825</span></a> <span class="k">def</span> <span class="nf">rlike</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">RegexpLike</span><span class="p">:</span>
-</span><span id="L-826"><a href="#L-826"><span class="linenos"> 826</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">RegexpLike</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</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">def</span> <span class="nf">div</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">typed</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span> <span class="n">safe</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Div</span><span class="p">:</span>
-</span><span id="L-829"><a href="#L-829"><span class="linenos"> 829</span></a> <span class="n">div</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Div</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="L-830"><a href="#L-830"><span class="linenos"> 830</span></a> <span class="n">div</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;typed&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">typed</span>
-</span><span id="L-831"><a href="#L-831"><span class="linenos"> 831</span></a> <span class="n">div</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;safe&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">safe</span>
-</span><span id="L-832"><a href="#L-832"><span class="linenos"> 832</span></a> <span class="k">return</span> <span class="n">div</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 class="k">def</span> <span class="fm">__lt__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">LT</span><span class="p">:</span>
-</span><span id="L-835"><a href="#L-835"><span class="linenos"> 835</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">LT</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="L-836"><a href="#L-836"><span class="linenos"> 836</span></a>
-</span><span id="L-837"><a href="#L-837"><span class="linenos"> 837</span></a> <span class="k">def</span> <span class="fm">__le__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">LTE</span><span class="p">:</span>
-</span><span id="L-838"><a href="#L-838"><span class="linenos"> 838</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">LTE</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</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">def</span> <span class="fm">__gt__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">GT</span><span class="p">:</span>
-</span><span id="L-841"><a href="#L-841"><span class="linenos"> 841</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">GT</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="L-842"><a href="#L-842"><span class="linenos"> 842</span></a>
-</span><span id="L-843"><a href="#L-843"><span class="linenos"> 843</span></a> <span class="k">def</span> <span class="fm">__ge__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">GTE</span><span class="p">:</span>
-</span><span id="L-844"><a href="#L-844"><span class="linenos"> 844</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">GTE</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="L-845"><a href="#L-845"><span class="linenos"> 845</span></a>
-</span><span id="L-846"><a href="#L-846"><span class="linenos"> 846</span></a> <span class="k">def</span> <span class="fm">__add__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Add</span><span class="p">:</span>
-</span><span id="L-847"><a href="#L-847"><span class="linenos"> 847</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Add</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</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 class="k">def</span> <span class="fm">__radd__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Add</span><span class="p">:</span>
-</span><span id="L-850"><a href="#L-850"><span class="linenos"> 850</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Add</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</span><span id="L-851"><a href="#L-851"><span class="linenos"> 851</span></a>
-</span><span id="L-852"><a href="#L-852"><span class="linenos"> 852</span></a> <span class="k">def</span> <span class="fm">__sub__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Sub</span><span class="p">:</span>
-</span><span id="L-853"><a href="#L-853"><span class="linenos"> 853</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Sub</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="L-854"><a href="#L-854"><span class="linenos"> 854</span></a>
-</span><span id="L-855"><a href="#L-855"><span class="linenos"> 855</span></a> <span class="k">def</span> <span class="fm">__rsub__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Sub</span><span class="p">:</span>
-</span><span id="L-856"><a href="#L-856"><span class="linenos"> 856</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Sub</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</span><span id="L-857"><a href="#L-857"><span class="linenos"> 857</span></a>
-</span><span id="L-858"><a href="#L-858"><span class="linenos"> 858</span></a> <span class="k">def</span> <span class="fm">__mul__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Mul</span><span class="p">:</span>
-</span><span id="L-859"><a href="#L-859"><span class="linenos"> 859</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Mul</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="L-860"><a href="#L-860"><span class="linenos"> 860</span></a>
-</span><span id="L-861"><a href="#L-861"><span class="linenos"> 861</span></a> <span class="k">def</span> <span class="fm">__rmul__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Mul</span><span class="p">:</span>
-</span><span id="L-862"><a href="#L-862"><span class="linenos"> 862</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Mul</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</span><span id="L-863"><a href="#L-863"><span class="linenos"> 863</span></a>
-</span><span id="L-864"><a href="#L-864"><span class="linenos"> 864</span></a> <span class="k">def</span> <span class="fm">__truediv__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Div</span><span class="p">:</span>
-</span><span id="L-865"><a href="#L-865"><span class="linenos"> 865</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Div</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="L-866"><a href="#L-866"><span class="linenos"> 866</span></a>
-</span><span id="L-867"><a href="#L-867"><span class="linenos"> 867</span></a> <span class="k">def</span> <span class="fm">__rtruediv__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Div</span><span class="p">:</span>
-</span><span id="L-868"><a href="#L-868"><span class="linenos"> 868</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Div</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</span><span id="L-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">def</span> <span class="fm">__floordiv__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">IntDiv</span><span class="p">:</span>
-</span><span id="L-871"><a href="#L-871"><span class="linenos"> 871</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">IntDiv</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</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 class="k">def</span> <span class="fm">__rfloordiv__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">IntDiv</span><span class="p">:</span>
-</span><span id="L-874"><a href="#L-874"><span class="linenos"> 874</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">IntDiv</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</span><span id="L-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 class="k">def</span> <span class="fm">__mod__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Mod</span><span class="p">:</span>
-</span><span id="L-877"><a href="#L-877"><span class="linenos"> 877</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Mod</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="L-878"><a href="#L-878"><span class="linenos"> 878</span></a>
-</span><span id="L-879"><a href="#L-879"><span class="linenos"> 879</span></a> <span class="k">def</span> <span class="fm">__rmod__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Mod</span><span class="p">:</span>
-</span><span id="L-880"><a href="#L-880"><span class="linenos"> 880</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Mod</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</span><span id="L-881"><a href="#L-881"><span class="linenos"> 881</span></a>
-</span><span id="L-882"><a href="#L-882"><span class="linenos"> 882</span></a> <span class="k">def</span> <span class="fm">__pow__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Pow</span><span class="p">:</span>
-</span><span id="L-883"><a href="#L-883"><span class="linenos"> 883</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Pow</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="L-884"><a href="#L-884"><span class="linenos"> 884</span></a>
-</span><span id="L-885"><a href="#L-885"><span class="linenos"> 885</span></a> <span class="k">def</span> <span class="fm">__rpow__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Pow</span><span class="p">:</span>
-</span><span id="L-886"><a href="#L-886"><span class="linenos"> 886</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Pow</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</span><span id="L-887"><a href="#L-887"><span class="linenos"> 887</span></a>
-</span><span id="L-888"><a href="#L-888"><span class="linenos"> 888</span></a> <span class="k">def</span> <span class="fm">__and__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">And</span><span class="p">:</span>
-</span><span id="L-889"><a href="#L-889"><span class="linenos"> 889</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">And</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="L-890"><a href="#L-890"><span class="linenos"> 890</span></a>
-</span><span id="L-891"><a href="#L-891"><span class="linenos"> 891</span></a> <span class="k">def</span> <span class="fm">__rand__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">And</span><span class="p">:</span>
-</span><span id="L-892"><a href="#L-892"><span class="linenos"> 892</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">And</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</span><span id="L-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">def</span> <span class="fm">__or__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Or</span><span class="p">:</span>
-</span><span id="L-895"><a href="#L-895"><span class="linenos"> 895</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Or</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="L-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="k">def</span> <span class="fm">__ror__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Or</span><span class="p">:</span>
-</span><span id="L-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">_binop</span><span class="p">(</span><span class="n">Or</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+</span><span id="L-803"><a href="#L-803"><span class="linenos"> 803</span></a> <span class="k">def</span> <span class="nf">like</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Like</span><span class="p">:</span>
+</span><span id="L-804"><a href="#L-804"><span class="linenos"> 804</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Like</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="L-805"><a href="#L-805"><span class="linenos"> 805</span></a>
+</span><span id="L-806"><a href="#L-806"><span class="linenos"> 806</span></a> <span class="k">def</span> <span class="nf">ilike</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">ILike</span><span class="p">:</span>
+</span><span id="L-807"><a href="#L-807"><span class="linenos"> 807</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">ILike</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="L-808"><a href="#L-808"><span class="linenos"> 808</span></a>
+</span><span id="L-809"><a href="#L-809"><span class="linenos"> 809</span></a> <span class="k">def</span> <span class="nf">eq</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">EQ</span><span class="p">:</span>
+</span><span id="L-810"><a href="#L-810"><span class="linenos"> 810</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">EQ</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="L-811"><a href="#L-811"><span class="linenos"> 811</span></a>
+</span><span id="L-812"><a href="#L-812"><span class="linenos"> 812</span></a> <span class="k">def</span> <span class="nf">neq</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">NEQ</span><span class="p">:</span>
+</span><span id="L-813"><a href="#L-813"><span class="linenos"> 813</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">NEQ</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="L-814"><a href="#L-814"><span class="linenos"> 814</span></a>
+</span><span id="L-815"><a href="#L-815"><span class="linenos"> 815</span></a> <span class="k">def</span> <span class="nf">rlike</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">RegexpLike</span><span class="p">:</span>
+</span><span id="L-816"><a href="#L-816"><span class="linenos"> 816</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">RegexpLike</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="L-817"><a href="#L-817"><span class="linenos"> 817</span></a>
+</span><span id="L-818"><a href="#L-818"><span class="linenos"> 818</span></a> <span class="k">def</span> <span class="nf">div</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">typed</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span> <span class="n">safe</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Div</span><span class="p">:</span>
+</span><span id="L-819"><a href="#L-819"><span class="linenos"> 819</span></a> <span class="n">div</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Div</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="L-820"><a href="#L-820"><span class="linenos"> 820</span></a> <span class="n">div</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;typed&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">typed</span>
+</span><span id="L-821"><a href="#L-821"><span class="linenos"> 821</span></a> <span class="n">div</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;safe&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">safe</span>
+</span><span id="L-822"><a href="#L-822"><span class="linenos"> 822</span></a> <span class="k">return</span> <span class="n">div</span>
+</span><span id="L-823"><a href="#L-823"><span class="linenos"> 823</span></a>
+</span><span id="L-824"><a href="#L-824"><span class="linenos"> 824</span></a> <span class="k">def</span> <span class="nf">desc</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">nulls_first</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Ordered</span><span class="p">:</span>
+</span><span id="L-825"><a href="#L-825"><span class="linenos"> 825</span></a> <span class="k">return</span> <span class="n">Ordered</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span> <span class="n">desc</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">nulls_first</span><span class="o">=</span><span class="n">nulls_first</span><span class="p">)</span>
+</span><span id="L-826"><a href="#L-826"><span class="linenos"> 826</span></a>
+</span><span id="L-827"><a href="#L-827"><span class="linenos"> 827</span></a> <span class="k">def</span> <span class="fm">__lt__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">LT</span><span class="p">:</span>
+</span><span id="L-828"><a href="#L-828"><span class="linenos"> 828</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">LT</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="L-829"><a href="#L-829"><span class="linenos"> 829</span></a>
+</span><span id="L-830"><a href="#L-830"><span class="linenos"> 830</span></a> <span class="k">def</span> <span class="fm">__le__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">LTE</span><span class="p">:</span>
+</span><span id="L-831"><a href="#L-831"><span class="linenos"> 831</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">LTE</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="L-832"><a href="#L-832"><span class="linenos"> 832</span></a>
+</span><span id="L-833"><a href="#L-833"><span class="linenos"> 833</span></a> <span class="k">def</span> <span class="fm">__gt__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">GT</span><span class="p">:</span>
+</span><span id="L-834"><a href="#L-834"><span class="linenos"> 834</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">GT</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="L-835"><a href="#L-835"><span class="linenos"> 835</span></a>
+</span><span id="L-836"><a href="#L-836"><span class="linenos"> 836</span></a> <span class="k">def</span> <span class="fm">__ge__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">GTE</span><span class="p">:</span>
+</span><span id="L-837"><a href="#L-837"><span class="linenos"> 837</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">GTE</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="L-838"><a href="#L-838"><span class="linenos"> 838</span></a>
+</span><span id="L-839"><a href="#L-839"><span class="linenos"> 839</span></a> <span class="k">def</span> <span class="fm">__add__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Add</span><span class="p">:</span>
+</span><span id="L-840"><a href="#L-840"><span class="linenos"> 840</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Add</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="L-841"><a href="#L-841"><span class="linenos"> 841</span></a>
+</span><span id="L-842"><a href="#L-842"><span class="linenos"> 842</span></a> <span class="k">def</span> <span class="fm">__radd__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Add</span><span class="p">:</span>
+</span><span id="L-843"><a href="#L-843"><span class="linenos"> 843</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Add</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+</span><span id="L-844"><a href="#L-844"><span class="linenos"> 844</span></a>
+</span><span id="L-845"><a href="#L-845"><span class="linenos"> 845</span></a> <span class="k">def</span> <span class="fm">__sub__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Sub</span><span class="p">:</span>
+</span><span id="L-846"><a href="#L-846"><span class="linenos"> 846</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Sub</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="L-847"><a href="#L-847"><span class="linenos"> 847</span></a>
+</span><span id="L-848"><a href="#L-848"><span class="linenos"> 848</span></a> <span class="k">def</span> <span class="fm">__rsub__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Sub</span><span class="p">:</span>
+</span><span id="L-849"><a href="#L-849"><span class="linenos"> 849</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Sub</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+</span><span id="L-850"><a href="#L-850"><span class="linenos"> 850</span></a>
+</span><span id="L-851"><a href="#L-851"><span class="linenos"> 851</span></a> <span class="k">def</span> <span class="fm">__mul__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Mul</span><span class="p">:</span>
+</span><span id="L-852"><a href="#L-852"><span class="linenos"> 852</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Mul</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="L-853"><a href="#L-853"><span class="linenos"> 853</span></a>
+</span><span id="L-854"><a href="#L-854"><span class="linenos"> 854</span></a> <span class="k">def</span> <span class="fm">__rmul__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Mul</span><span class="p">:</span>
+</span><span id="L-855"><a href="#L-855"><span class="linenos"> 855</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Mul</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+</span><span id="L-856"><a href="#L-856"><span class="linenos"> 856</span></a>
+</span><span id="L-857"><a href="#L-857"><span class="linenos"> 857</span></a> <span class="k">def</span> <span class="fm">__truediv__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Div</span><span class="p">:</span>
+</span><span id="L-858"><a href="#L-858"><span class="linenos"> 858</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Div</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="L-859"><a href="#L-859"><span class="linenos"> 859</span></a>
+</span><span id="L-860"><a href="#L-860"><span class="linenos"> 860</span></a> <span class="k">def</span> <span class="fm">__rtruediv__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Div</span><span class="p">:</span>
+</span><span id="L-861"><a href="#L-861"><span class="linenos"> 861</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Div</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+</span><span id="L-862"><a href="#L-862"><span class="linenos"> 862</span></a>
+</span><span id="L-863"><a href="#L-863"><span class="linenos"> 863</span></a> <span class="k">def</span> <span class="fm">__floordiv__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">IntDiv</span><span class="p">:</span>
+</span><span id="L-864"><a href="#L-864"><span class="linenos"> 864</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">IntDiv</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="L-865"><a href="#L-865"><span class="linenos"> 865</span></a>
+</span><span id="L-866"><a href="#L-866"><span class="linenos"> 866</span></a> <span class="k">def</span> <span class="fm">__rfloordiv__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">IntDiv</span><span class="p">:</span>
+</span><span id="L-867"><a href="#L-867"><span class="linenos"> 867</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">IntDiv</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+</span><span id="L-868"><a href="#L-868"><span class="linenos"> 868</span></a>
+</span><span id="L-869"><a href="#L-869"><span class="linenos"> 869</span></a> <span class="k">def</span> <span class="fm">__mod__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Mod</span><span class="p">:</span>
+</span><span id="L-870"><a href="#L-870"><span class="linenos"> 870</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Mod</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="L-871"><a href="#L-871"><span class="linenos"> 871</span></a>
+</span><span id="L-872"><a href="#L-872"><span class="linenos"> 872</span></a> <span class="k">def</span> <span class="fm">__rmod__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Mod</span><span class="p">:</span>
+</span><span id="L-873"><a href="#L-873"><span class="linenos"> 873</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Mod</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+</span><span id="L-874"><a href="#L-874"><span class="linenos"> 874</span></a>
+</span><span id="L-875"><a href="#L-875"><span class="linenos"> 875</span></a> <span class="k">def</span> <span class="fm">__pow__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Pow</span><span class="p">:</span>
+</span><span id="L-876"><a href="#L-876"><span class="linenos"> 876</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Pow</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="L-877"><a href="#L-877"><span class="linenos"> 877</span></a>
+</span><span id="L-878"><a href="#L-878"><span class="linenos"> 878</span></a> <span class="k">def</span> <span class="fm">__rpow__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Pow</span><span class="p">:</span>
+</span><span id="L-879"><a href="#L-879"><span class="linenos"> 879</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Pow</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+</span><span id="L-880"><a href="#L-880"><span class="linenos"> 880</span></a>
+</span><span id="L-881"><a href="#L-881"><span class="linenos"> 881</span></a> <span class="k">def</span> <span class="fm">__and__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">And</span><span class="p">:</span>
+</span><span id="L-882"><a href="#L-882"><span class="linenos"> 882</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">And</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="L-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 class="k">def</span> <span class="fm">__rand__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">And</span><span class="p">:</span>
+</span><span id="L-885"><a href="#L-885"><span class="linenos"> 885</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">And</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+</span><span id="L-886"><a href="#L-886"><span class="linenos"> 886</span></a>
+</span><span id="L-887"><a href="#L-887"><span class="linenos"> 887</span></a> <span class="k">def</span> <span class="fm">__or__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Or</span><span class="p">:</span>
+</span><span id="L-888"><a href="#L-888"><span class="linenos"> 888</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Or</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="L-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">def</span> <span class="fm">__ror__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Or</span><span class="p">:</span>
+</span><span id="L-891"><a href="#L-891"><span class="linenos"> 891</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Or</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+</span><span id="L-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 class="k">def</span> <span class="fm">__neg__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Neg</span><span class="p">:</span>
+</span><span id="L-894"><a href="#L-894"><span class="linenos"> 894</span></a> <span class="k">return</span> <span class="n">Neg</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">_wrap</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span> <span class="n">Binary</span><span class="p">))</span>
+</span><span id="L-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="k">def</span> <span class="fm">__invert__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Not</span><span class="p">:</span>
+</span><span id="L-897"><a href="#L-897"><span class="linenos"> 897</span></a> <span class="k">return</span> <span class="n">not_</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">())</span>
+</span><span id="L-898"><a href="#L-898"><span class="linenos"> 898</span></a>
</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 class="k">def</span> <span class="fm">__neg__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Neg</span><span class="p">:</span>
-</span><span id="L-901"><a href="#L-901"><span class="linenos"> 901</span></a> <span class="k">return</span> <span class="n">Neg</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">_wrap</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span> <span class="n">Binary</span><span class="p">))</span>
-</span><span id="L-902"><a href="#L-902"><span class="linenos"> 902</span></a>
-</span><span id="L-903"><a href="#L-903"><span class="linenos"> 903</span></a> <span class="k">def</span> <span class="fm">__invert__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Not</span><span class="p">:</span>
-</span><span id="L-904"><a href="#L-904"><span class="linenos"> 904</span></a> <span class="k">return</span> <span class="n">not_</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">())</span>
-</span><span id="L-905"><a href="#L-905"><span class="linenos"> 905</span></a>
+</span><span id="L-900"><a href="#L-900"><span class="linenos"> 900</span></a><span class="n">IntoType</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">Union</span><span class="p">[</span>
+</span><span id="L-901"><a href="#L-901"><span class="linenos"> 901</span></a> <span class="nb">str</span><span class="p">,</span>
+</span><span id="L-902"><a href="#L-902"><span class="linenos"> 902</span></a> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">Expression</span><span class="p">],</span>
+</span><span id="L-903"><a href="#L-903"><span class="linenos"> 903</span></a> <span class="n">t</span><span class="o">.</span><span class="n">Collection</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">Expression</span><span class="p">]]],</span>
+</span><span id="L-904"><a href="#L-904"><span class="linenos"> 904</span></a><span class="p">]</span>
+</span><span id="L-905"><a href="#L-905"><span class="linenos"> 905</span></a><span class="n">ExpOrStr</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Expression</span><span class="p">]</span>
</span><span id="L-906"><a href="#L-906"><span class="linenos"> 906</span></a>
-</span><span id="L-907"><a href="#L-907"><span class="linenos"> 907</span></a><span class="n">IntoType</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">Union</span><span class="p">[</span>
-</span><span id="L-908"><a href="#L-908"><span class="linenos"> 908</span></a> <span class="nb">str</span><span class="p">,</span>
-</span><span id="L-909"><a href="#L-909"><span class="linenos"> 909</span></a> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">Expression</span><span class="p">],</span>
-</span><span id="L-910"><a href="#L-910"><span class="linenos"> 910</span></a> <span class="n">t</span><span class="o">.</span><span class="n">Collection</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">Expression</span><span class="p">]]],</span>
-</span><span id="L-911"><a href="#L-911"><span class="linenos"> 911</span></a><span class="p">]</span>
-</span><span id="L-912"><a href="#L-912"><span class="linenos"> 912</span></a><span class="n">ExpOrStr</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Expression</span><span class="p">]</span>
-</span><span id="L-913"><a href="#L-913"><span class="linenos"> 913</span></a>
+</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 class="k">class</span> <span class="nc">Condition</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-909"><a href="#L-909"><span class="linenos"> 909</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Logical conditions like x AND y, or simply x&quot;&quot;&quot;</span>
+</span><span id="L-910"><a href="#L-910"><span class="linenos"> 910</span></a>
+</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 class="k">class</span> <span class="nc">Predicate</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
+</span><span id="L-913"><a href="#L-913"><span class="linenos"> 913</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Relationships like x = y, x &gt; 1, x &gt;= y.&quot;&quot;&quot;</span>
</span><span id="L-914"><a href="#L-914"><span class="linenos"> 914</span></a>
-</span><span id="L-915"><a href="#L-915"><span class="linenos"> 915</span></a><span class="k">class</span> <span class="nc">Condition</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-916"><a href="#L-916"><span class="linenos"> 916</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Logical conditions like x AND y, or simply x&quot;&quot;&quot;</span>
-</span><span id="L-917"><a href="#L-917"><span class="linenos"> 917</span></a>
-</span><span id="L-918"><a href="#L-918"><span class="linenos"> 918</span></a>
-</span><span id="L-919"><a href="#L-919"><span class="linenos"> 919</span></a><span class="k">class</span> <span class="nc">Predicate</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
-</span><span id="L-920"><a href="#L-920"><span class="linenos"> 920</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Relationships like x = y, x &gt; 1, x &gt;= y.&quot;&quot;&quot;</span>
-</span><span id="L-921"><a href="#L-921"><span class="linenos"> 921</span></a>
-</span><span id="L-922"><a href="#L-922"><span class="linenos"> 922</span></a>
-</span><span id="L-923"><a href="#L-923"><span class="linenos"> 923</span></a><span class="k">class</span> <span class="nc">DerivedTable</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-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">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-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">this</span><span class="o">.</span><span class="n">selects</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">Subqueryable</span><span class="p">)</span> <span class="k">else</span> <span class="p">[]</span>
-</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">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-930"><a href="#L-930"><span class="linenos"> 930</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">select</span><span class="o">.</span><span class="n">output_name</span> <span class="k">for</span> <span class="n">select</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">selects</span><span class="p">]</span>
-</span><span id="L-931"><a href="#L-931"><span class="linenos"> 931</span></a>
+</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="k">class</span> <span class="nc">DerivedTable</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-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">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-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">this</span><span class="o">.</span><span class="n">selects</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">Subqueryable</span><span class="p">)</span> <span class="k">else</span> <span class="p">[]</span>
+</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">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-923"><a href="#L-923"><span class="linenos"> 923</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">select</span><span class="o">.</span><span class="n">output_name</span> <span class="k">for</span> <span class="n">select</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">selects</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><span id="L-926"><a href="#L-926"><span class="linenos"> 926</span></a><span class="k">class</span> <span class="nc">Unionable</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-927"><a href="#L-927"><span class="linenos"> 927</span></a> <span class="k">def</span> <span class="nf">union</span><span class="p">(</span>
+</span><span id="L-928"><a href="#L-928"><span class="linenos"> 928</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="L-929"><a href="#L-929"><span class="linenos"> 929</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Unionable</span><span class="p">:</span>
+</span><span id="L-930"><a href="#L-930"><span class="linenos"> 930</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-931"><a href="#L-931"><span class="linenos"> 931</span></a><span class="sd"> Builds a UNION expression.</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="k">class</span> <span class="nc">Unionable</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-934"><a href="#L-934"><span class="linenos"> 934</span></a> <span class="k">def</span> <span class="nf">union</span><span class="p">(</span>
-</span><span id="L-935"><a href="#L-935"><span class="linenos"> 935</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="L-936"><a href="#L-936"><span class="linenos"> 936</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Unionable</span><span class="p">:</span>
-</span><span id="L-937"><a href="#L-937"><span class="linenos"> 937</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-938"><a href="#L-938"><span class="linenos"> 938</span></a><span class="sd"> Builds a UNION expression.</span>
-</span><span id="L-939"><a href="#L-939"><span class="linenos"> 939</span></a>
-</span><span id="L-940"><a href="#L-940"><span class="linenos"> 940</span></a><span class="sd"> Example:</span>
-</span><span id="L-941"><a href="#L-941"><span class="linenos"> 941</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="L-942"><a href="#L-942"><span class="linenos"> 942</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;SELECT * FROM foo&quot;).union(&quot;SELECT * FROM bla&quot;).sql()</span>
-</span><span id="L-943"><a href="#L-943"><span class="linenos"> 943</span></a><span class="sd"> &#39;SELECT * FROM foo UNION SELECT * FROM bla&#39;</span>
+</span><span id="L-933"><a href="#L-933"><span class="linenos"> 933</span></a><span class="sd"> Example:</span>
+</span><span id="L-934"><a href="#L-934"><span class="linenos"> 934</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="L-935"><a href="#L-935"><span class="linenos"> 935</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;SELECT * FROM foo&quot;).union(&quot;SELECT * FROM bla&quot;).sql()</span>
+</span><span id="L-936"><a href="#L-936"><span class="linenos"> 936</span></a><span class="sd"> &#39;SELECT * FROM foo UNION SELECT * FROM bla&#39;</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="sd"> Args:</span>
+</span><span id="L-939"><a href="#L-939"><span class="linenos"> 939</span></a><span class="sd"> expression: the SQL code string.</span>
+</span><span id="L-940"><a href="#L-940"><span class="linenos"> 940</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-941"><a href="#L-941"><span class="linenos"> 941</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
+</span><span id="L-942"><a href="#L-942"><span class="linenos"> 942</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-943"><a href="#L-943"><span class="linenos"> 943</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="L-944"><a href="#L-944"><span class="linenos"> 944</span></a>
-</span><span id="L-945"><a href="#L-945"><span class="linenos"> 945</span></a><span class="sd"> Args:</span>
-</span><span id="L-946"><a href="#L-946"><span class="linenos"> 946</span></a><span class="sd"> expression: the SQL code string.</span>
-</span><span id="L-947"><a href="#L-947"><span class="linenos"> 947</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-948"><a href="#L-948"><span class="linenos"> 948</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
-</span><span id="L-949"><a href="#L-949"><span class="linenos"> 949</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-950"><a href="#L-950"><span class="linenos"> 950</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="L-951"><a href="#L-951"><span class="linenos"> 951</span></a>
-</span><span id="L-952"><a href="#L-952"><span class="linenos"> 952</span></a><span class="sd"> Returns:</span>
-</span><span id="L-953"><a href="#L-953"><span class="linenos"> 953</span></a><span class="sd"> The new Union expression.</span>
-</span><span id="L-954"><a href="#L-954"><span class="linenos"> 954</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-955"><a href="#L-955"><span class="linenos"> 955</span></a> <span class="k">return</span> <span class="n">union</span><span class="p">(</span><span class="n">left</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">right</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><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-956"><a href="#L-956"><span class="linenos"> 956</span></a>
-</span><span id="L-957"><a href="#L-957"><span class="linenos"> 957</span></a> <span class="k">def</span> <span class="nf">intersect</span><span class="p">(</span>
-</span><span id="L-958"><a href="#L-958"><span class="linenos"> 958</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="L-959"><a href="#L-959"><span class="linenos"> 959</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Unionable</span><span class="p">:</span>
-</span><span id="L-960"><a href="#L-960"><span class="linenos"> 960</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-961"><a href="#L-961"><span class="linenos"> 961</span></a><span class="sd"> Builds an INTERSECT expression.</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 class="sd"> Example:</span>
-</span><span id="L-964"><a href="#L-964"><span class="linenos"> 964</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="L-965"><a href="#L-965"><span class="linenos"> 965</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;SELECT * FROM foo&quot;).intersect(&quot;SELECT * FROM bla&quot;).sql()</span>
-</span><span id="L-966"><a href="#L-966"><span class="linenos"> 966</span></a><span class="sd"> &#39;SELECT * FROM foo INTERSECT SELECT * FROM bla&#39;</span>
+</span><span id="L-945"><a href="#L-945"><span class="linenos"> 945</span></a><span class="sd"> Returns:</span>
+</span><span id="L-946"><a href="#L-946"><span class="linenos"> 946</span></a><span class="sd"> The new Union expression.</span>
+</span><span id="L-947"><a href="#L-947"><span class="linenos"> 947</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-948"><a href="#L-948"><span class="linenos"> 948</span></a> <span class="k">return</span> <span class="n">union</span><span class="p">(</span><span class="n">left</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">right</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><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-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 class="k">def</span> <span class="nf">intersect</span><span class="p">(</span>
+</span><span id="L-951"><a href="#L-951"><span class="linenos"> 951</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="L-952"><a href="#L-952"><span class="linenos"> 952</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Unionable</span><span class="p">:</span>
+</span><span id="L-953"><a href="#L-953"><span class="linenos"> 953</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-954"><a href="#L-954"><span class="linenos"> 954</span></a><span class="sd"> Builds an INTERSECT expression.</span>
+</span><span id="L-955"><a href="#L-955"><span class="linenos"> 955</span></a>
+</span><span id="L-956"><a href="#L-956"><span class="linenos"> 956</span></a><span class="sd"> Example:</span>
+</span><span id="L-957"><a href="#L-957"><span class="linenos"> 957</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="L-958"><a href="#L-958"><span class="linenos"> 958</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;SELECT * FROM foo&quot;).intersect(&quot;SELECT * FROM bla&quot;).sql()</span>
+</span><span id="L-959"><a href="#L-959"><span class="linenos"> 959</span></a><span class="sd"> &#39;SELECT * FROM foo INTERSECT SELECT * FROM bla&#39;</span>
+</span><span id="L-960"><a href="#L-960"><span class="linenos"> 960</span></a>
+</span><span id="L-961"><a href="#L-961"><span class="linenos"> 961</span></a><span class="sd"> Args:</span>
+</span><span id="L-962"><a href="#L-962"><span class="linenos"> 962</span></a><span class="sd"> expression: the SQL code string.</span>
+</span><span id="L-963"><a href="#L-963"><span class="linenos"> 963</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-964"><a href="#L-964"><span class="linenos"> 964</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
+</span><span id="L-965"><a href="#L-965"><span class="linenos"> 965</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-966"><a href="#L-966"><span class="linenos"> 966</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="L-967"><a href="#L-967"><span class="linenos"> 967</span></a>
-</span><span id="L-968"><a href="#L-968"><span class="linenos"> 968</span></a><span class="sd"> Args:</span>
-</span><span id="L-969"><a href="#L-969"><span class="linenos"> 969</span></a><span class="sd"> expression: the SQL code string.</span>
-</span><span id="L-970"><a href="#L-970"><span class="linenos"> 970</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-971"><a href="#L-971"><span class="linenos"> 971</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
-</span><span id="L-972"><a href="#L-972"><span class="linenos"> 972</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-973"><a href="#L-973"><span class="linenos"> 973</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</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 class="sd"> Returns:</span>
-</span><span id="L-976"><a href="#L-976"><span class="linenos"> 976</span></a><span class="sd"> The new Intersect expression.</span>
-</span><span id="L-977"><a href="#L-977"><span class="linenos"> 977</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-978"><a href="#L-978"><span class="linenos"> 978</span></a> <span class="k">return</span> <span class="n">intersect</span><span class="p">(</span><span class="n">left</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">right</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><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-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">def</span> <span class="nf">except_</span><span class="p">(</span>
-</span><span id="L-981"><a href="#L-981"><span class="linenos"> 981</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="L-982"><a href="#L-982"><span class="linenos"> 982</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Unionable</span><span class="p">:</span>
-</span><span id="L-983"><a href="#L-983"><span class="linenos"> 983</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-984"><a href="#L-984"><span class="linenos"> 984</span></a><span class="sd"> Builds an EXCEPT expression.</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 class="sd"> Example:</span>
-</span><span id="L-987"><a href="#L-987"><span class="linenos"> 987</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="L-988"><a href="#L-988"><span class="linenos"> 988</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;SELECT * FROM foo&quot;).except_(&quot;SELECT * FROM bla&quot;).sql()</span>
-</span><span id="L-989"><a href="#L-989"><span class="linenos"> 989</span></a><span class="sd"> &#39;SELECT * FROM foo EXCEPT SELECT * FROM bla&#39;</span>
+</span><span id="L-968"><a href="#L-968"><span class="linenos"> 968</span></a><span class="sd"> Returns:</span>
+</span><span id="L-969"><a href="#L-969"><span class="linenos"> 969</span></a><span class="sd"> The new Intersect expression.</span>
+</span><span id="L-970"><a href="#L-970"><span class="linenos"> 970</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-971"><a href="#L-971"><span class="linenos"> 971</span></a> <span class="k">return</span> <span class="n">intersect</span><span class="p">(</span><span class="n">left</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">right</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><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-972"><a href="#L-972"><span class="linenos"> 972</span></a>
+</span><span id="L-973"><a href="#L-973"><span class="linenos"> 973</span></a> <span class="k">def</span> <span class="nf">except_</span><span class="p">(</span>
+</span><span id="L-974"><a href="#L-974"><span class="linenos"> 974</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="L-975"><a href="#L-975"><span class="linenos"> 975</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Unionable</span><span class="p">:</span>
+</span><span id="L-976"><a href="#L-976"><span class="linenos"> 976</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-977"><a href="#L-977"><span class="linenos"> 977</span></a><span class="sd"> Builds an EXCEPT expression.</span>
+</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 class="sd"> Example:</span>
+</span><span id="L-980"><a href="#L-980"><span class="linenos"> 980</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="L-981"><a href="#L-981"><span class="linenos"> 981</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;SELECT * FROM foo&quot;).except_(&quot;SELECT * FROM bla&quot;).sql()</span>
+</span><span id="L-982"><a href="#L-982"><span class="linenos"> 982</span></a><span class="sd"> &#39;SELECT * FROM foo EXCEPT SELECT * FROM bla&#39;</span>
+</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="sd"> Args:</span>
+</span><span id="L-985"><a href="#L-985"><span class="linenos"> 985</span></a><span class="sd"> expression: the SQL code string.</span>
+</span><span id="L-986"><a href="#L-986"><span class="linenos"> 986</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-987"><a href="#L-987"><span class="linenos"> 987</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
+</span><span id="L-988"><a href="#L-988"><span class="linenos"> 988</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-989"><a href="#L-989"><span class="linenos"> 989</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</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 class="sd"> Args:</span>
-</span><span id="L-992"><a href="#L-992"><span class="linenos"> 992</span></a><span class="sd"> expression: the SQL code string.</span>
-</span><span id="L-993"><a href="#L-993"><span class="linenos"> 993</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-994"><a href="#L-994"><span class="linenos"> 994</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
-</span><span id="L-995"><a href="#L-995"><span class="linenos"> 995</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-996"><a href="#L-996"><span class="linenos"> 996</span></a><span class="sd"> opts: other options to use to parse the input expressions.</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 class="sd"> Returns:</span>
-</span><span id="L-999"><a href="#L-999"><span class="linenos"> 999</span></a><span class="sd"> The new Except expression.</span>
-</span><span id="L-1000"><a href="#L-1000"><span class="linenos">1000</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-1001"><a href="#L-1001"><span class="linenos">1001</span></a> <span class="k">return</span> <span class="n">except_</span><span class="p">(</span><span class="n">left</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">right</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><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-991"><a href="#L-991"><span class="linenos"> 991</span></a><span class="sd"> Returns:</span>
+</span><span id="L-992"><a href="#L-992"><span class="linenos"> 992</span></a><span class="sd"> The new Except expression.</span>
+</span><span id="L-993"><a href="#L-993"><span class="linenos"> 993</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-994"><a href="#L-994"><span class="linenos"> 994</span></a> <span class="k">return</span> <span class="n">except_</span><span class="p">(</span><span class="n">left</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">right</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><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-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><span id="L-997"><a href="#L-997"><span class="linenos"> 997</span></a><span class="k">class</span> <span class="nc">UDTF</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-998"><a href="#L-998"><span class="linenos"> 998</span></a> <span class="nd">@property</span>
+</span><span id="L-999"><a href="#L-999"><span class="linenos"> 999</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-1000"><a href="#L-1000"><span class="linenos">1000</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;alias&quot;</span><span class="p">)</span>
+</span><span id="L-1001"><a href="#L-1001"><span class="linenos">1001</span></a> <span class="k">return</span> <span class="n">alias</span><span class="o">.</span><span class="n">columns</span> <span class="k">if</span> <span class="n">alias</span> <span class="k">else</span> <span class="p">[]</span>
</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">UDTF</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-1005"><a href="#L-1005"><span class="linenos">1005</span></a> <span class="nd">@property</span>
-</span><span id="L-1006"><a href="#L-1006"><span class="linenos">1006</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-1007"><a href="#L-1007"><span class="linenos">1007</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;alias&quot;</span><span class="p">)</span>
-</span><span id="L-1008"><a href="#L-1008"><span class="linenos">1008</span></a> <span class="k">return</span> <span class="n">alias</span><span class="o">.</span><span class="n">columns</span> <span class="k">if</span> <span class="n">alias</span> <span class="k">else</span> <span class="p">[]</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 class="k">class</span> <span class="nc">Cache</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-1012"><a href="#L-1012"><span class="linenos">1012</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-1013"><a href="#L-1013"><span class="linenos">1013</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-1014"><a href="#L-1014"><span class="linenos">1014</span></a> <span class="s2">&quot;lazy&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-1015"><a href="#L-1015"><span class="linenos">1015</span></a> <span class="s2">&quot;options&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-1016"><a href="#L-1016"><span class="linenos">1016</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-1017"><a href="#L-1017"><span class="linenos">1017</span></a> <span class="p">}</span>
-</span><span id="L-1018"><a href="#L-1018"><span class="linenos">1018</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">Cache</span><span class="p">(</span><span class="n">Expression</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><span id="L-1006"><a href="#L-1006"><span class="linenos">1006</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-1007"><a href="#L-1007"><span class="linenos">1007</span></a> <span class="s2">&quot;lazy&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-1008"><a href="#L-1008"><span class="linenos">1008</span></a> <span class="s2">&quot;options&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-1009"><a href="#L-1009"><span class="linenos">1009</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-1010"><a href="#L-1010"><span class="linenos">1010</span></a> <span class="p">}</span>
+</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><span id="L-1013"><a href="#L-1013"><span class="linenos">1013</span></a><span class="k">class</span> <span class="nc">Uncache</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-1014"><a href="#L-1014"><span class="linenos">1014</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&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-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><span id="L-1017"><a href="#L-1017"><span class="linenos">1017</span></a><span class="k">class</span> <span class="nc">Refresh</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-1018"><a href="#L-1018"><span class="linenos">1018</span></a> <span class="k">pass</span>
</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">Uncache</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-1021"><a href="#L-1021"><span class="linenos">1021</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&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-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">Refresh</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-1025"><a href="#L-1025"><span class="linenos">1025</span></a> <span class="k">pass</span>
-</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">DDL</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-1020"><a href="#L-1020"><span class="linenos">1020</span></a>
+</span><span id="L-1021"><a href="#L-1021"><span class="linenos">1021</span></a><span class="k">class</span> <span class="nc">DDL</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-1022"><a href="#L-1022"><span class="linenos">1022</span></a> <span class="nd">@property</span>
+</span><span id="L-1023"><a href="#L-1023"><span class="linenos">1023</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-1024"><a href="#L-1024"><span class="linenos">1024</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-1025"><a href="#L-1025"><span class="linenos">1025</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-1026"><a href="#L-1026"><span class="linenos">1026</span></a> <span class="k">return</span> <span class="p">[]</span>
+</span><span id="L-1027"><a href="#L-1027"><span class="linenos">1027</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-1028"><a href="#L-1028"><span class="linenos">1028</span></a>
</span><span id="L-1029"><a href="#L-1029"><span class="linenos">1029</span></a> <span class="nd">@property</span>
-</span><span id="L-1030"><a href="#L-1030"><span class="linenos">1030</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-1031"><a href="#L-1031"><span class="linenos">1031</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-1032"><a href="#L-1032"><span class="linenos">1032</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-1033"><a href="#L-1033"><span class="linenos">1033</span></a> <span class="k">return</span> <span class="p">[]</span>
-</span><span id="L-1034"><a href="#L-1034"><span class="linenos">1034</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-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="nd">@property</span>
-</span><span id="L-1037"><a href="#L-1037"><span class="linenos">1037</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-1038"><a href="#L-1038"><span class="linenos">1038</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">,</span> <span class="n">Subqueryable</span><span class="p">):</span>
-</span><span id="L-1039"><a href="#L-1039"><span class="linenos">1039</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">named_selects</span>
-</span><span id="L-1040"><a href="#L-1040"><span class="linenos">1040</span></a> <span class="k">return</span> <span class="p">[]</span>
+</span><span id="L-1030"><a href="#L-1030"><span class="linenos">1030</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-1031"><a href="#L-1031"><span class="linenos">1031</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">,</span> <span class="n">Subqueryable</span><span class="p">):</span>
+</span><span id="L-1032"><a href="#L-1032"><span class="linenos">1032</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">named_selects</span>
+</span><span id="L-1033"><a href="#L-1033"><span class="linenos">1033</span></a> <span class="k">return</span> <span class="p">[]</span>
+</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 class="nd">@property</span>
+</span><span id="L-1036"><a href="#L-1036"><span class="linenos">1036</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-1037"><a href="#L-1037"><span class="linenos">1037</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">,</span> <span class="n">Subqueryable</span><span class="p">):</span>
+</span><span id="L-1038"><a href="#L-1038"><span class="linenos">1038</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">selects</span>
+</span><span id="L-1039"><a href="#L-1039"><span class="linenos">1039</span></a> <span class="k">return</span> <span class="p">[]</span>
+</span><span id="L-1040"><a href="#L-1040"><span class="linenos">1040</span></a>
</span><span id="L-1041"><a href="#L-1041"><span class="linenos">1041</span></a>
-</span><span id="L-1042"><a href="#L-1042"><span class="linenos">1042</span></a> <span class="nd">@property</span>
-</span><span id="L-1043"><a href="#L-1043"><span class="linenos">1043</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-1044"><a href="#L-1044"><span class="linenos">1044</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">,</span> <span class="n">Subqueryable</span><span class="p">):</span>
-</span><span id="L-1045"><a href="#L-1045"><span class="linenos">1045</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">selects</span>
-</span><span id="L-1046"><a href="#L-1046"><span class="linenos">1046</span></a> <span class="k">return</span> <span class="p">[]</span>
-</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><span id="L-1049"><a href="#L-1049"><span class="linenos">1049</span></a><span class="k">class</span> <span class="nc">DML</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-1050"><a href="#L-1050"><span class="linenos">1050</span></a> <span class="k">def</span> <span class="nf">returning</span><span class="p">(</span>
-</span><span id="L-1051"><a href="#L-1051"><span class="linenos">1051</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-1052"><a href="#L-1052"><span class="linenos">1052</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-1053"><a href="#L-1053"><span class="linenos">1053</span></a> <span class="n">dialect</span><span 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-1054"><a href="#L-1054"><span class="linenos">1054</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-1055"><a href="#L-1055"><span class="linenos">1055</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-1056"><a href="#L-1056"><span class="linenos">1056</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DML</span><span class="p">:</span>
-</span><span id="L-1057"><a href="#L-1057"><span class="linenos">1057</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-1058"><a href="#L-1058"><span class="linenos">1058</span></a><span class="sd"> Set the RETURNING expression. Not supported by all dialects.</span>
-</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="sd"> Example:</span>
-</span><span id="L-1061"><a href="#L-1061"><span class="linenos">1061</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-1062"><a href="#L-1062"><span class="linenos">1062</span></a><span class="sd"> &#39;DELETE FROM tbl RETURNING *&#39;</span>
+</span><span id="L-1042"><a href="#L-1042"><span class="linenos">1042</span></a><span class="k">class</span> <span class="nc">DML</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-1043"><a href="#L-1043"><span class="linenos">1043</span></a> <span class="k">def</span> <span class="nf">returning</span><span class="p">(</span>
+</span><span id="L-1044"><a href="#L-1044"><span class="linenos">1044</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-1045"><a href="#L-1045"><span class="linenos">1045</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-1046"><a href="#L-1046"><span class="linenos">1046</span></a> <span class="n">dialect</span><span 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-1047"><a href="#L-1047"><span class="linenos">1047</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-1048"><a href="#L-1048"><span class="linenos">1048</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-1049"><a href="#L-1049"><span class="linenos">1049</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DML</span><span class="p">:</span>
+</span><span id="L-1050"><a href="#L-1050"><span class="linenos">1050</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-1051"><a href="#L-1051"><span class="linenos">1051</span></a><span class="sd"> Set the RETURNING expression. Not supported by all dialects.</span>
+</span><span id="L-1052"><a href="#L-1052"><span class="linenos">1052</span></a>
+</span><span id="L-1053"><a href="#L-1053"><span class="linenos">1053</span></a><span class="sd"> Example:</span>
+</span><span id="L-1054"><a href="#L-1054"><span class="linenos">1054</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-1055"><a href="#L-1055"><span class="linenos">1055</span></a><span class="sd"> &#39;DELETE FROM tbl RETURNING *&#39;</span>
+</span><span id="L-1056"><a href="#L-1056"><span class="linenos">1056</span></a>
+</span><span id="L-1057"><a href="#L-1057"><span class="linenos">1057</span></a><span class="sd"> Args:</span>
+</span><span id="L-1058"><a href="#L-1058"><span class="linenos">1058</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
+</span><span id="L-1059"><a href="#L-1059"><span class="linenos">1059</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-1060"><a href="#L-1060"><span class="linenos">1060</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="L-1061"><a href="#L-1061"><span class="linenos">1061</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-1062"><a href="#L-1062"><span class="linenos">1062</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</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="sd"> Args:</span>
-</span><span id="L-1065"><a href="#L-1065"><span class="linenos">1065</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
-</span><span id="L-1066"><a href="#L-1066"><span class="linenos">1066</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-1067"><a href="#L-1067"><span class="linenos">1067</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="L-1068"><a href="#L-1068"><span class="linenos">1068</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="L-1069"><a href="#L-1069"><span class="linenos">1069</span></a><span class="sd"> opts: other options to use to parse the input expressions.</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 class="sd"> Returns:</span>
-</span><span id="L-1072"><a href="#L-1072"><span class="linenos">1072</span></a><span class="sd"> Delete: the modified expression.</span>
-</span><span id="L-1073"><a href="#L-1073"><span class="linenos">1073</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-1074"><a href="#L-1074"><span class="linenos">1074</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
-</span><span id="L-1075"><a href="#L-1075"><span class="linenos">1075</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
-</span><span id="L-1076"><a href="#L-1076"><span class="linenos">1076</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-1077"><a href="#L-1077"><span class="linenos">1077</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-1078"><a href="#L-1078"><span class="linenos">1078</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-1079"><a href="#L-1079"><span class="linenos">1079</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-1080"><a href="#L-1080"><span class="linenos">1080</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-1081"><a href="#L-1081"><span class="linenos">1081</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Returning</span><span class="p">,</span>
-</span><span id="L-1082"><a href="#L-1082"><span class="linenos">1082</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-1083"><a href="#L-1083"><span class="linenos">1083</span></a> <span class="p">)</span>
-</span><span id="L-1084"><a href="#L-1084"><span class="linenos">1084</span></a>
-</span><span id="L-1085"><a href="#L-1085"><span class="linenos">1085</span></a>
-</span><span id="L-1086"><a href="#L-1086"><span class="linenos">1086</span></a><span class="k">class</span> <span class="nc">Create</span><span class="p">(</span><span class="n">DDL</span><span class="p">):</span>
-</span><span id="L-1087"><a href="#L-1087"><span class="linenos">1087</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-1088"><a href="#L-1088"><span class="linenos">1088</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-1089"><a href="#L-1089"><span class="linenos">1089</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-1090"><a href="#L-1090"><span class="linenos">1090</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-1091"><a href="#L-1091"><span class="linenos">1091</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-1092"><a href="#L-1092"><span class="linenos">1092</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-1093"><a href="#L-1093"><span class="linenos">1093</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-1094"><a href="#L-1094"><span class="linenos">1094</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-1095"><a href="#L-1095"><span class="linenos">1095</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-1096"><a href="#L-1096"><span class="linenos">1096</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-1097"><a href="#L-1097"><span class="linenos">1097</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-1098"><a href="#L-1098"><span class="linenos">1098</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-1099"><a href="#L-1099"><span class="linenos">1099</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-1100"><a href="#L-1100"><span class="linenos">1100</span></a> <span class="s2">&quot;clone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-1101"><a href="#L-1101"><span class="linenos">1101</span></a> <span class="p">}</span>
+</span><span id="L-1064"><a href="#L-1064"><span class="linenos">1064</span></a><span class="sd"> Returns:</span>
+</span><span id="L-1065"><a href="#L-1065"><span class="linenos">1065</span></a><span class="sd"> Delete: the modified expression.</span>
+</span><span id="L-1066"><a href="#L-1066"><span class="linenos">1066</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-1067"><a href="#L-1067"><span class="linenos">1067</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
+</span><span id="L-1068"><a href="#L-1068"><span class="linenos">1068</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
+</span><span id="L-1069"><a href="#L-1069"><span class="linenos">1069</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-1070"><a href="#L-1070"><span class="linenos">1070</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-1071"><a href="#L-1071"><span class="linenos">1071</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-1072"><a href="#L-1072"><span class="linenos">1072</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-1073"><a href="#L-1073"><span class="linenos">1073</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-1074"><a href="#L-1074"><span class="linenos">1074</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Returning</span><span class="p">,</span>
+</span><span id="L-1075"><a href="#L-1075"><span class="linenos">1075</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-1076"><a href="#L-1076"><span class="linenos">1076</span></a> <span class="p">)</span>
+</span><span id="L-1077"><a href="#L-1077"><span class="linenos">1077</span></a>
+</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 class="k">class</span> <span class="nc">Create</span><span class="p">(</span><span class="n">DDL</span><span class="p">):</span>
+</span><span id="L-1080"><a href="#L-1080"><span class="linenos">1080</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1081"><a href="#L-1081"><span class="linenos">1081</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-1082"><a href="#L-1082"><span class="linenos">1082</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-1083"><a href="#L-1083"><span class="linenos">1083</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-1084"><a href="#L-1084"><span class="linenos">1084</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-1085"><a href="#L-1085"><span class="linenos">1085</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-1086"><a href="#L-1086"><span class="linenos">1086</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-1087"><a href="#L-1087"><span class="linenos">1087</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-1088"><a href="#L-1088"><span class="linenos">1088</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-1089"><a href="#L-1089"><span class="linenos">1089</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-1090"><a href="#L-1090"><span class="linenos">1090</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-1091"><a href="#L-1091"><span class="linenos">1091</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-1092"><a href="#L-1092"><span class="linenos">1092</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-1093"><a href="#L-1093"><span class="linenos">1093</span></a> <span class="s2">&quot;clone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-1094"><a href="#L-1094"><span class="linenos">1094</span></a> <span class="p">}</span>
+</span><span id="L-1095"><a href="#L-1095"><span class="linenos">1095</span></a>
+</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="c1"># https://docs.snowflake.com/en/sql-reference/sql/create-clone</span>
+</span><span id="L-1098"><a href="#L-1098"><span class="linenos">1098</span></a><span class="c1"># https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#create_table_clone_statement</span>
+</span><span id="L-1099"><a href="#L-1099"><span class="linenos">1099</span></a><span class="c1"># https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#create_table_copy</span>
+</span><span id="L-1100"><a href="#L-1100"><span class="linenos">1100</span></a><span class="k">class</span> <span class="nc">Clone</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-1101"><a href="#L-1101"><span class="linenos">1101</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;shallow&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;copy&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</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><span id="L-1104"><a href="#L-1104"><span class="linenos">1104</span></a><span class="c1"># https://docs.snowflake.com/en/sql-reference/sql/create-clone</span>
-</span><span id="L-1105"><a href="#L-1105"><span class="linenos">1105</span></a><span class="c1"># https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#create_table_clone_statement</span>
-</span><span id="L-1106"><a href="#L-1106"><span class="linenos">1106</span></a><span class="c1"># https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#create_table_copy</span>
-</span><span id="L-1107"><a href="#L-1107"><span class="linenos">1107</span></a><span class="k">class</span> <span class="nc">Clone</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-1108"><a href="#L-1108"><span class="linenos">1108</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;shallow&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;copy&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-1109"><a href="#L-1109"><span class="linenos">1109</span></a>
+</span><span id="L-1104"><a href="#L-1104"><span class="linenos">1104</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-1105"><a href="#L-1105"><span class="linenos">1105</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</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><span id="L-1108"><a href="#L-1108"><span class="linenos">1108</span></a><span class="k">class</span> <span class="nc">Kill</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-1109"><a href="#L-1109"><span class="linenos">1109</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1110"><a href="#L-1110"><span class="linenos">1110</span></a>
-</span><span id="L-1111"><a href="#L-1111"><span class="linenos">1111</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-1112"><a href="#L-1112"><span class="linenos">1112</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-1113"><a href="#L-1113"><span class="linenos">1113</span></a>
+</span><span id="L-1111"><a href="#L-1111"><span class="linenos">1111</span></a>
+</span><span id="L-1112"><a href="#L-1112"><span class="linenos">1112</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-1113"><a href="#L-1113"><span class="linenos">1113</span></a> <span class="k">pass</span>
</span><span id="L-1114"><a href="#L-1114"><span class="linenos">1114</span></a>
-</span><span id="L-1115"><a href="#L-1115"><span class="linenos">1115</span></a><span class="k">class</span> <span class="nc">Kill</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-1116"><a href="#L-1116"><span class="linenos">1116</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1117"><a href="#L-1117"><span class="linenos">1117</span></a>
+</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">class</span> <span class="nc">Set</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-1117"><a href="#L-1117"><span class="linenos">1117</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;unset&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;tag&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-1118"><a href="#L-1118"><span class="linenos">1118</span></a>
-</span><span id="L-1119"><a href="#L-1119"><span class="linenos">1119</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-1120"><a href="#L-1120"><span class="linenos">1120</span></a> <span class="k">pass</span>
-</span><span id="L-1121"><a href="#L-1121"><span class="linenos">1121</span></a>
-</span><span id="L-1122"><a href="#L-1122"><span class="linenos">1122</span></a>
-</span><span id="L-1123"><a href="#L-1123"><span class="linenos">1123</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-1124"><a href="#L-1124"><span class="linenos">1124</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;unset&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;tag&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-1125"><a href="#L-1125"><span class="linenos">1125</span></a>
-</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="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-1128"><a href="#L-1128"><span class="linenos">1128</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-1129"><a href="#L-1129"><span class="linenos">1129</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-1130"><a href="#L-1130"><span class="linenos">1130</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-1131"><a href="#L-1131"><span class="linenos">1131</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-1132"><a href="#L-1132"><span class="linenos">1132</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-1133"><a href="#L-1133"><span class="linenos">1133</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-1134"><a href="#L-1134"><span class="linenos">1134</span></a> <span class="p">}</span>
-</span><span id="L-1135"><a href="#L-1135"><span class="linenos">1135</span></a>
-</span><span id="L-1136"><a href="#L-1136"><span class="linenos">1136</span></a>
-</span><span id="L-1137"><a href="#L-1137"><span class="linenos">1137</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-1138"><a href="#L-1138"><span class="linenos">1138</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-1139"><a href="#L-1139"><span class="linenos">1139</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-1140"><a href="#L-1140"><span class="linenos">1140</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-1141"><a href="#L-1141"><span class="linenos">1141</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-1142"><a href="#L-1142"><span class="linenos">1142</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-1143"><a href="#L-1143"><span class="linenos">1143</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-1144"><a href="#L-1144"><span class="linenos">1144</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-1145"><a href="#L-1145"><span class="linenos">1145</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-1146"><a href="#L-1146"><span class="linenos">1146</span></a> <span class="s2">&quot;scope&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-1147"><a href="#L-1147"><span class="linenos">1147</span></a> <span class="s2">&quot;scope_kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-1148"><a href="#L-1148"><span class="linenos">1148</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-1149"><a href="#L-1149"><span class="linenos">1149</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-1150"><a href="#L-1150"><span class="linenos">1150</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-1151"><a href="#L-1151"><span class="linenos">1151</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-1152"><a href="#L-1152"><span class="linenos">1152</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-1153"><a href="#L-1153"><span class="linenos">1153</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-1154"><a href="#L-1154"><span class="linenos">1154</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-1155"><a href="#L-1155"><span class="linenos">1155</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-1156"><a href="#L-1156"><span class="linenos">1156</span></a> <span class="p">}</span>
-</span><span id="L-1157"><a href="#L-1157"><span class="linenos">1157</span></a>
+</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">class</span> <span class="nc">SetItem</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-1121"><a href="#L-1121"><span class="linenos">1121</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1122"><a href="#L-1122"><span class="linenos">1122</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-1123"><a href="#L-1123"><span class="linenos">1123</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-1124"><a href="#L-1124"><span class="linenos">1124</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-1125"><a href="#L-1125"><span class="linenos">1125</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-1126"><a href="#L-1126"><span class="linenos">1126</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-1127"><a href="#L-1127"><span class="linenos">1127</span></a> <span class="p">}</span>
+</span><span id="L-1128"><a href="#L-1128"><span class="linenos">1128</span></a>
+</span><span id="L-1129"><a href="#L-1129"><span class="linenos">1129</span></a>
+</span><span id="L-1130"><a href="#L-1130"><span class="linenos">1130</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-1131"><a href="#L-1131"><span class="linenos">1131</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1132"><a href="#L-1132"><span class="linenos">1132</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-1133"><a href="#L-1133"><span class="linenos">1133</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-1134"><a href="#L-1134"><span class="linenos">1134</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-1135"><a href="#L-1135"><span class="linenos">1135</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-1136"><a href="#L-1136"><span class="linenos">1136</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-1137"><a href="#L-1137"><span class="linenos">1137</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-1138"><a href="#L-1138"><span class="linenos">1138</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-1139"><a href="#L-1139"><span class="linenos">1139</span></a> <span class="s2">&quot;scope&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-1140"><a href="#L-1140"><span class="linenos">1140</span></a> <span class="s2">&quot;scope_kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-1141"><a href="#L-1141"><span class="linenos">1141</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-1142"><a href="#L-1142"><span class="linenos">1142</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-1143"><a href="#L-1143"><span class="linenos">1143</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-1144"><a href="#L-1144"><span class="linenos">1144</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-1145"><a href="#L-1145"><span class="linenos">1145</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-1146"><a href="#L-1146"><span class="linenos">1146</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-1147"><a href="#L-1147"><span class="linenos">1147</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-1148"><a href="#L-1148"><span class="linenos">1148</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-1149"><a href="#L-1149"><span class="linenos">1149</span></a> <span class="p">}</span>
+</span><span id="L-1150"><a href="#L-1150"><span class="linenos">1150</span></a>
+</span><span id="L-1151"><a href="#L-1151"><span class="linenos">1151</span></a>
+</span><span id="L-1152"><a href="#L-1152"><span class="linenos">1152</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-1153"><a href="#L-1153"><span class="linenos">1153</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-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><span id="L-1156"><a href="#L-1156"><span class="linenos">1156</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-1157"><a href="#L-1157"><span class="linenos">1157</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-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">class</span> <span class="nc">UserDefinedFunction</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-1160"><a href="#L-1160"><span class="linenos">1160</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1161"><a href="#L-1161"><span class="linenos">1161</span></a>
+</span><span id="L-1159"><a href="#L-1159"><span class="linenos">1159</span></a>
+</span><span id="L-1160"><a href="#L-1160"><span class="linenos">1160</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-1161"><a href="#L-1161"><span class="linenos">1161</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-1162"><a href="#L-1162"><span class="linenos">1162</span></a>
-</span><span id="L-1163"><a href="#L-1163"><span class="linenos">1163</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-1164"><a href="#L-1164"><span class="linenos">1164</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1165"><a href="#L-1165"><span class="linenos">1165</span></a>
+</span><span id="L-1163"><a href="#L-1163"><span class="linenos">1163</span></a> <span class="nd">@property</span>
+</span><span id="L-1164"><a href="#L-1164"><span class="linenos">1164</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-1165"><a href="#L-1165"><span class="linenos">1165</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-1166"><a href="#L-1166"><span class="linenos">1166</span></a>
-</span><span id="L-1167"><a href="#L-1167"><span class="linenos">1167</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-1168"><a href="#L-1168"><span class="linenos">1168</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-1169"><a href="#L-1169"><span class="linenos">1169</span></a>
-</span><span id="L-1170"><a href="#L-1170"><span class="linenos">1170</span></a> <span class="nd">@property</span>
-</span><span id="L-1171"><a href="#L-1171"><span class="linenos">1171</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-1172"><a href="#L-1172"><span class="linenos">1172</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-1173"><a href="#L-1173"><span class="linenos">1173</span></a>
-</span><span id="L-1174"><a href="#L-1174"><span class="linenos">1174</span></a>
-</span><span id="L-1175"><a href="#L-1175"><span class="linenos">1175</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-1176"><a href="#L-1176"><span class="linenos">1176</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-1167"><a href="#L-1167"><span class="linenos">1167</span></a>
+</span><span id="L-1168"><a href="#L-1168"><span class="linenos">1168</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-1169"><a href="#L-1169"><span class="linenos">1169</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-1170"><a href="#L-1170"><span class="linenos">1170</span></a>
+</span><span id="L-1171"><a href="#L-1171"><span class="linenos">1171</span></a>
+</span><span id="L-1172"><a href="#L-1172"><span class="linenos">1172</span></a><span class="c1"># clickhouse supports scalar ctes</span>
+</span><span id="L-1173"><a href="#L-1173"><span class="linenos">1173</span></a><span class="c1"># https://clickhouse.com/docs/en/sql-reference/statements/select/with</span>
+</span><span id="L-1174"><a href="#L-1174"><span class="linenos">1174</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-1175"><a href="#L-1175"><span class="linenos">1175</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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 class="s2">&quot;scalar&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-1176"><a href="#L-1176"><span class="linenos">1176</span></a>
</span><span id="L-1177"><a href="#L-1177"><span class="linenos">1177</span></a>
-</span><span id="L-1178"><a href="#L-1178"><span class="linenos">1178</span></a>
-</span><span id="L-1179"><a href="#L-1179"><span class="linenos">1179</span></a><span class="c1"># clickhouse supports scalar ctes</span>
-</span><span id="L-1180"><a href="#L-1180"><span class="linenos">1180</span></a><span class="c1"># https://clickhouse.com/docs/en/sql-reference/statements/select/with</span>
-</span><span id="L-1181"><a href="#L-1181"><span class="linenos">1181</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-1182"><a href="#L-1182"><span class="linenos">1182</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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 class="s2">&quot;scalar&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-1183"><a href="#L-1183"><span class="linenos">1183</span></a>
+</span><span id="L-1178"><a href="#L-1178"><span class="linenos">1178</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-1179"><a href="#L-1179"><span class="linenos">1179</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1180"><a href="#L-1180"><span class="linenos">1180</span></a>
+</span><span id="L-1181"><a href="#L-1181"><span class="linenos">1181</span></a> <span class="nd">@property</span>
+</span><span id="L-1182"><a href="#L-1182"><span class="linenos">1182</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-1183"><a href="#L-1183"><span class="linenos">1183</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-1184"><a href="#L-1184"><span class="linenos">1184</span></a>
-</span><span id="L-1185"><a href="#L-1185"><span class="linenos">1185</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-1186"><a href="#L-1186"><span class="linenos">1186</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1187"><a href="#L-1187"><span class="linenos">1187</span></a>
-</span><span id="L-1188"><a href="#L-1188"><span class="linenos">1188</span></a> <span class="nd">@property</span>
-</span><span id="L-1189"><a href="#L-1189"><span class="linenos">1189</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-1190"><a href="#L-1190"><span class="linenos">1190</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-1191"><a href="#L-1191"><span class="linenos">1191</span></a>
+</span><span id="L-1185"><a href="#L-1185"><span class="linenos">1185</span></a>
+</span><span id="L-1186"><a href="#L-1186"><span class="linenos">1186</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-1187"><a href="#L-1187"><span class="linenos">1187</span></a> <span class="k">pass</span>
+</span><span id="L-1188"><a href="#L-1188"><span class="linenos">1188</span></a>
+</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 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-1191"><a href="#L-1191"><span class="linenos">1191</span></a> <span class="k">pass</span>
</span><span id="L-1192"><a href="#L-1192"><span class="linenos">1192</span></a>
-</span><span id="L-1193"><a href="#L-1193"><span class="linenos">1193</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-1194"><a href="#L-1194"><span class="linenos">1194</span></a> <span class="k">pass</span>
-</span><span id="L-1195"><a href="#L-1195"><span class="linenos">1195</span></a>
+</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 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-1195"><a href="#L-1195"><span class="linenos">1195</span></a> <span class="k">pass</span>
</span><span id="L-1196"><a href="#L-1196"><span class="linenos">1196</span></a>
-</span><span id="L-1197"><a href="#L-1197"><span class="linenos">1197</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-1198"><a href="#L-1198"><span class="linenos">1198</span></a> <span class="k">pass</span>
-</span><span id="L-1199"><a href="#L-1199"><span class="linenos">1199</span></a>
+</span><span id="L-1197"><a href="#L-1197"><span class="linenos">1197</span></a>
+</span><span id="L-1198"><a href="#L-1198"><span class="linenos">1198</span></a><span class="k">class</span> <span class="nc">RawString</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
+</span><span id="L-1199"><a href="#L-1199"><span class="linenos">1199</span></a> <span class="k">pass</span>
</span><span id="L-1200"><a href="#L-1200"><span class="linenos">1200</span></a>
-</span><span id="L-1201"><a href="#L-1201"><span class="linenos">1201</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-1202"><a href="#L-1202"><span class="linenos">1202</span></a> <span class="k">pass</span>
-</span><span id="L-1203"><a href="#L-1203"><span class="linenos">1203</span></a>
+</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 class="k">class</span> <span class="nc">UnicodeString</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
+</span><span id="L-1203"><a href="#L-1203"><span class="linenos">1203</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;escape&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><span id="L-1205"><a href="#L-1205"><span class="linenos">1205</span></a><span class="k">class</span> <span class="nc">RawString</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
-</span><span id="L-1206"><a href="#L-1206"><span class="linenos">1206</span></a> <span class="k">pass</span>
-</span><span id="L-1207"><a href="#L-1207"><span class="linenos">1207</span></a>
+</span><span id="L-1205"><a href="#L-1205"><span class="linenos">1205</span></a>
+</span><span id="L-1206"><a href="#L-1206"><span class="linenos">1206</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-1207"><a href="#L-1207"><span class="linenos">1207</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1208"><a href="#L-1208"><span class="linenos">1208</span></a>
-</span><span id="L-1209"><a href="#L-1209"><span class="linenos">1209</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-1210"><a href="#L-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;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-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="nd">@property</span>
-</span><span id="L-1213"><a href="#L-1213"><span class="linenos">1213</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-1214"><a href="#L-1214"><span class="linenos">1214</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-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="nd">@property</span>
-</span><span id="L-1217"><a href="#L-1217"><span class="linenos">1217</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-1218"><a href="#L-1218"><span class="linenos">1218</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-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 class="nd">@property</span>
-</span><span id="L-1221"><a href="#L-1221"><span class="linenos">1221</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-1222"><a href="#L-1222"><span class="linenos">1222</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-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 class="nd">@property</span>
-</span><span id="L-1225"><a href="#L-1225"><span class="linenos">1225</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-1226"><a href="#L-1226"><span class="linenos">1226</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-1227"><a href="#L-1227"><span class="linenos">1227</span></a>
-</span><span id="L-1228"><a href="#L-1228"><span class="linenos">1228</span></a> <span class="nd">@property</span>
-</span><span id="L-1229"><a href="#L-1229"><span class="linenos">1229</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-1230"><a href="#L-1230"><span class="linenos">1230</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-1231"><a href="#L-1231"><span class="linenos">1231</span></a> <span class="k">return</span> <span class="p">[</span>
-</span><span id="L-1232"><a href="#L-1232"><span class="linenos">1232</span></a> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Identifier</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">part</span><span class="p">])</span>
-</span><span id="L-1233"><a href="#L-1233"><span class="linenos">1233</span></a> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">&quot;catalog&quot;</span><span class="p">,</span> <span class="s2">&quot;db&quot;</span><span class="p">,</span> <span class="s2">&quot;table&quot;</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
-</span><span id="L-1234"><a href="#L-1234"><span class="linenos">1234</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">part</span><span class="p">)</span>
-</span><span id="L-1235"><a href="#L-1235"><span class="linenos">1235</span></a> <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 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="o">|</span> <span class="n">Identifier</span><span class="p">:</span>
-</span><span id="L-1238"><a href="#L-1238"><span class="linenos">1238</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-1239"><a href="#L-1239"><span class="linenos">1239</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-1240"><a href="#L-1240"><span class="linenos">1240</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-1241"><a href="#L-1241"><span class="linenos">1241</span></a>
-</span><span id="L-1242"><a href="#L-1242"><span class="linenos">1242</span></a> <span class="k">while</span> <span class="n">parent</span><span class="p">:</span>
-</span><span id="L-1243"><a href="#L-1243"><span class="linenos">1243</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-1244"><a href="#L-1244"><span class="linenos">1244</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-1245"><a href="#L-1245"><span class="linenos">1245</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-1209"><a href="#L-1209"><span class="linenos">1209</span></a> <span class="nd">@property</span>
+</span><span id="L-1210"><a href="#L-1210"><span class="linenos">1210</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-1211"><a href="#L-1211"><span class="linenos">1211</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-1212"><a href="#L-1212"><span class="linenos">1212</span></a>
+</span><span id="L-1213"><a href="#L-1213"><span class="linenos">1213</span></a> <span class="nd">@property</span>
+</span><span id="L-1214"><a href="#L-1214"><span class="linenos">1214</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-1215"><a href="#L-1215"><span class="linenos">1215</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-1216"><a href="#L-1216"><span class="linenos">1216</span></a>
+</span><span id="L-1217"><a href="#L-1217"><span class="linenos">1217</span></a> <span class="nd">@property</span>
+</span><span id="L-1218"><a href="#L-1218"><span class="linenos">1218</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-1219"><a href="#L-1219"><span class="linenos">1219</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-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="nd">@property</span>
+</span><span id="L-1222"><a href="#L-1222"><span class="linenos">1222</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-1223"><a href="#L-1223"><span class="linenos">1223</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-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="nd">@property</span>
+</span><span id="L-1226"><a href="#L-1226"><span class="linenos">1226</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-1227"><a href="#L-1227"><span class="linenos">1227</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-1228"><a href="#L-1228"><span class="linenos">1228</span></a> <span class="k">return</span> <span class="p">[</span>
+</span><span id="L-1229"><a href="#L-1229"><span class="linenos">1229</span></a> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Identifier</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">part</span><span class="p">])</span>
+</span><span id="L-1230"><a href="#L-1230"><span class="linenos">1230</span></a> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">&quot;catalog&quot;</span><span class="p">,</span> <span class="s2">&quot;db&quot;</span><span class="p">,</span> <span class="s2">&quot;table&quot;</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
+</span><span id="L-1231"><a href="#L-1231"><span class="linenos">1231</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">part</span><span class="p">)</span>
+</span><span id="L-1232"><a href="#L-1232"><span class="linenos">1232</span></a> <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">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="o">|</span> <span class="n">Identifier</span><span class="p">:</span>
+</span><span id="L-1235"><a href="#L-1235"><span class="linenos">1235</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-1236"><a href="#L-1236"><span class="linenos">1236</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-1237"><a href="#L-1237"><span class="linenos">1237</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-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">while</span> <span class="n">parent</span><span class="p">:</span>
+</span><span id="L-1240"><a href="#L-1240"><span class="linenos">1240</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-1241"><a href="#L-1241"><span class="linenos">1241</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-1242"><a href="#L-1242"><span class="linenos">1242</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-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">return</span> <span class="n">Dot</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">deepcopy</span><span class="p">(</span><span class="n">parts</span><span class="p">))</span> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">parts</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">1</span> <span class="k">else</span> <span class="n">parts</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
+</span><span id="L-1245"><a href="#L-1245"><span class="linenos">1245</span></a>
</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">return</span> <span class="n">Dot</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">deepcopy</span><span class="p">(</span><span class="n">parts</span><span class="p">))</span> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">parts</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">1</span> <span class="k">else</span> <span class="n">parts</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
-</span><span id="L-1248"><a href="#L-1248"><span class="linenos">1248</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">ColumnPosition</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;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-1249"><a href="#L-1249"><span class="linenos">1249</span></a>
-</span><span id="L-1250"><a href="#L-1250"><span class="linenos">1250</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-1251"><a href="#L-1251"><span class="linenos">1251</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1252"><a href="#L-1252"><span class="linenos">1252</span></a>
-</span><span id="L-1253"><a href="#L-1253"><span class="linenos">1253</span></a>
-</span><span id="L-1254"><a href="#L-1254"><span class="linenos">1254</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-1255"><a href="#L-1255"><span class="linenos">1255</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-1256"><a href="#L-1256"><span class="linenos">1256</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-1257"><a href="#L-1257"><span class="linenos">1257</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-1258"><a href="#L-1258"><span class="linenos">1258</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-1259"><a href="#L-1259"><span class="linenos">1259</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-1260"><a href="#L-1260"><span class="linenos">1260</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-1261"><a href="#L-1261"><span class="linenos">1261</span></a> <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">constraints</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">ColumnConstraint</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="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;constraints&quot;</span><span class="p">)</span> <span class="ow">or</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><span id="L-1268"><a href="#L-1268"><span class="linenos">1268</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-1269"><a href="#L-1269"><span class="linenos">1269</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-1270"><a href="#L-1270"><span class="linenos">1270</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-1271"><a href="#L-1271"><span class="linenos">1271</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-1272"><a href="#L-1272"><span class="linenos">1272</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-1273"><a href="#L-1273"><span class="linenos">1273</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-1274"><a href="#L-1274"><span class="linenos">1274</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-1275"><a href="#L-1275"><span class="linenos">1275</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-1276"><a href="#L-1276"><span class="linenos">1276</span></a> <span class="p">}</span>
-</span><span id="L-1277"><a href="#L-1277"><span class="linenos">1277</span></a>
+</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">ColumnDef</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><span id="L-1253"><a href="#L-1253"><span class="linenos">1253</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-1254"><a href="#L-1254"><span class="linenos">1254</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-1255"><a href="#L-1255"><span class="linenos">1255</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-1256"><a href="#L-1256"><span class="linenos">1256</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-1257"><a href="#L-1257"><span class="linenos">1257</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-1258"><a href="#L-1258"><span class="linenos">1258</span></a> <span class="p">}</span>
+</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="nd">@property</span>
+</span><span id="L-1261"><a href="#L-1261"><span class="linenos">1261</span></a> <span class="k">def</span> <span class="nf">constraints</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">ColumnConstraint</span><span class="p">]:</span>
+</span><span id="L-1262"><a href="#L-1262"><span class="linenos">1262</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;constraints&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]</span>
+</span><span id="L-1263"><a href="#L-1263"><span class="linenos">1263</span></a>
+</span><span id="L-1264"><a href="#L-1264"><span class="linenos">1264</span></a>
+</span><span id="L-1265"><a href="#L-1265"><span class="linenos">1265</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-1266"><a href="#L-1266"><span class="linenos">1266</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1267"><a href="#L-1267"><span class="linenos">1267</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-1268"><a href="#L-1268"><span class="linenos">1268</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-1269"><a href="#L-1269"><span class="linenos">1269</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-1270"><a href="#L-1270"><span class="linenos">1270</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-1271"><a href="#L-1271"><span class="linenos">1271</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-1272"><a href="#L-1272"><span class="linenos">1272</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-1273"><a href="#L-1273"><span class="linenos">1273</span></a> <span class="p">}</span>
+</span><span id="L-1274"><a href="#L-1274"><span class="linenos">1274</span></a>
+</span><span id="L-1275"><a href="#L-1275"><span class="linenos">1275</span></a>
+</span><span id="L-1276"><a href="#L-1276"><span class="linenos">1276</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-1277"><a href="#L-1277"><span class="linenos">1277</span></a> <span class="k">pass</span>
</span><span id="L-1278"><a href="#L-1278"><span class="linenos">1278</span></a>
-</span><span id="L-1279"><a href="#L-1279"><span class="linenos">1279</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-1280"><a href="#L-1280"><span class="linenos">1280</span></a> <span class="k">pass</span>
-</span><span id="L-1281"><a href="#L-1281"><span class="linenos">1281</span></a>
+</span><span id="L-1279"><a href="#L-1279"><span class="linenos">1279</span></a>
+</span><span id="L-1280"><a href="#L-1280"><span class="linenos">1280</span></a><span class="k">class</span> <span class="nc">SwapTable</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-1281"><a href="#L-1281"><span class="linenos">1281</span></a> <span class="k">pass</span>
</span><span id="L-1282"><a href="#L-1282"><span class="linenos">1282</span></a>
-</span><span id="L-1283"><a href="#L-1283"><span class="linenos">1283</span></a><span class="k">class</span> <span class="nc">SwapTable</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-1284"><a href="#L-1284"><span class="linenos">1284</span></a> <span class="k">pass</span>
-</span><span id="L-1285"><a href="#L-1285"><span class="linenos">1285</span></a>
+</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 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-1285"><a href="#L-1285"><span class="linenos">1285</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1286"><a href="#L-1286"><span class="linenos">1286</span></a>
-</span><span id="L-1287"><a href="#L-1287"><span class="linenos">1287</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-1288"><a href="#L-1288"><span class="linenos">1288</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1289"><a href="#L-1289"><span class="linenos">1289</span></a>
+</span><span id="L-1287"><a href="#L-1287"><span class="linenos">1287</span></a>
+</span><span id="L-1288"><a href="#L-1288"><span class="linenos">1288</span></a><span class="k">class</span> <span class="nc">Comprehension</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-1289"><a href="#L-1289"><span class="linenos">1289</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;iterator&quot;</span><span class="p">:</span> <span class="kc">True</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><span id="L-1290"><a href="#L-1290"><span class="linenos">1290</span></a>
-</span><span id="L-1291"><a href="#L-1291"><span class="linenos">1291</span></a><span class="k">class</span> <span class="nc">Comprehension</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-1292"><a href="#L-1292"><span class="linenos">1292</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;iterator&quot;</span><span class="p">:</span> <span class="kc">True</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><span id="L-1293"><a href="#L-1293"><span class="linenos">1293</span></a>
-</span><span id="L-1294"><a href="#L-1294"><span class="linenos">1294</span></a>
-</span><span id="L-1295"><a href="#L-1295"><span class="linenos">1295</span></a><span class="c1"># https://clickhouse.com/docs/en/engines/table-engines/mergetree-family/mergetree#mergetree-table-ttl</span>
-</span><span id="L-1296"><a href="#L-1296"><span class="linenos">1296</span></a><span class="k">class</span> <span class="nc">MergeTreeTTLAction</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-1297"><a href="#L-1297"><span class="linenos">1297</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-1298"><a href="#L-1298"><span class="linenos">1298</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-1299"><a href="#L-1299"><span class="linenos">1299</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-1300"><a href="#L-1300"><span class="linenos">1300</span></a> <span class="s2">&quot;recompress&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="s2">&quot;to_disk&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-1302"><a href="#L-1302"><span class="linenos">1302</span></a> <span class="s2">&quot;to_volume&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-1303"><a href="#L-1303"><span class="linenos">1303</span></a> <span class="p">}</span>
-</span><span id="L-1304"><a href="#L-1304"><span class="linenos">1304</span></a>
-</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 class="c1"># https://clickhouse.com/docs/en/engines/table-engines/mergetree-family/mergetree#mergetree-table-ttl</span>
-</span><span id="L-1307"><a href="#L-1307"><span class="linenos">1307</span></a><span class="k">class</span> <span class="nc">MergeTreeTTL</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-1308"><a href="#L-1308"><span class="linenos">1308</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-1309"><a href="#L-1309"><span class="linenos">1309</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-1310"><a href="#L-1310"><span class="linenos">1310</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-1311"><a href="#L-1311"><span class="linenos">1311</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-1312"><a href="#L-1312"><span class="linenos">1312</span></a> <span class="s2">&quot;aggregates&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-1313"><a href="#L-1313"><span class="linenos">1313</span></a> <span class="p">}</span>
-</span><span id="L-1314"><a href="#L-1314"><span class="linenos">1314</span></a>
-</span><span id="L-1315"><a href="#L-1315"><span class="linenos">1315</span></a>
-</span><span id="L-1316"><a href="#L-1316"><span class="linenos">1316</span></a><span class="c1"># https://dev.mysql.com/doc/refman/8.0/en/create-table.html</span>
-</span><span id="L-1317"><a href="#L-1317"><span class="linenos">1317</span></a><span class="k">class</span> <span class="nc">IndexConstraintOption</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-1318"><a href="#L-1318"><span class="linenos">1318</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-1319"><a href="#L-1319"><span class="linenos">1319</span></a> <span class="s2">&quot;key_block_size&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;using&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="s2">&quot;parser&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-1322"><a href="#L-1322"><span class="linenos">1322</span></a> <span class="s2">&quot;comment&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-1323"><a href="#L-1323"><span class="linenos">1323</span></a> <span class="s2">&quot;visible&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-1324"><a href="#L-1324"><span class="linenos">1324</span></a> <span class="s2">&quot;engine_attr&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-1325"><a href="#L-1325"><span class="linenos">1325</span></a> <span class="s2">&quot;secondary_engine_attr&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-1326"><a href="#L-1326"><span class="linenos">1326</span></a> <span class="p">}</span>
-</span><span id="L-1327"><a href="#L-1327"><span class="linenos">1327</span></a>
+</span><span id="L-1291"><a href="#L-1291"><span class="linenos">1291</span></a>
+</span><span id="L-1292"><a href="#L-1292"><span class="linenos">1292</span></a><span class="c1"># https://clickhouse.com/docs/en/engines/table-engines/mergetree-family/mergetree#mergetree-table-ttl</span>
+</span><span id="L-1293"><a href="#L-1293"><span class="linenos">1293</span></a><span class="k">class</span> <span class="nc">MergeTreeTTLAction</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-1294"><a href="#L-1294"><span class="linenos">1294</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1295"><a href="#L-1295"><span class="linenos">1295</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-1296"><a href="#L-1296"><span class="linenos">1296</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-1297"><a href="#L-1297"><span class="linenos">1297</span></a> <span class="s2">&quot;recompress&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;to_disk&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;to_volume&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="p">}</span>
+</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><span id="L-1303"><a href="#L-1303"><span class="linenos">1303</span></a><span class="c1"># https://clickhouse.com/docs/en/engines/table-engines/mergetree-family/mergetree#mergetree-table-ttl</span>
+</span><span id="L-1304"><a href="#L-1304"><span class="linenos">1304</span></a><span class="k">class</span> <span class="nc">MergeTreeTTL</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;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-1307"><a href="#L-1307"><span class="linenos">1307</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-1308"><a href="#L-1308"><span class="linenos">1308</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-1309"><a href="#L-1309"><span class="linenos">1309</span></a> <span class="s2">&quot;aggregates&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="p">}</span>
+</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><span id="L-1313"><a href="#L-1313"><span class="linenos">1313</span></a><span class="c1"># https://dev.mysql.com/doc/refman/8.0/en/create-table.html</span>
+</span><span id="L-1314"><a href="#L-1314"><span class="linenos">1314</span></a><span class="k">class</span> <span class="nc">IndexConstraintOption</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><span id="L-1316"><a href="#L-1316"><span class="linenos">1316</span></a> <span class="s2">&quot;key_block_size&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;using&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-1318"><a href="#L-1318"><span class="linenos">1318</span></a> <span class="s2">&quot;parser&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;comment&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;visible&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="s2">&quot;engine_attr&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-1322"><a href="#L-1322"><span class="linenos">1322</span></a> <span class="s2">&quot;secondary_engine_attr&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-1323"><a href="#L-1323"><span class="linenos">1323</span></a> <span class="p">}</span>
+</span><span id="L-1324"><a href="#L-1324"><span class="linenos">1324</span></a>
+</span><span id="L-1325"><a href="#L-1325"><span class="linenos">1325</span></a>
+</span><span id="L-1326"><a href="#L-1326"><span class="linenos">1326</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-1327"><a href="#L-1327"><span class="linenos">1327</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1328"><a href="#L-1328"><span class="linenos">1328</span></a>
-</span><span id="L-1329"><a href="#L-1329"><span class="linenos">1329</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-1330"><a href="#L-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;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-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="nd">@property</span>
-</span><span id="L-1333"><a href="#L-1333"><span class="linenos">1333</span></a> <span class="k">def</span> <span class="nf">kind</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">ColumnConstraintKind</span><span class="p">:</span>
-</span><span id="L-1334"><a href="#L-1334"><span class="linenos">1334</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;kind&quot;</span><span class="p">]</span>
-</span><span id="L-1335"><a href="#L-1335"><span class="linenos">1335</span></a>
+</span><span id="L-1329"><a href="#L-1329"><span class="linenos">1329</span></a> <span class="nd">@property</span>
+</span><span id="L-1330"><a href="#L-1330"><span class="linenos">1330</span></a> <span class="k">def</span> <span class="nf">kind</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">ColumnConstraintKind</span><span class="p">:</span>
+</span><span id="L-1331"><a href="#L-1331"><span class="linenos">1331</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;kind&quot;</span><span class="p">]</span>
+</span><span id="L-1332"><a href="#L-1332"><span class="linenos">1332</span></a>
+</span><span id="L-1333"><a href="#L-1333"><span class="linenos">1333</span></a>
+</span><span id="L-1334"><a href="#L-1334"><span class="linenos">1334</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-1335"><a href="#L-1335"><span class="linenos">1335</span></a> <span class="k">pass</span>
</span><span id="L-1336"><a href="#L-1336"><span class="linenos">1336</span></a>
-</span><span id="L-1337"><a href="#L-1337"><span class="linenos">1337</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-1338"><a href="#L-1338"><span class="linenos">1338</span></a> <span class="k">pass</span>
-</span><span id="L-1339"><a href="#L-1339"><span class="linenos">1339</span></a>
+</span><span id="L-1337"><a href="#L-1337"><span class="linenos">1337</span></a>
+</span><span id="L-1338"><a href="#L-1338"><span class="linenos">1338</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-1339"><a href="#L-1339"><span class="linenos">1339</span></a> <span class="k">pass</span>
</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">AutoIncrementColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="L-1342"><a href="#L-1342"><span class="linenos">1342</span></a> <span class="k">pass</span>
-</span><span id="L-1343"><a href="#L-1343"><span class="linenos">1343</span></a>
+</span><span id="L-1341"><a href="#L-1341"><span class="linenos">1341</span></a>
+</span><span id="L-1342"><a href="#L-1342"><span class="linenos">1342</span></a><span class="k">class</span> <span class="nc">PeriodForSystemTimeConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="L-1343"><a href="#L-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;expression&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><span id="L-1345"><a href="#L-1345"><span class="linenos">1345</span></a><span class="k">class</span> <span class="nc">PeriodForSystemTimeConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</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">True</span><span 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-1345"><a href="#L-1345"><span class="linenos">1345</span></a>
+</span><span id="L-1346"><a href="#L-1346"><span class="linenos">1346</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-1347"><a href="#L-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;not_&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</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">CaseSpecificColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</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;not_&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-1351"><a href="#L-1351"><span class="linenos">1351</span></a>
+</span><span id="L-1349"><a href="#L-1349"><span class="linenos">1349</span></a>
+</span><span id="L-1350"><a href="#L-1350"><span class="linenos">1350</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-1351"><a href="#L-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><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">CharacterSetColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</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 class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-1355"><a href="#L-1355"><span class="linenos">1355</span></a>
+</span><span id="L-1353"><a href="#L-1353"><span class="linenos">1353</span></a>
+</span><span id="L-1354"><a href="#L-1354"><span class="linenos">1354</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-1355"><a href="#L-1355"><span class="linenos">1355</span></a> <span class="k">pass</span>
</span><span id="L-1356"><a href="#L-1356"><span class="linenos">1356</span></a>
-</span><span id="L-1357"><a href="#L-1357"><span class="linenos">1357</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-1358"><a href="#L-1358"><span class="linenos">1358</span></a> <span class="k">pass</span>
-</span><span id="L-1359"><a href="#L-1359"><span class="linenos">1359</span></a>
+</span><span id="L-1357"><a href="#L-1357"><span class="linenos">1357</span></a>
+</span><span id="L-1358"><a href="#L-1358"><span class="linenos">1358</span></a><span class="k">class</span> <span class="nc">ClusteredColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="L-1359"><a href="#L-1359"><span class="linenos">1359</span></a> <span class="k">pass</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 class="k">class</span> <span class="nc">ClusteredColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="L-1362"><a href="#L-1362"><span class="linenos">1362</span></a> <span class="k">pass</span>
-</span><span id="L-1363"><a href="#L-1363"><span class="linenos">1363</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">CollateColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="L-1363"><a href="#L-1363"><span class="linenos">1363</span></a> <span class="k">pass</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 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-1366"><a href="#L-1366"><span class="linenos">1366</span></a> <span class="k">pass</span>
-</span><span id="L-1367"><a href="#L-1367"><span class="linenos">1367</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">CommentColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="L-1367"><a href="#L-1367"><span class="linenos">1367</span></a> <span class="k">pass</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">CommentColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="L-1370"><a href="#L-1370"><span class="linenos">1370</span></a> <span class="k">pass</span>
-</span><span id="L-1371"><a href="#L-1371"><span class="linenos">1371</span></a>
+</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">CompressColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="L-1371"><a href="#L-1371"><span class="linenos">1371</span></a> <span class="k">pass</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="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-1374"><a href="#L-1374"><span class="linenos">1374</span></a> <span class="k">pass</span>
-</span><span id="L-1375"><a href="#L-1375"><span class="linenos">1375</span></a>
+</span><span id="L-1373"><a href="#L-1373"><span class="linenos">1373</span></a>
+</span><span id="L-1374"><a href="#L-1374"><span class="linenos">1374</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-1375"><a href="#L-1375"><span class="linenos">1375</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-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="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-1378"><a href="#L-1378"><span class="linenos">1378</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1379"><a href="#L-1379"><span class="linenos">1379</span></a>
+</span><span id="L-1377"><a href="#L-1377"><span class="linenos">1377</span></a>
+</span><span id="L-1378"><a href="#L-1378"><span class="linenos">1378</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-1379"><a href="#L-1379"><span class="linenos">1379</span></a> <span class="k">pass</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="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-1382"><a href="#L-1382"><span class="linenos">1382</span></a> <span class="k">pass</span>
-</span><span id="L-1383"><a href="#L-1383"><span class="linenos">1383</span></a>
+</span><span id="L-1381"><a href="#L-1381"><span class="linenos">1381</span></a>
+</span><span id="L-1382"><a href="#L-1382"><span class="linenos">1382</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-1383"><a href="#L-1383"><span class="linenos">1383</span></a> <span class="k">pass</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="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-1386"><a href="#L-1386"><span class="linenos">1386</span></a> <span class="k">pass</span>
-</span><span id="L-1387"><a href="#L-1387"><span class="linenos">1387</span></a>
-</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 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-1390"><a href="#L-1390"><span class="linenos">1390</span></a> <span class="c1"># this: True -&gt; ALWAYS, this: False -&gt; BY DEFAULT</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">False</span><span class="p">,</span>
-</span><span id="L-1393"><a href="#L-1393"><span class="linenos">1393</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-1394"><a href="#L-1394"><span class="linenos">1394</span></a> <span class="s2">&quot;on_null&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;start&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;increment&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;minvalue&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;maxvalue&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="s2">&quot;cycle&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-1400"><a href="#L-1400"><span class="linenos">1400</span></a> <span class="p">}</span>
-</span><span id="L-1401"><a href="#L-1401"><span class="linenos">1401</span></a>
+</span><span id="L-1385"><a href="#L-1385"><span class="linenos">1385</span></a>
+</span><span id="L-1386"><a href="#L-1386"><span class="linenos">1386</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-1387"><a href="#L-1387"><span class="linenos">1387</span></a> <span class="c1"># this: True -&gt; ALWAYS, this: False -&gt; BY DEFAULT</span>
+</span><span id="L-1388"><a href="#L-1388"><span class="linenos">1388</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1389"><a href="#L-1389"><span class="linenos">1389</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-1390"><a href="#L-1390"><span class="linenos">1390</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-1391"><a href="#L-1391"><span class="linenos">1391</span></a> <span class="s2">&quot;on_null&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-1392"><a href="#L-1392"><span class="linenos">1392</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-1393"><a href="#L-1393"><span class="linenos">1393</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-1394"><a href="#L-1394"><span class="linenos">1394</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-1395"><a href="#L-1395"><span class="linenos">1395</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-1396"><a href="#L-1396"><span class="linenos">1396</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-1397"><a href="#L-1397"><span class="linenos">1397</span></a> <span class="p">}</span>
+</span><span id="L-1398"><a href="#L-1398"><span class="linenos">1398</span></a>
+</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="k">class</span> <span class="nc">GeneratedAsRowColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="L-1401"><a href="#L-1401"><span class="linenos">1401</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;hidden&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-1402"><a href="#L-1402"><span class="linenos">1402</span></a>
-</span><span id="L-1403"><a href="#L-1403"><span class="linenos">1403</span></a><span class="k">class</span> <span class="nc">GeneratedAsRowColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="L-1404"><a href="#L-1404"><span class="linenos">1404</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;hidden&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-1405"><a href="#L-1405"><span class="linenos">1405</span></a>
-</span><span id="L-1406"><a href="#L-1406"><span class="linenos">1406</span></a>
-</span><span id="L-1407"><a href="#L-1407"><span class="linenos">1407</span></a><span class="c1"># https://dev.mysql.com/doc/refman/8.0/en/create-table.html</span>
-</span><span id="L-1408"><a href="#L-1408"><span class="linenos">1408</span></a><span class="k">class</span> <span class="nc">IndexColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="L-1409"><a href="#L-1409"><span class="linenos">1409</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-1410"><a href="#L-1410"><span class="linenos">1410</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-1411"><a href="#L-1411"><span class="linenos">1411</span></a> <span class="s2">&quot;schema&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-1412"><a href="#L-1412"><span class="linenos">1412</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-1413"><a href="#L-1413"><span class="linenos">1413</span></a> <span class="s2">&quot;index_type&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-1414"><a href="#L-1414"><span class="linenos">1414</span></a> <span class="s2">&quot;options&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-1415"><a href="#L-1415"><span class="linenos">1415</span></a> <span class="p">}</span>
-</span><span id="L-1416"><a href="#L-1416"><span class="linenos">1416</span></a>
+</span><span id="L-1403"><a href="#L-1403"><span class="linenos">1403</span></a>
+</span><span id="L-1404"><a href="#L-1404"><span class="linenos">1404</span></a><span class="c1"># https://dev.mysql.com/doc/refman/8.0/en/create-table.html</span>
+</span><span id="L-1405"><a href="#L-1405"><span class="linenos">1405</span></a><span class="k">class</span> <span class="nc">IndexColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="L-1406"><a href="#L-1406"><span class="linenos">1406</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1407"><a href="#L-1407"><span class="linenos">1407</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-1408"><a href="#L-1408"><span class="linenos">1408</span></a> <span class="s2">&quot;schema&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-1409"><a href="#L-1409"><span class="linenos">1409</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-1410"><a href="#L-1410"><span class="linenos">1410</span></a> <span class="s2">&quot;index_type&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-1411"><a href="#L-1411"><span class="linenos">1411</span></a> <span class="s2">&quot;options&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-1412"><a href="#L-1412"><span class="linenos">1412</span></a> <span class="p">}</span>
+</span><span id="L-1413"><a href="#L-1413"><span class="linenos">1413</span></a>
+</span><span id="L-1414"><a href="#L-1414"><span class="linenos">1414</span></a>
+</span><span id="L-1415"><a href="#L-1415"><span class="linenos">1415</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-1416"><a href="#L-1416"><span class="linenos">1416</span></a> <span class="k">pass</span>
</span><span id="L-1417"><a href="#L-1417"><span class="linenos">1417</span></a>
-</span><span id="L-1418"><a href="#L-1418"><span class="linenos">1418</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-1419"><a href="#L-1419"><span class="linenos">1419</span></a> <span class="k">pass</span>
-</span><span id="L-1420"><a href="#L-1420"><span class="linenos">1420</span></a>
+</span><span id="L-1418"><a href="#L-1418"><span class="linenos">1418</span></a>
+</span><span id="L-1419"><a href="#L-1419"><span class="linenos">1419</span></a><span class="k">class</span> <span class="nc">NonClusteredColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="L-1420"><a href="#L-1420"><span class="linenos">1420</span></a> <span class="k">pass</span>
</span><span id="L-1421"><a href="#L-1421"><span class="linenos">1421</span></a>
-</span><span id="L-1422"><a href="#L-1422"><span class="linenos">1422</span></a><span class="k">class</span> <span class="nc">NonClusteredColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="L-1423"><a href="#L-1423"><span class="linenos">1423</span></a> <span class="k">pass</span>
-</span><span id="L-1424"><a href="#L-1424"><span class="linenos">1424</span></a>
+</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">class</span> <span class="nc">NotForReplicationColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="L-1424"><a href="#L-1424"><span class="linenos">1424</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</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">class</span> <span class="nc">NotForReplicationColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="L-1427"><a href="#L-1427"><span class="linenos">1427</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
-</span><span id="L-1428"><a href="#L-1428"><span class="linenos">1428</span></a>
+</span><span id="L-1426"><a href="#L-1426"><span class="linenos">1426</span></a>
+</span><span id="L-1427"><a href="#L-1427"><span class="linenos">1427</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-1428"><a href="#L-1428"><span class="linenos">1428</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-1429"><a href="#L-1429"><span class="linenos">1429</span></a>
-</span><span id="L-1430"><a href="#L-1430"><span class="linenos">1430</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-1431"><a href="#L-1431"><span class="linenos">1431</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-1432"><a href="#L-1432"><span class="linenos">1432</span></a>
-</span><span id="L-1433"><a href="#L-1433"><span class="linenos">1433</span></a>
-</span><span id="L-1434"><a href="#L-1434"><span class="linenos">1434</span></a><span class="c1"># https://dev.mysql.com/doc/refman/5.7/en/timestamp-initialization.html</span>
-</span><span id="L-1435"><a href="#L-1435"><span class="linenos">1435</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-1436"><a href="#L-1436"><span class="linenos">1436</span></a> <span class="k">pass</span>
-</span><span id="L-1437"><a href="#L-1437"><span class="linenos">1437</span></a>
-</span><span id="L-1438"><a href="#L-1438"><span class="linenos">1438</span></a>
-</span><span id="L-1439"><a href="#L-1439"><span class="linenos">1439</span></a><span class="c1"># https://docs.snowflake.com/en/sql-reference/sql/create-external-table#optional-parameters</span>
-</span><span id="L-1440"><a href="#L-1440"><span class="linenos">1440</span></a><span class="k">class</span> <span class="nc">TransformColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="L-1441"><a href="#L-1441"><span class="linenos">1441</span></a> <span class="k">pass</span>
-</span><span id="L-1442"><a href="#L-1442"><span class="linenos">1442</span></a>
+</span><span id="L-1430"><a href="#L-1430"><span class="linenos">1430</span></a>
+</span><span id="L-1431"><a href="#L-1431"><span class="linenos">1431</span></a><span class="c1"># https://dev.mysql.com/doc/refman/5.7/en/timestamp-initialization.html</span>
+</span><span id="L-1432"><a href="#L-1432"><span class="linenos">1432</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-1433"><a href="#L-1433"><span class="linenos">1433</span></a> <span class="k">pass</span>
+</span><span id="L-1434"><a href="#L-1434"><span class="linenos">1434</span></a>
+</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="c1"># https://docs.snowflake.com/en/sql-reference/sql/create-external-table#optional-parameters</span>
+</span><span id="L-1437"><a href="#L-1437"><span class="linenos">1437</span></a><span class="k">class</span> <span class="nc">TransformColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="L-1438"><a href="#L-1438"><span class="linenos">1438</span></a> <span class="k">pass</span>
+</span><span id="L-1439"><a href="#L-1439"><span class="linenos">1439</span></a>
+</span><span id="L-1440"><a href="#L-1440"><span class="linenos">1440</span></a>
+</span><span id="L-1441"><a href="#L-1441"><span class="linenos">1441</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-1442"><a href="#L-1442"><span class="linenos">1442</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-1443"><a href="#L-1443"><span class="linenos">1443</span></a>
-</span><span id="L-1444"><a href="#L-1444"><span class="linenos">1444</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-1445"><a href="#L-1445"><span class="linenos">1445</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-1446"><a href="#L-1446"><span class="linenos">1446</span></a>
+</span><span id="L-1444"><a href="#L-1444"><span class="linenos">1444</span></a>
+</span><span id="L-1445"><a href="#L-1445"><span class="linenos">1445</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-1446"><a href="#L-1446"><span class="linenos">1446</span></a> <span class="k">pass</span>
</span><span id="L-1447"><a href="#L-1447"><span class="linenos">1447</span></a>
-</span><span id="L-1448"><a href="#L-1448"><span class="linenos">1448</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-1449"><a href="#L-1449"><span class="linenos">1449</span></a> <span class="k">pass</span>
-</span><span id="L-1450"><a href="#L-1450"><span class="linenos">1450</span></a>
+</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">class</span> <span class="nc">UniqueColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="L-1450"><a href="#L-1450"><span class="linenos">1450</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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;index_type&quot;</span><span class="p">:</span> <span class="kc">False</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">class</span> <span class="nc">UniqueColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="L-1453"><a href="#L-1453"><span class="linenos">1453</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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;index_type&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-1454"><a href="#L-1454"><span class="linenos">1454</span></a>
+</span><span id="L-1452"><a href="#L-1452"><span class="linenos">1452</span></a>
+</span><span id="L-1453"><a href="#L-1453"><span class="linenos">1453</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-1454"><a href="#L-1454"><span class="linenos">1454</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-1455"><a href="#L-1455"><span class="linenos">1455</span></a>
-</span><span id="L-1456"><a href="#L-1456"><span class="linenos">1456</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-1457"><a href="#L-1457"><span class="linenos">1457</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-1458"><a href="#L-1458"><span class="linenos">1458</span></a>
+</span><span id="L-1456"><a href="#L-1456"><span class="linenos">1456</span></a>
+</span><span id="L-1457"><a href="#L-1457"><span class="linenos">1457</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-1458"><a href="#L-1458"><span class="linenos">1458</span></a> <span class="k">pass</span>
</span><span id="L-1459"><a href="#L-1459"><span class="linenos">1459</span></a>
-</span><span id="L-1460"><a href="#L-1460"><span class="linenos">1460</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-1461"><a href="#L-1461"><span class="linenos">1461</span></a> <span class="k">pass</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><span id="L-1464"><a href="#L-1464"><span class="linenos">1464</span></a><span class="c1"># computed column expression</span>
-</span><span id="L-1465"><a href="#L-1465"><span class="linenos">1465</span></a><span class="c1"># https://learn.microsoft.com/en-us/sql/t-sql/statements/create-table-transact-sql?view=sql-server-ver16</span>
-</span><span id="L-1466"><a href="#L-1466"><span class="linenos">1466</span></a><span class="k">class</span> <span class="nc">ComputedColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="L-1467"><a href="#L-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;persisted&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;not_null&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-1468"><a href="#L-1468"><span class="linenos">1468</span></a>
+</span><span id="L-1460"><a href="#L-1460"><span class="linenos">1460</span></a>
+</span><span id="L-1461"><a href="#L-1461"><span class="linenos">1461</span></a><span class="c1"># computed column expression</span>
+</span><span id="L-1462"><a href="#L-1462"><span class="linenos">1462</span></a><span class="c1"># https://learn.microsoft.com/en-us/sql/t-sql/statements/create-table-transact-sql?view=sql-server-ver16</span>
+</span><span id="L-1463"><a href="#L-1463"><span class="linenos">1463</span></a><span class="k">class</span> <span class="nc">ComputedColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="L-1464"><a href="#L-1464"><span class="linenos">1464</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;persisted&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;not_null&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-1465"><a href="#L-1465"><span class="linenos">1465</span></a>
+</span><span id="L-1466"><a href="#L-1466"><span class="linenos">1466</span></a>
+</span><span id="L-1467"><a href="#L-1467"><span class="linenos">1467</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-1468"><a href="#L-1468"><span class="linenos">1468</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1469"><a href="#L-1469"><span class="linenos">1469</span></a>
-</span><span id="L-1470"><a href="#L-1470"><span class="linenos">1470</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-1471"><a href="#L-1471"><span class="linenos">1471</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1472"><a href="#L-1472"><span class="linenos">1472</span></a>
-</span><span id="L-1473"><a href="#L-1473"><span class="linenos">1473</span></a>
-</span><span id="L-1474"><a href="#L-1474"><span class="linenos">1474</span></a><span class="k">class</span> <span class="nc">Delete</span><span class="p">(</span><span class="n">DML</span><span class="p">):</span>
-</span><span id="L-1475"><a href="#L-1475"><span class="linenos">1475</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-1476"><a href="#L-1476"><span class="linenos">1476</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-1477"><a href="#L-1477"><span class="linenos">1477</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-1478"><a href="#L-1478"><span class="linenos">1478</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-1479"><a href="#L-1479"><span class="linenos">1479</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-1480"><a href="#L-1480"><span class="linenos">1480</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-1481"><a href="#L-1481"><span class="linenos">1481</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-1482"><a href="#L-1482"><span class="linenos">1482</span></a> <span class="s2">&quot;tables&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="c1"># Multiple-Table Syntax (MySQL)</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">def</span> <span class="nf">delete</span><span class="p">(</span>
-</span><span id="L-1486"><a href="#L-1486"><span class="linenos">1486</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-1487"><a href="#L-1487"><span class="linenos">1487</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-1488"><a href="#L-1488"><span class="linenos">1488</span></a> <span class="n">dialect</span><span 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-1489"><a href="#L-1489"><span class="linenos">1489</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-1490"><a href="#L-1490"><span class="linenos">1490</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-1491"><a href="#L-1491"><span class="linenos">1491</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
-</span><span id="L-1492"><a href="#L-1492"><span class="linenos">1492</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-1493"><a href="#L-1493"><span class="linenos">1493</span></a><span class="sd"> Create a DELETE expression or replace the table on an existing DELETE expression.</span>
-</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="sd"> Example:</span>
-</span><span id="L-1496"><a href="#L-1496"><span class="linenos">1496</span></a><span class="sd"> &gt;&gt;&gt; delete(&quot;tbl&quot;).sql()</span>
-</span><span id="L-1497"><a href="#L-1497"><span class="linenos">1497</span></a><span class="sd"> &#39;DELETE FROM tbl&#39;</span>
-</span><span id="L-1498"><a href="#L-1498"><span class="linenos">1498</span></a>
-</span><span id="L-1499"><a href="#L-1499"><span class="linenos">1499</span></a><span class="sd"> Args:</span>
-</span><span id="L-1500"><a href="#L-1500"><span class="linenos">1500</span></a><span class="sd"> table: the table from which to delete.</span>
-</span><span id="L-1501"><a href="#L-1501"><span class="linenos">1501</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-1502"><a href="#L-1502"><span class="linenos">1502</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="L-1503"><a href="#L-1503"><span class="linenos">1503</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</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="sd"> Returns:</span>
-</span><span id="L-1506"><a href="#L-1506"><span class="linenos">1506</span></a><span class="sd"> Delete: the modified expression.</span>
-</span><span id="L-1507"><a href="#L-1507"><span class="linenos">1507</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-1508"><a href="#L-1508"><span class="linenos">1508</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
-</span><span id="L-1509"><a href="#L-1509"><span class="linenos">1509</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">table</span><span class="p">,</span>
-</span><span id="L-1510"><a href="#L-1510"><span class="linenos">1510</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-1511"><a href="#L-1511"><span class="linenos">1511</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-1512"><a href="#L-1512"><span class="linenos">1512</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-1513"><a href="#L-1513"><span class="linenos">1513</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span>
-</span><span id="L-1514"><a href="#L-1514"><span class="linenos">1514</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-1515"><a href="#L-1515"><span class="linenos">1515</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-1516"><a href="#L-1516"><span class="linenos">1516</span></a> <span class="p">)</span>
-</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">def</span> <span class="nf">where</span><span class="p">(</span>
-</span><span id="L-1519"><a href="#L-1519"><span class="linenos">1519</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-1520"><a href="#L-1520"><span class="linenos">1520</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="L-1521"><a href="#L-1521"><span class="linenos">1521</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-1522"><a href="#L-1522"><span class="linenos">1522</span></a> <span class="n">dialect</span><span 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-1523"><a href="#L-1523"><span class="linenos">1523</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-1524"><a href="#L-1524"><span class="linenos">1524</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-1525"><a href="#L-1525"><span class="linenos">1525</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
-</span><span id="L-1526"><a href="#L-1526"><span class="linenos">1526</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-1527"><a href="#L-1527"><span class="linenos">1527</span></a><span class="sd"> Append to or set the WHERE expressions.</span>
-</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="sd"> Example:</span>
-</span><span id="L-1530"><a href="#L-1530"><span class="linenos">1530</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-1531"><a href="#L-1531"><span class="linenos">1531</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-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="sd"> Args:</span>
-</span><span id="L-1534"><a href="#L-1534"><span class="linenos">1534</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="L-1535"><a href="#L-1535"><span class="linenos">1535</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-1536"><a href="#L-1536"><span class="linenos">1536</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
-</span><span id="L-1537"><a href="#L-1537"><span class="linenos">1537</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
-</span><span id="L-1538"><a href="#L-1538"><span class="linenos">1538</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="L-1539"><a href="#L-1539"><span class="linenos">1539</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="L-1540"><a href="#L-1540"><span class="linenos">1540</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="L-1541"><a href="#L-1541"><span class="linenos">1541</span></a><span class="sd"> opts: other options to use to parse the input expressions.</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 class="sd"> Returns:</span>
-</span><span id="L-1544"><a href="#L-1544"><span class="linenos">1544</span></a><span class="sd"> Delete: the modified expression.</span>
-</span><span id="L-1545"><a href="#L-1545"><span class="linenos">1545</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-1546"><a href="#L-1546"><span class="linenos">1546</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="L-1547"><a href="#L-1547"><span class="linenos">1547</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-1548"><a href="#L-1548"><span class="linenos">1548</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-1549"><a href="#L-1549"><span class="linenos">1549</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-1550"><a href="#L-1550"><span class="linenos">1550</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-1551"><a href="#L-1551"><span class="linenos">1551</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span>
-</span><span id="L-1552"><a href="#L-1552"><span class="linenos">1552</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-1553"><a href="#L-1553"><span class="linenos">1553</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-1554"><a href="#L-1554"><span class="linenos">1554</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-1555"><a href="#L-1555"><span class="linenos">1555</span></a> <span class="p">)</span>
-</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><span id="L-1558"><a href="#L-1558"><span class="linenos">1558</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-1559"><a href="#L-1559"><span class="linenos">1559</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-1560"><a href="#L-1560"><span class="linenos">1560</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-1561"><a href="#L-1561"><span class="linenos">1561</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-1562"><a href="#L-1562"><span class="linenos">1562</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-1563"><a href="#L-1563"><span class="linenos">1563</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-1564"><a href="#L-1564"><span class="linenos">1564</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-1565"><a href="#L-1565"><span class="linenos">1565</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-1566"><a href="#L-1566"><span class="linenos">1566</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-1567"><a href="#L-1567"><span class="linenos">1567</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-1568"><a href="#L-1568"><span class="linenos">1568</span></a> <span class="p">}</span>
-</span><span id="L-1569"><a href="#L-1569"><span class="linenos">1569</span></a>
+</span><span id="L-1470"><a href="#L-1470"><span class="linenos">1470</span></a>
+</span><span id="L-1471"><a href="#L-1471"><span class="linenos">1471</span></a><span class="k">class</span> <span class="nc">Delete</span><span class="p">(</span><span class="n">DML</span><span class="p">):</span>
+</span><span id="L-1472"><a href="#L-1472"><span class="linenos">1472</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1473"><a href="#L-1473"><span class="linenos">1473</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-1474"><a href="#L-1474"><span class="linenos">1474</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-1475"><a href="#L-1475"><span class="linenos">1475</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-1476"><a href="#L-1476"><span class="linenos">1476</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-1477"><a href="#L-1477"><span class="linenos">1477</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-1478"><a href="#L-1478"><span class="linenos">1478</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-1479"><a href="#L-1479"><span class="linenos">1479</span></a> <span class="s2">&quot;tables&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="c1"># Multiple-Table Syntax (MySQL)</span>
+</span><span id="L-1480"><a href="#L-1480"><span class="linenos">1480</span></a> <span class="p">}</span>
+</span><span id="L-1481"><a href="#L-1481"><span class="linenos">1481</span></a>
+</span><span id="L-1482"><a href="#L-1482"><span class="linenos">1482</span></a> <span class="k">def</span> <span class="nf">delete</span><span class="p">(</span>
+</span><span id="L-1483"><a href="#L-1483"><span class="linenos">1483</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-1484"><a href="#L-1484"><span class="linenos">1484</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-1485"><a href="#L-1485"><span class="linenos">1485</span></a> <span class="n">dialect</span><span 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-1486"><a href="#L-1486"><span class="linenos">1486</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-1487"><a href="#L-1487"><span class="linenos">1487</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-1488"><a href="#L-1488"><span class="linenos">1488</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
+</span><span id="L-1489"><a href="#L-1489"><span class="linenos">1489</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-1490"><a href="#L-1490"><span class="linenos">1490</span></a><span class="sd"> Create a DELETE expression or replace the table on an existing DELETE expression.</span>
+</span><span id="L-1491"><a href="#L-1491"><span class="linenos">1491</span></a>
+</span><span id="L-1492"><a href="#L-1492"><span class="linenos">1492</span></a><span class="sd"> Example:</span>
+</span><span id="L-1493"><a href="#L-1493"><span class="linenos">1493</span></a><span class="sd"> &gt;&gt;&gt; delete(&quot;tbl&quot;).sql()</span>
+</span><span id="L-1494"><a href="#L-1494"><span class="linenos">1494</span></a><span class="sd"> &#39;DELETE FROM tbl&#39;</span>
+</span><span id="L-1495"><a href="#L-1495"><span class="linenos">1495</span></a>
+</span><span id="L-1496"><a href="#L-1496"><span class="linenos">1496</span></a><span class="sd"> Args:</span>
+</span><span id="L-1497"><a href="#L-1497"><span class="linenos">1497</span></a><span class="sd"> table: the table from which to delete.</span>
+</span><span id="L-1498"><a href="#L-1498"><span class="linenos">1498</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-1499"><a href="#L-1499"><span class="linenos">1499</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-1500"><a href="#L-1500"><span class="linenos">1500</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-1501"><a href="#L-1501"><span class="linenos">1501</span></a>
+</span><span id="L-1502"><a href="#L-1502"><span class="linenos">1502</span></a><span class="sd"> Returns:</span>
+</span><span id="L-1503"><a href="#L-1503"><span class="linenos">1503</span></a><span class="sd"> Delete: the modified expression.</span>
+</span><span id="L-1504"><a href="#L-1504"><span class="linenos">1504</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-1505"><a href="#L-1505"><span class="linenos">1505</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
+</span><span id="L-1506"><a href="#L-1506"><span class="linenos">1506</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">table</span><span class="p">,</span>
+</span><span id="L-1507"><a href="#L-1507"><span class="linenos">1507</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-1508"><a href="#L-1508"><span class="linenos">1508</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-1509"><a href="#L-1509"><span class="linenos">1509</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-1510"><a href="#L-1510"><span class="linenos">1510</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span>
+</span><span id="L-1511"><a href="#L-1511"><span class="linenos">1511</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-1512"><a href="#L-1512"><span class="linenos">1512</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-1513"><a href="#L-1513"><span class="linenos">1513</span></a> <span class="p">)</span>
+</span><span id="L-1514"><a href="#L-1514"><span class="linenos">1514</span></a>
+</span><span id="L-1515"><a href="#L-1515"><span class="linenos">1515</span></a> <span class="k">def</span> <span class="nf">where</span><span class="p">(</span>
+</span><span id="L-1516"><a href="#L-1516"><span class="linenos">1516</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-1517"><a href="#L-1517"><span class="linenos">1517</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="L-1518"><a href="#L-1518"><span class="linenos">1518</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-1519"><a href="#L-1519"><span class="linenos">1519</span></a> <span class="n">dialect</span><span 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-1520"><a href="#L-1520"><span class="linenos">1520</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-1521"><a href="#L-1521"><span class="linenos">1521</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-1522"><a href="#L-1522"><span class="linenos">1522</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
+</span><span id="L-1523"><a href="#L-1523"><span class="linenos">1523</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-1524"><a href="#L-1524"><span class="linenos">1524</span></a><span class="sd"> Append to or set the WHERE expressions.</span>
+</span><span id="L-1525"><a href="#L-1525"><span class="linenos">1525</span></a>
+</span><span id="L-1526"><a href="#L-1526"><span class="linenos">1526</span></a><span class="sd"> Example:</span>
+</span><span id="L-1527"><a href="#L-1527"><span class="linenos">1527</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-1528"><a href="#L-1528"><span class="linenos">1528</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-1529"><a href="#L-1529"><span class="linenos">1529</span></a>
+</span><span id="L-1530"><a href="#L-1530"><span class="linenos">1530</span></a><span class="sd"> Args:</span>
+</span><span id="L-1531"><a href="#L-1531"><span class="linenos">1531</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="L-1532"><a href="#L-1532"><span class="linenos">1532</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-1533"><a href="#L-1533"><span class="linenos">1533</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
+</span><span id="L-1534"><a href="#L-1534"><span class="linenos">1534</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
+</span><span id="L-1535"><a href="#L-1535"><span class="linenos">1535</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="L-1536"><a href="#L-1536"><span class="linenos">1536</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="L-1537"><a href="#L-1537"><span class="linenos">1537</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-1538"><a href="#L-1538"><span class="linenos">1538</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</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 class="sd"> Returns:</span>
+</span><span id="L-1541"><a href="#L-1541"><span class="linenos">1541</span></a><span class="sd"> Delete: the modified expression.</span>
+</span><span id="L-1542"><a href="#L-1542"><span class="linenos">1542</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-1543"><a href="#L-1543"><span class="linenos">1543</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="L-1544"><a href="#L-1544"><span class="linenos">1544</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-1545"><a href="#L-1545"><span class="linenos">1545</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-1546"><a href="#L-1546"><span class="linenos">1546</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-1547"><a href="#L-1547"><span class="linenos">1547</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-1548"><a href="#L-1548"><span class="linenos">1548</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span>
+</span><span id="L-1549"><a href="#L-1549"><span class="linenos">1549</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-1550"><a href="#L-1550"><span class="linenos">1550</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-1551"><a href="#L-1551"><span class="linenos">1551</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-1552"><a href="#L-1552"><span class="linenos">1552</span></a> <span class="p">)</span>
+</span><span id="L-1553"><a href="#L-1553"><span class="linenos">1553</span></a>
+</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 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-1556"><a href="#L-1556"><span class="linenos">1556</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1557"><a href="#L-1557"><span class="linenos">1557</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-1558"><a href="#L-1558"><span class="linenos">1558</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-1559"><a href="#L-1559"><span class="linenos">1559</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-1560"><a href="#L-1560"><span class="linenos">1560</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-1561"><a href="#L-1561"><span class="linenos">1561</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-1562"><a href="#L-1562"><span class="linenos">1562</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-1563"><a href="#L-1563"><span class="linenos">1563</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-1564"><a href="#L-1564"><span class="linenos">1564</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-1565"><a href="#L-1565"><span class="linenos">1565</span></a> <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 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-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 class="s2">&quot;expression&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 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-1572"><a href="#L-1572"><span class="linenos">1572</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-1573"><a href="#L-1573"><span class="linenos">1573</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 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-1573"><a href="#L-1573"><span class="linenos">1573</span></a> <span class="k">pass</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 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-1576"><a href="#L-1576"><span class="linenos">1576</span></a> <span class="k">pass</span>
-</span><span id="L-1577"><a href="#L-1577"><span class="linenos">1577</span></a>
-</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 class="c1"># https://docs.snowflake.com/en/sql-reference/constructs/connect-by</span>
-</span><span id="L-1580"><a href="#L-1580"><span class="linenos">1580</span></a><span class="k">class</span> <span class="nc">Connect</span><span class="p">(</span><span class="n">Expression</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;start&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;connect&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-1582"><a href="#L-1582"><span class="linenos">1582</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 class="c1"># https://docs.snowflake.com/en/sql-reference/constructs/connect-by</span>
+</span><span id="L-1577"><a href="#L-1577"><span class="linenos">1577</span></a><span class="k">class</span> <span class="nc">Connect</span><span class="p">(</span><span class="n">Expression</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;start&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;connect&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><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">Prior</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-1582"><a href="#L-1582"><span class="linenos">1582</span></a> <span class="k">pass</span>
</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 class="k">class</span> <span class="nc">Prior</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-1585"><a href="#L-1585"><span class="linenos">1585</span></a> <span class="k">pass</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">Directory</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-1589"><a href="#L-1589"><span class="linenos">1589</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-1590"><a href="#L-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 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-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><span id="L-1593"><a href="#L-1593"><span class="linenos">1593</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-1594"><a href="#L-1594"><span class="linenos">1594</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-1595"><a href="#L-1595"><span class="linenos">1595</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-1596"><a href="#L-1596"><span class="linenos">1596</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-1597"><a href="#L-1597"><span class="linenos">1597</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-1598"><a href="#L-1598"><span class="linenos">1598</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-1599"><a href="#L-1599"><span class="linenos">1599</span></a> <span class="p">}</span>
-</span><span id="L-1600"><a href="#L-1600"><span class="linenos">1600</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">Directory</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-1586"><a href="#L-1586"><span class="linenos">1586</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-1587"><a href="#L-1587"><span class="linenos">1587</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1588"><a href="#L-1588"><span class="linenos">1588</span></a>
+</span><span id="L-1589"><a href="#L-1589"><span class="linenos">1589</span></a>
+</span><span id="L-1590"><a href="#L-1590"><span class="linenos">1590</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-1591"><a href="#L-1591"><span class="linenos">1591</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1592"><a href="#L-1592"><span class="linenos">1592</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-1593"><a href="#L-1593"><span class="linenos">1593</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-1594"><a href="#L-1594"><span class="linenos">1594</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-1595"><a href="#L-1595"><span class="linenos">1595</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-1596"><a href="#L-1596"><span class="linenos">1596</span></a> <span class="p">}</span>
+</span><span id="L-1597"><a href="#L-1597"><span class="linenos">1597</span></a>
+</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">ColumnPrefix</span><span class="p">(</span><span class="n">Expression</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 class="s2">&quot;expression&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-1602"><a href="#L-1602"><span class="linenos">1602</span></a><span class="k">class</span> <span class="nc">ColumnPrefix</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-1603"><a href="#L-1603"><span class="linenos">1603</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-1604"><a href="#L-1604"><span class="linenos">1604</span></a>
+</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">PrimaryKey</span><span class="p">(</span><span class="n">Expression</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;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-1605"><a href="#L-1605"><span class="linenos">1605</span></a>
-</span><span id="L-1606"><a href="#L-1606"><span class="linenos">1606</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-1607"><a href="#L-1607"><span class="linenos">1607</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-1608"><a href="#L-1608"><span class="linenos">1608</span></a>
-</span><span id="L-1609"><a href="#L-1609"><span class="linenos">1609</span></a>
-</span><span id="L-1610"><a href="#L-1610"><span class="linenos">1610</span></a><span class="c1"># https://www.postgresql.org/docs/9.1/sql-selectinto.html</span>
-</span><span id="L-1611"><a href="#L-1611"><span class="linenos">1611</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-1612"><a href="#L-1612"><span class="linenos">1612</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-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;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-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">From</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-1617"><a href="#L-1617"><span class="linenos">1617</span></a> <span class="nd">@property</span>
-</span><span id="L-1618"><a href="#L-1618"><span class="linenos">1618</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-1619"><a href="#L-1619"><span class="linenos">1619</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-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="nd">@property</span>
-</span><span id="L-1622"><a href="#L-1622"><span class="linenos">1622</span></a> <span class="k">def</span> <span class="nf">alias_or_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-1623"><a href="#L-1623"><span class="linenos">1623</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-1624"><a href="#L-1624"><span class="linenos">1624</span></a>
+</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="c1"># https://www.postgresql.org/docs/9.1/sql-selectinto.html</span>
+</span><span id="L-1608"><a href="#L-1608"><span class="linenos">1608</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-1609"><a href="#L-1609"><span class="linenos">1609</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-1610"><a href="#L-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;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-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><span id="L-1613"><a href="#L-1613"><span class="linenos">1613</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-1614"><a href="#L-1614"><span class="linenos">1614</span></a> <span class="nd">@property</span>
+</span><span id="L-1615"><a href="#L-1615"><span class="linenos">1615</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-1616"><a href="#L-1616"><span class="linenos">1616</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-1617"><a href="#L-1617"><span class="linenos">1617</span></a>
+</span><span id="L-1618"><a href="#L-1618"><span class="linenos">1618</span></a> <span class="nd">@property</span>
+</span><span id="L-1619"><a href="#L-1619"><span class="linenos">1619</span></a> <span class="k">def</span> <span class="nf">alias_or_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-1620"><a href="#L-1620"><span class="linenos">1620</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-1621"><a href="#L-1621"><span class="linenos">1621</span></a>
+</span><span id="L-1622"><a href="#L-1622"><span class="linenos">1622</span></a>
+</span><span id="L-1623"><a href="#L-1623"><span class="linenos">1623</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-1624"><a href="#L-1624"><span class="linenos">1624</span></a> <span class="k">pass</span>
</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">Having</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-1627"><a href="#L-1627"><span class="linenos">1627</span></a> <span class="k">pass</span>
-</span><span id="L-1628"><a href="#L-1628"><span class="linenos">1628</span></a>
+</span><span id="L-1626"><a href="#L-1626"><span class="linenos">1626</span></a>
+</span><span id="L-1627"><a href="#L-1627"><span class="linenos">1627</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-1628"><a href="#L-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;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</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">Hint</span><span class="p">(</span><span class="n">Expression</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;expressions&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-1630"><a href="#L-1630"><span class="linenos">1630</span></a>
+</span><span id="L-1631"><a href="#L-1631"><span class="linenos">1631</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-1632"><a href="#L-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 class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</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">JoinHint</span><span class="p">(</span><span class="n">Expression</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">True</span><span class="p">}</span>
-</span><span id="L-1636"><a href="#L-1636"><span class="linenos">1636</span></a>
+</span><span id="L-1634"><a href="#L-1634"><span class="linenos">1634</span></a>
+</span><span id="L-1635"><a href="#L-1635"><span class="linenos">1635</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-1636"><a href="#L-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;quoted&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;global&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;temporary&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-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">Identifier</span><span class="p">(</span><span class="n">Expression</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 class="s2">&quot;quoted&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;global&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;temporary&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-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="nd">@property</span>
-</span><span id="L-1642"><a href="#L-1642"><span class="linenos">1642</span></a> <span class="k">def</span> <span class="nf">quoted</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="L-1643"><a href="#L-1643"><span class="linenos">1643</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-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="nd">@property</span>
-</span><span id="L-1646"><a href="#L-1646"><span class="linenos">1646</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-1647"><a href="#L-1647"><span class="linenos">1647</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-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="nd">@property</span>
-</span><span id="L-1650"><a href="#L-1650"><span class="linenos">1650</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-1651"><a href="#L-1651"><span class="linenos">1651</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-1652"><a href="#L-1652"><span class="linenos">1652</span></a>
-</span><span id="L-1653"><a href="#L-1653"><span class="linenos">1653</span></a>
-</span><span id="L-1654"><a href="#L-1654"><span class="linenos">1654</span></a><span class="c1"># https://www.postgresql.org/docs/current/indexes-opclass.html</span>
-</span><span id="L-1655"><a href="#L-1655"><span class="linenos">1655</span></a><span class="k">class</span> <span class="nc">Opclass</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-1656"><a href="#L-1656"><span class="linenos">1656</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-1657"><a href="#L-1657"><span class="linenos">1657</span></a>
-</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 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-1660"><a href="#L-1660"><span class="linenos">1660</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-1661"><a href="#L-1661"><span class="linenos">1661</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-1662"><a href="#L-1662"><span class="linenos">1662</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-1663"><a href="#L-1663"><span class="linenos">1663</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-1664"><a href="#L-1664"><span class="linenos">1664</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-1665"><a href="#L-1665"><span class="linenos">1665</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-1666"><a href="#L-1666"><span class="linenos">1666</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-1667"><a href="#L-1667"><span class="linenos">1667</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-1668"><a href="#L-1668"><span class="linenos">1668</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-1669"><a href="#L-1669"><span class="linenos">1669</span></a> <span class="s2">&quot;partition_by&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="c1"># teradata</span>
-</span><span id="L-1670"><a href="#L-1670"><span class="linenos">1670</span></a> <span class="s2">&quot;where&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="c1"># postgres partial indexes</span>
-</span><span id="L-1671"><a href="#L-1671"><span class="linenos">1671</span></a> <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">Insert</span><span class="p">(</span><span class="n">DDL</span><span class="p">,</span> <span class="n">DML</span><span class="p">):</span>
-</span><span id="L-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><span id="L-1676"><a href="#L-1676"><span class="linenos">1676</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-1677"><a href="#L-1677"><span class="linenos">1677</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-1678"><a href="#L-1678"><span class="linenos">1678</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-1679"><a href="#L-1679"><span class="linenos">1679</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-1680"><a href="#L-1680"><span class="linenos">1680</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-1681"><a href="#L-1681"><span class="linenos">1681</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-1682"><a href="#L-1682"><span class="linenos">1682</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-1683"><a href="#L-1683"><span class="linenos">1683</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-1684"><a href="#L-1684"><span class="linenos">1684</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-1685"><a href="#L-1685"><span class="linenos">1685</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-1686"><a href="#L-1686"><span class="linenos">1686</span></a> <span class="s2">&quot;ignore&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-1687"><a href="#L-1687"><span class="linenos">1687</span></a> <span class="s2">&quot;by_name&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-1688"><a href="#L-1688"><span class="linenos">1688</span></a> <span class="p">}</span>
-</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">def</span> <span class="nf">with_</span><span class="p">(</span>
-</span><span id="L-1691"><a href="#L-1691"><span class="linenos">1691</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-1692"><a href="#L-1692"><span class="linenos">1692</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-1693"><a href="#L-1693"><span class="linenos">1693</span></a> <span class="n">as_</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-1694"><a href="#L-1694"><span class="linenos">1694</span></a> <span class="n">recursive</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-1695"><a href="#L-1695"><span class="linenos">1695</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-1696"><a href="#L-1696"><span class="linenos">1696</span></a> <span class="n">dialect</span><span 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-1697"><a href="#L-1697"><span class="linenos">1697</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-1698"><a href="#L-1698"><span class="linenos">1698</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-1699"><a href="#L-1699"><span class="linenos">1699</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Insert</span><span class="p">:</span>
-</span><span id="L-1700"><a href="#L-1700"><span class="linenos">1700</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-1701"><a href="#L-1701"><span class="linenos">1701</span></a><span class="sd"> Append to or set the common table expressions.</span>
-</span><span id="L-1702"><a href="#L-1702"><span class="linenos">1702</span></a>
-</span><span id="L-1703"><a href="#L-1703"><span class="linenos">1703</span></a><span class="sd"> Example:</span>
-</span><span id="L-1704"><a href="#L-1704"><span class="linenos">1704</span></a><span class="sd"> &gt;&gt;&gt; insert(&quot;SELECT x FROM cte&quot;, &quot;t&quot;).with_(&quot;cte&quot;, as_=&quot;SELECT * FROM tbl&quot;).sql()</span>
-</span><span id="L-1705"><a href="#L-1705"><span class="linenos">1705</span></a><span class="sd"> &#39;WITH cte AS (SELECT * FROM tbl) INSERT INTO t SELECT x FROM cte&#39;</span>
-</span><span id="L-1706"><a href="#L-1706"><span class="linenos">1706</span></a>
-</span><span id="L-1707"><a href="#L-1707"><span class="linenos">1707</span></a><span class="sd"> Args:</span>
-</span><span id="L-1708"><a href="#L-1708"><span class="linenos">1708</span></a><span class="sd"> alias: the SQL code string to parse as the table name.</span>
-</span><span id="L-1709"><a href="#L-1709"><span class="linenos">1709</span></a><span class="sd"> If an `Expression` instance is passed, this is used as-is.</span>
-</span><span id="L-1710"><a href="#L-1710"><span class="linenos">1710</span></a><span class="sd"> as_: the SQL code string to parse as the table expression.</span>
-</span><span id="L-1711"><a href="#L-1711"><span class="linenos">1711</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-1712"><a href="#L-1712"><span class="linenos">1712</span></a><span class="sd"> recursive: set the RECURSIVE part of the expression. Defaults to `False`.</span>
-</span><span id="L-1713"><a href="#L-1713"><span class="linenos">1713</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="L-1714"><a href="#L-1714"><span class="linenos">1714</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="L-1715"><a href="#L-1715"><span class="linenos">1715</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-1716"><a href="#L-1716"><span class="linenos">1716</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="L-1717"><a href="#L-1717"><span class="linenos">1717</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="L-1718"><a href="#L-1718"><span class="linenos">1718</span></a>
-</span><span id="L-1719"><a href="#L-1719"><span class="linenos">1719</span></a><span class="sd"> Returns:</span>
-</span><span id="L-1720"><a href="#L-1720"><span class="linenos">1720</span></a><span class="sd"> The modified expression.</span>
-</span><span id="L-1721"><a href="#L-1721"><span class="linenos">1721</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-1722"><a href="#L-1722"><span class="linenos">1722</span></a> <span class="k">return</span> <span class="n">_apply_cte_builder</span><span class="p">(</span>
-</span><span id="L-1723"><a href="#L-1723"><span class="linenos">1723</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="p">,</span> <span class="n">as_</span><span class="p">,</span> <span class="n">recursive</span><span class="o">=</span><span class="n">recursive</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="L-1724"><a href="#L-1724"><span class="linenos">1724</span></a> <span class="p">)</span>
-</span><span id="L-1725"><a href="#L-1725"><span class="linenos">1725</span></a>
-</span><span id="L-1726"><a href="#L-1726"><span class="linenos">1726</span></a>
-</span><span id="L-1727"><a href="#L-1727"><span class="linenos">1727</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-1728"><a href="#L-1728"><span class="linenos">1728</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-1729"><a href="#L-1729"><span class="linenos">1729</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-1730"><a href="#L-1730"><span class="linenos">1730</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-1731"><a href="#L-1731"><span class="linenos">1731</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-1732"><a href="#L-1732"><span class="linenos">1732</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-1733"><a href="#L-1733"><span class="linenos">1733</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-1734"><a href="#L-1734"><span class="linenos">1734</span></a> <span class="p">}</span>
-</span><span id="L-1735"><a href="#L-1735"><span class="linenos">1735</span></a>
+</span><span id="L-1638"><a href="#L-1638"><span class="linenos">1638</span></a> <span class="nd">@property</span>
+</span><span id="L-1639"><a href="#L-1639"><span class="linenos">1639</span></a> <span class="k">def</span> <span class="nf">quoted</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="L-1640"><a href="#L-1640"><span class="linenos">1640</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-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="nd">@property</span>
+</span><span id="L-1643"><a href="#L-1643"><span class="linenos">1643</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-1644"><a href="#L-1644"><span class="linenos">1644</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-1645"><a href="#L-1645"><span class="linenos">1645</span></a>
+</span><span id="L-1646"><a href="#L-1646"><span class="linenos">1646</span></a> <span class="nd">@property</span>
+</span><span id="L-1647"><a href="#L-1647"><span class="linenos">1647</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-1648"><a href="#L-1648"><span class="linenos">1648</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-1649"><a href="#L-1649"><span class="linenos">1649</span></a>
+</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 class="c1"># https://www.postgresql.org/docs/current/indexes-opclass.html</span>
+</span><span id="L-1652"><a href="#L-1652"><span class="linenos">1652</span></a><span class="k">class</span> <span class="nc">Opclass</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-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;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-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">Index</span><span class="p">(</span><span class="n">Expression</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><span id="L-1658"><a href="#L-1658"><span class="linenos">1658</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-1659"><a href="#L-1659"><span class="linenos">1659</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-1660"><a href="#L-1660"><span class="linenos">1660</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-1661"><a href="#L-1661"><span class="linenos">1661</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-1662"><a href="#L-1662"><span class="linenos">1662</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-1663"><a href="#L-1663"><span class="linenos">1663</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-1664"><a href="#L-1664"><span class="linenos">1664</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-1665"><a href="#L-1665"><span class="linenos">1665</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-1666"><a href="#L-1666"><span class="linenos">1666</span></a> <span class="s2">&quot;partition_by&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="c1"># teradata</span>
+</span><span id="L-1667"><a href="#L-1667"><span class="linenos">1667</span></a> <span class="s2">&quot;where&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="c1"># postgres partial indexes</span>
+</span><span id="L-1668"><a href="#L-1668"><span class="linenos">1668</span></a> <span class="p">}</span>
+</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><span id="L-1671"><a href="#L-1671"><span class="linenos">1671</span></a><span class="k">class</span> <span class="nc">Insert</span><span class="p">(</span><span class="n">DDL</span><span class="p">,</span> <span class="n">DML</span><span class="p">):</span>
+</span><span id="L-1672"><a href="#L-1672"><span class="linenos">1672</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1673"><a href="#L-1673"><span class="linenos">1673</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-1674"><a href="#L-1674"><span class="linenos">1674</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-1675"><a href="#L-1675"><span class="linenos">1675</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-1676"><a href="#L-1676"><span class="linenos">1676</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-1677"><a href="#L-1677"><span class="linenos">1677</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-1678"><a href="#L-1678"><span class="linenos">1678</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-1679"><a href="#L-1679"><span class="linenos">1679</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-1680"><a href="#L-1680"><span class="linenos">1680</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-1681"><a href="#L-1681"><span class="linenos">1681</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-1682"><a href="#L-1682"><span class="linenos">1682</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-1683"><a href="#L-1683"><span class="linenos">1683</span></a> <span class="s2">&quot;ignore&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-1684"><a href="#L-1684"><span class="linenos">1684</span></a> <span class="s2">&quot;by_name&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-1685"><a href="#L-1685"><span class="linenos">1685</span></a> <span class="p">}</span>
+</span><span id="L-1686"><a href="#L-1686"><span class="linenos">1686</span></a>
+</span><span id="L-1687"><a href="#L-1687"><span class="linenos">1687</span></a> <span class="k">def</span> <span class="nf">with_</span><span class="p">(</span>
+</span><span id="L-1688"><a href="#L-1688"><span class="linenos">1688</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-1689"><a href="#L-1689"><span class="linenos">1689</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-1690"><a href="#L-1690"><span class="linenos">1690</span></a> <span class="n">as_</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-1691"><a href="#L-1691"><span class="linenos">1691</span></a> <span class="n">recursive</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-1692"><a href="#L-1692"><span class="linenos">1692</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-1693"><a href="#L-1693"><span class="linenos">1693</span></a> <span class="n">dialect</span><span 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-1694"><a href="#L-1694"><span class="linenos">1694</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-1695"><a href="#L-1695"><span class="linenos">1695</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-1696"><a href="#L-1696"><span class="linenos">1696</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Insert</span><span class="p">:</span>
+</span><span id="L-1697"><a href="#L-1697"><span class="linenos">1697</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-1698"><a href="#L-1698"><span class="linenos">1698</span></a><span class="sd"> Append to or set the common table expressions.</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 class="sd"> Example:</span>
+</span><span id="L-1701"><a href="#L-1701"><span class="linenos">1701</span></a><span class="sd"> &gt;&gt;&gt; insert(&quot;SELECT x FROM cte&quot;, &quot;t&quot;).with_(&quot;cte&quot;, as_=&quot;SELECT * FROM tbl&quot;).sql()</span>
+</span><span id="L-1702"><a href="#L-1702"><span class="linenos">1702</span></a><span class="sd"> &#39;WITH cte AS (SELECT * FROM tbl) INSERT INTO t SELECT x FROM cte&#39;</span>
+</span><span id="L-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 class="sd"> Args:</span>
+</span><span id="L-1705"><a href="#L-1705"><span class="linenos">1705</span></a><span class="sd"> alias: the SQL code string to parse as the table name.</span>
+</span><span id="L-1706"><a href="#L-1706"><span class="linenos">1706</span></a><span class="sd"> If an `Expression` instance is passed, this is used as-is.</span>
+</span><span id="L-1707"><a href="#L-1707"><span class="linenos">1707</span></a><span class="sd"> as_: the SQL code string to parse as the table expression.</span>
+</span><span id="L-1708"><a href="#L-1708"><span class="linenos">1708</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-1709"><a href="#L-1709"><span class="linenos">1709</span></a><span class="sd"> recursive: set the RECURSIVE part of the expression. Defaults to `False`.</span>
+</span><span id="L-1710"><a href="#L-1710"><span class="linenos">1710</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="L-1711"><a href="#L-1711"><span class="linenos">1711</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="L-1712"><a href="#L-1712"><span class="linenos">1712</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-1713"><a href="#L-1713"><span class="linenos">1713</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-1714"><a href="#L-1714"><span class="linenos">1714</span></a><span class="sd"> opts: other options to use to parse the input expressions.</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 class="sd"> Returns:</span>
+</span><span id="L-1717"><a href="#L-1717"><span class="linenos">1717</span></a><span class="sd"> The modified expression.</span>
+</span><span id="L-1718"><a href="#L-1718"><span class="linenos">1718</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-1719"><a href="#L-1719"><span class="linenos">1719</span></a> <span class="k">return</span> <span class="n">_apply_cte_builder</span><span class="p">(</span>
+</span><span id="L-1720"><a href="#L-1720"><span class="linenos">1720</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="p">,</span> <span class="n">as_</span><span class="p">,</span> <span class="n">recursive</span><span class="o">=</span><span class="n">recursive</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="L-1721"><a href="#L-1721"><span class="linenos">1721</span></a> <span class="p">)</span>
+</span><span id="L-1722"><a href="#L-1722"><span class="linenos">1722</span></a>
+</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 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-1725"><a href="#L-1725"><span class="linenos">1725</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1726"><a href="#L-1726"><span class="linenos">1726</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-1727"><a href="#L-1727"><span class="linenos">1727</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-1728"><a href="#L-1728"><span class="linenos">1728</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-1729"><a href="#L-1729"><span class="linenos">1729</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-1730"><a href="#L-1730"><span class="linenos">1730</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-1731"><a href="#L-1731"><span class="linenos">1731</span></a> <span class="p">}</span>
+</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><span id="L-1734"><a href="#L-1734"><span class="linenos">1734</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-1735"><a href="#L-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;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;into&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-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">Returning</span><span class="p">(</span><span class="n">Expression</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;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;into&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-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="c1"># https://dev.mysql.com/doc/refman/8.0/en/charset-introducer.html</span>
-</span><span id="L-1742"><a href="#L-1742"><span class="linenos">1742</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-1743"><a href="#L-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;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-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><span id="L-1746"><a href="#L-1746"><span class="linenos">1746</span></a><span class="c1"># national char, like n&#39;utf8&#39;</span>
-</span><span id="L-1747"><a href="#L-1747"><span class="linenos">1747</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-1748"><a href="#L-1748"><span class="linenos">1748</span></a> <span class="k">pass</span>
-</span><span id="L-1749"><a href="#L-1749"><span class="linenos">1749</span></a>
-</span><span id="L-1750"><a href="#L-1750"><span class="linenos">1750</span></a>
-</span><span id="L-1751"><a href="#L-1751"><span class="linenos">1751</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-1752"><a href="#L-1752"><span class="linenos">1752</span></a> <span class="n">arg_types</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;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-1754"><a href="#L-1754"><span class="linenos">1754</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-1755"><a href="#L-1755"><span class="linenos">1755</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-1756"><a href="#L-1756"><span class="linenos">1756</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-1757"><a href="#L-1757"><span class="linenos">1757</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-1758"><a href="#L-1758"><span class="linenos">1758</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-1759"><a href="#L-1759"><span class="linenos">1759</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-1760"><a href="#L-1760"><span class="linenos">1760</span></a> <span class="p">}</span>
-</span><span id="L-1761"><a href="#L-1761"><span class="linenos">1761</span></a>
+</span><span id="L-1737"><a href="#L-1737"><span class="linenos">1737</span></a>
+</span><span id="L-1738"><a href="#L-1738"><span class="linenos">1738</span></a><span class="c1"># https://dev.mysql.com/doc/refman/8.0/en/charset-introducer.html</span>
+</span><span id="L-1739"><a href="#L-1739"><span class="linenos">1739</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-1740"><a href="#L-1740"><span class="linenos">1740</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-1741"><a href="#L-1741"><span class="linenos">1741</span></a>
+</span><span id="L-1742"><a href="#L-1742"><span class="linenos">1742</span></a>
+</span><span id="L-1743"><a href="#L-1743"><span class="linenos">1743</span></a><span class="c1"># national char, like n&#39;utf8&#39;</span>
+</span><span id="L-1744"><a href="#L-1744"><span class="linenos">1744</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-1745"><a href="#L-1745"><span class="linenos">1745</span></a> <span class="k">pass</span>
+</span><span id="L-1746"><a href="#L-1746"><span class="linenos">1746</span></a>
+</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 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-1749"><a href="#L-1749"><span class="linenos">1749</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1750"><a href="#L-1750"><span class="linenos">1750</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-1751"><a href="#L-1751"><span class="linenos">1751</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-1752"><a href="#L-1752"><span class="linenos">1752</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-1753"><a href="#L-1753"><span class="linenos">1753</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-1754"><a href="#L-1754"><span class="linenos">1754</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-1755"><a href="#L-1755"><span class="linenos">1755</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-1756"><a href="#L-1756"><span class="linenos">1756</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-1757"><a href="#L-1757"><span class="linenos">1757</span></a> <span class="p">}</span>
+</span><span id="L-1758"><a href="#L-1758"><span class="linenos">1758</span></a>
+</span><span id="L-1759"><a href="#L-1759"><span class="linenos">1759</span></a>
+</span><span id="L-1760"><a href="#L-1760"><span class="linenos">1760</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-1761"><a href="#L-1761"><span class="linenos">1761</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-1762"><a href="#L-1762"><span class="linenos">1762</span></a>
-</span><span id="L-1763"><a href="#L-1763"><span class="linenos">1763</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-1764"><a href="#L-1764"><span class="linenos">1764</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-1765"><a href="#L-1765"><span class="linenos">1765</span></a>
-</span><span id="L-1766"><a href="#L-1766"><span class="linenos">1766</span></a>
-</span><span id="L-1767"><a href="#L-1767"><span class="linenos">1767</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-1768"><a href="#L-1768"><span class="linenos">1768</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-1769"><a href="#L-1769"><span class="linenos">1769</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-1770"><a href="#L-1770"><span class="linenos">1770</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-1771"><a href="#L-1771"><span class="linenos">1771</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-1772"><a href="#L-1772"><span class="linenos">1772</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-1773"><a href="#L-1773"><span class="linenos">1773</span></a> <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><span id="L-1776"><a href="#L-1776"><span class="linenos">1776</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-1777"><a href="#L-1777"><span class="linenos">1777</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-1778"><a href="#L-1778"><span class="linenos">1778</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-1779"><a href="#L-1779"><span class="linenos">1779</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-1780"><a href="#L-1780"><span class="linenos">1780</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-1781"><a href="#L-1781"><span class="linenos">1781</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-1782"><a href="#L-1782"><span class="linenos">1782</span></a> <span class="s2">&quot;totals&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-1783"><a href="#L-1783"><span class="linenos">1783</span></a> <span class="s2">&quot;all&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-1784"><a href="#L-1784"><span class="linenos">1784</span></a> <span class="p">}</span>
-</span><span id="L-1785"><a href="#L-1785"><span class="linenos">1785</span></a>
+</span><span id="L-1763"><a href="#L-1763"><span class="linenos">1763</span></a>
+</span><span id="L-1764"><a href="#L-1764"><span class="linenos">1764</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-1765"><a href="#L-1765"><span class="linenos">1765</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1766"><a href="#L-1766"><span class="linenos">1766</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-1767"><a href="#L-1767"><span class="linenos">1767</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-1768"><a href="#L-1768"><span class="linenos">1768</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-1769"><a href="#L-1769"><span class="linenos">1769</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-1770"><a href="#L-1770"><span class="linenos">1770</span></a> <span class="p">}</span>
+</span><span id="L-1771"><a href="#L-1771"><span class="linenos">1771</span></a>
+</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="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-1774"><a href="#L-1774"><span class="linenos">1774</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1775"><a href="#L-1775"><span class="linenos">1775</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-1776"><a href="#L-1776"><span class="linenos">1776</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-1777"><a href="#L-1777"><span class="linenos">1777</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-1778"><a href="#L-1778"><span class="linenos">1778</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-1779"><a href="#L-1779"><span class="linenos">1779</span></a> <span class="s2">&quot;totals&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-1780"><a href="#L-1780"><span class="linenos">1780</span></a> <span class="s2">&quot;all&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-1781"><a href="#L-1781"><span class="linenos">1781</span></a> <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">Lambda</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;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-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 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-1788"><a href="#L-1788"><span class="linenos">1788</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1789"><a href="#L-1789"><span class="linenos">1789</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">Limit</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-1789"><a href="#L-1789"><span class="linenos">1789</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;offset&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-1790"><a href="#L-1790"><span class="linenos">1790</span></a>
-</span><span id="L-1791"><a href="#L-1791"><span class="linenos">1791</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-1792"><a href="#L-1792"><span class="linenos">1792</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;offset&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-1793"><a href="#L-1793"><span class="linenos">1793</span></a>
+</span><span id="L-1791"><a href="#L-1791"><span class="linenos">1791</span></a>
+</span><span id="L-1792"><a href="#L-1792"><span class="linenos">1792</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-1793"><a href="#L-1793"><span class="linenos">1793</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1794"><a href="#L-1794"><span class="linenos">1794</span></a>
-</span><span id="L-1795"><a href="#L-1795"><span class="linenos">1795</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-1796"><a href="#L-1796"><span class="linenos">1796</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-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="nd">@property</span>
-</span><span id="L-1799"><a href="#L-1799"><span class="linenos">1799</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-1800"><a href="#L-1800"><span class="linenos">1800</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-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="nd">@classmethod</span>
-</span><span id="L-1803"><a href="#L-1803"><span class="linenos">1803</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-1804"><a href="#L-1804"><span class="linenos">1804</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-1805"><a href="#L-1805"><span class="linenos">1805</span></a>
-</span><span id="L-1806"><a href="#L-1806"><span class="linenos">1806</span></a> <span class="nd">@classmethod</span>
-</span><span id="L-1807"><a href="#L-1807"><span class="linenos">1807</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-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">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-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 class="nd">@property</span>
-</span><span id="L-1811"><a href="#L-1811"><span class="linenos">1811</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-1812"><a href="#L-1812"><span class="linenos">1812</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-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><span id="L-1815"><a href="#L-1815"><span class="linenos">1815</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-1816"><a href="#L-1816"><span class="linenos">1816</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-1817"><a href="#L-1817"><span class="linenos">1817</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-1818"><a href="#L-1818"><span class="linenos">1818</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-1819"><a href="#L-1819"><span class="linenos">1819</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-1820"><a href="#L-1820"><span class="linenos">1820</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-1821"><a href="#L-1821"><span class="linenos">1821</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-1822"><a href="#L-1822"><span class="linenos">1822</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-1823"><a href="#L-1823"><span class="linenos">1823</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-1824"><a href="#L-1824"><span class="linenos">1824</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-1825"><a href="#L-1825"><span class="linenos">1825</span></a> <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 class="nd">@property</span>
-</span><span id="L-1828"><a href="#L-1828"><span class="linenos">1828</span></a> <span class="k">def</span> <span class="nf">method</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-1829"><a href="#L-1829"><span class="linenos">1829</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;method&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
-</span><span id="L-1830"><a href="#L-1830"><span class="linenos">1830</span></a>
-</span><span id="L-1831"><a href="#L-1831"><span class="linenos">1831</span></a> <span class="nd">@property</span>
-</span><span id="L-1832"><a href="#L-1832"><span class="linenos">1832</span></a> <span class="k">def</span> <span class="nf">kind</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-1833"><a href="#L-1833"><span class="linenos">1833</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-1834"><a href="#L-1834"><span class="linenos">1834</span></a>
-</span><span id="L-1835"><a href="#L-1835"><span class="linenos">1835</span></a> <span class="nd">@property</span>
-</span><span id="L-1836"><a href="#L-1836"><span class="linenos">1836</span></a> <span class="k">def</span> <span class="nf">side</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-1837"><a href="#L-1837"><span class="linenos">1837</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-1838"><a href="#L-1838"><span class="linenos">1838</span></a>
-</span><span id="L-1839"><a href="#L-1839"><span class="linenos">1839</span></a> <span class="nd">@property</span>
-</span><span id="L-1840"><a href="#L-1840"><span class="linenos">1840</span></a> <span class="k">def</span> <span class="nf">hint</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-1841"><a href="#L-1841"><span class="linenos">1841</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-1842"><a href="#L-1842"><span class="linenos">1842</span></a>
-</span><span id="L-1843"><a href="#L-1843"><span class="linenos">1843</span></a> <span class="nd">@property</span>
-</span><span id="L-1844"><a href="#L-1844"><span class="linenos">1844</span></a> <span class="k">def</span> <span class="nf">alias_or_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-1845"><a href="#L-1845"><span class="linenos">1845</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-1846"><a href="#L-1846"><span class="linenos">1846</span></a>
-</span><span id="L-1847"><a href="#L-1847"><span class="linenos">1847</span></a> <span class="k">def</span> <span class="nf">on</span><span class="p">(</span>
-</span><span id="L-1848"><a href="#L-1848"><span class="linenos">1848</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-1849"><a href="#L-1849"><span class="linenos">1849</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="L-1850"><a href="#L-1850"><span class="linenos">1850</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-1851"><a href="#L-1851"><span class="linenos">1851</span></a> <span class="n">dialect</span><span 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-1852"><a href="#L-1852"><span class="linenos">1852</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-1853"><a href="#L-1853"><span class="linenos">1853</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-1854"><a href="#L-1854"><span class="linenos">1854</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Join</span><span class="p">:</span>
-</span><span id="L-1855"><a href="#L-1855"><span class="linenos">1855</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-1856"><a href="#L-1856"><span class="linenos">1856</span></a><span class="sd"> Append to or set the ON 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"> Example:</span>
-</span><span id="L-1859"><a href="#L-1859"><span class="linenos">1859</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="L-1860"><a href="#L-1860"><span class="linenos">1860</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-1861"><a href="#L-1861"><span class="linenos">1861</span></a><span class="sd"> &#39;JOIN x ON y = 1&#39;</span>
-</span><span id="L-1862"><a href="#L-1862"><span class="linenos">1862</span></a>
-</span><span id="L-1863"><a href="#L-1863"><span class="linenos">1863</span></a><span class="sd"> Args:</span>
-</span><span id="L-1864"><a href="#L-1864"><span class="linenos">1864</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="L-1865"><a href="#L-1865"><span class="linenos">1865</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-1866"><a href="#L-1866"><span class="linenos">1866</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
-</span><span id="L-1867"><a href="#L-1867"><span class="linenos">1867</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
-</span><span id="L-1868"><a href="#L-1868"><span class="linenos">1868</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="L-1869"><a href="#L-1869"><span class="linenos">1869</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="L-1870"><a href="#L-1870"><span class="linenos">1870</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="L-1871"><a href="#L-1871"><span class="linenos">1871</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="L-1872"><a href="#L-1872"><span class="linenos">1872</span></a>
-</span><span id="L-1873"><a href="#L-1873"><span class="linenos">1873</span></a><span class="sd"> Returns:</span>
-</span><span id="L-1874"><a href="#L-1874"><span class="linenos">1874</span></a><span class="sd"> The modified Join expression.</span>
-</span><span id="L-1875"><a href="#L-1875"><span class="linenos">1875</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-1876"><a href="#L-1876"><span class="linenos">1876</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-1877"><a href="#L-1877"><span class="linenos">1877</span></a> <span class="o">*</span><span class="n">expressions</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;on&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">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-1882"><a href="#L-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="L-1883"><a href="#L-1883"><span class="linenos">1883</span></a> <span class="o">**</span><span class="n">opts</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-1795"><a href="#L-1795"><span class="linenos">1795</span></a> <span class="nd">@property</span>
+</span><span id="L-1796"><a href="#L-1796"><span class="linenos">1796</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-1797"><a href="#L-1797"><span class="linenos">1797</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-1798"><a href="#L-1798"><span class="linenos">1798</span></a>
+</span><span id="L-1799"><a href="#L-1799"><span class="linenos">1799</span></a> <span class="nd">@classmethod</span>
+</span><span id="L-1800"><a href="#L-1800"><span class="linenos">1800</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-1801"><a href="#L-1801"><span class="linenos">1801</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-1802"><a href="#L-1802"><span class="linenos">1802</span></a>
+</span><span id="L-1803"><a href="#L-1803"><span class="linenos">1803</span></a> <span class="nd">@classmethod</span>
+</span><span id="L-1804"><a href="#L-1804"><span class="linenos">1804</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-1805"><a href="#L-1805"><span class="linenos">1805</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-1806"><a href="#L-1806"><span class="linenos">1806</span></a>
+</span><span id="L-1807"><a href="#L-1807"><span class="linenos">1807</span></a> <span class="nd">@property</span>
+</span><span id="L-1808"><a href="#L-1808"><span class="linenos">1808</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-1809"><a href="#L-1809"><span class="linenos">1809</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-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><span id="L-1812"><a href="#L-1812"><span class="linenos">1812</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-1813"><a href="#L-1813"><span class="linenos">1813</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1814"><a href="#L-1814"><span class="linenos">1814</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-1815"><a href="#L-1815"><span class="linenos">1815</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-1816"><a href="#L-1816"><span class="linenos">1816</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-1817"><a href="#L-1817"><span class="linenos">1817</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-1818"><a href="#L-1818"><span class="linenos">1818</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-1819"><a href="#L-1819"><span class="linenos">1819</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-1820"><a href="#L-1820"><span class="linenos">1820</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-1821"><a href="#L-1821"><span class="linenos">1821</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-1822"><a href="#L-1822"><span class="linenos">1822</span></a> <span class="p">}</span>
+</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="nd">@property</span>
+</span><span id="L-1825"><a href="#L-1825"><span class="linenos">1825</span></a> <span class="k">def</span> <span class="nf">method</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-1826"><a href="#L-1826"><span class="linenos">1826</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;method&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
+</span><span id="L-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="nd">@property</span>
+</span><span id="L-1829"><a href="#L-1829"><span class="linenos">1829</span></a> <span class="k">def</span> <span class="nf">kind</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-1830"><a href="#L-1830"><span class="linenos">1830</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-1831"><a href="#L-1831"><span class="linenos">1831</span></a>
+</span><span id="L-1832"><a href="#L-1832"><span class="linenos">1832</span></a> <span class="nd">@property</span>
+</span><span id="L-1833"><a href="#L-1833"><span class="linenos">1833</span></a> <span class="k">def</span> <span class="nf">side</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-1834"><a href="#L-1834"><span class="linenos">1834</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-1835"><a href="#L-1835"><span class="linenos">1835</span></a>
+</span><span id="L-1836"><a href="#L-1836"><span class="linenos">1836</span></a> <span class="nd">@property</span>
+</span><span id="L-1837"><a href="#L-1837"><span class="linenos">1837</span></a> <span class="k">def</span> <span class="nf">hint</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-1838"><a href="#L-1838"><span class="linenos">1838</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-1839"><a href="#L-1839"><span class="linenos">1839</span></a>
+</span><span id="L-1840"><a href="#L-1840"><span class="linenos">1840</span></a> <span class="nd">@property</span>
+</span><span id="L-1841"><a href="#L-1841"><span class="linenos">1841</span></a> <span class="k">def</span> <span class="nf">alias_or_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-1842"><a href="#L-1842"><span class="linenos">1842</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-1843"><a href="#L-1843"><span class="linenos">1843</span></a>
+</span><span id="L-1844"><a href="#L-1844"><span class="linenos">1844</span></a> <span class="k">def</span> <span class="nf">on</span><span class="p">(</span>
+</span><span id="L-1845"><a href="#L-1845"><span class="linenos">1845</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-1846"><a href="#L-1846"><span class="linenos">1846</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="L-1847"><a href="#L-1847"><span class="linenos">1847</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-1848"><a href="#L-1848"><span class="linenos">1848</span></a> <span class="n">dialect</span><span 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-1849"><a href="#L-1849"><span class="linenos">1849</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-1850"><a href="#L-1850"><span class="linenos">1850</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-1851"><a href="#L-1851"><span class="linenos">1851</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Join</span><span class="p">:</span>
+</span><span id="L-1852"><a href="#L-1852"><span class="linenos">1852</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-1853"><a href="#L-1853"><span class="linenos">1853</span></a><span class="sd"> Append to or set the ON expressions.</span>
+</span><span id="L-1854"><a href="#L-1854"><span class="linenos">1854</span></a>
+</span><span id="L-1855"><a href="#L-1855"><span class="linenos">1855</span></a><span class="sd"> Example:</span>
+</span><span id="L-1856"><a href="#L-1856"><span class="linenos">1856</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="L-1857"><a href="#L-1857"><span class="linenos">1857</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-1858"><a href="#L-1858"><span class="linenos">1858</span></a><span class="sd"> &#39;JOIN x ON y = 1&#39;</span>
+</span><span id="L-1859"><a href="#L-1859"><span class="linenos">1859</span></a>
+</span><span id="L-1860"><a href="#L-1860"><span class="linenos">1860</span></a><span class="sd"> Args:</span>
+</span><span id="L-1861"><a href="#L-1861"><span class="linenos">1861</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="L-1862"><a href="#L-1862"><span class="linenos">1862</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-1863"><a href="#L-1863"><span class="linenos">1863</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
+</span><span id="L-1864"><a href="#L-1864"><span class="linenos">1864</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
+</span><span id="L-1865"><a href="#L-1865"><span class="linenos">1865</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="L-1866"><a href="#L-1866"><span class="linenos">1866</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="L-1867"><a href="#L-1867"><span class="linenos">1867</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-1868"><a href="#L-1868"><span class="linenos">1868</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-1869"><a href="#L-1869"><span class="linenos">1869</span></a>
+</span><span id="L-1870"><a href="#L-1870"><span class="linenos">1870</span></a><span class="sd"> Returns:</span>
+</span><span id="L-1871"><a href="#L-1871"><span class="linenos">1871</span></a><span class="sd"> The modified Join expression.</span>
+</span><span id="L-1872"><a href="#L-1872"><span class="linenos">1872</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-1873"><a href="#L-1873"><span class="linenos">1873</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-1874"><a href="#L-1874"><span class="linenos">1874</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-1875"><a href="#L-1875"><span class="linenos">1875</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-1876"><a href="#L-1876"><span class="linenos">1876</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-1877"><a href="#L-1877"><span class="linenos">1877</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-1878"><a href="#L-1878"><span class="linenos">1878</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-1879"><a href="#L-1879"><span class="linenos">1879</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-1880"><a href="#L-1880"><span class="linenos">1880</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-1881"><a href="#L-1881"><span class="linenos">1881</span></a> <span class="p">)</span>
+</span><span id="L-1882"><a href="#L-1882"><span class="linenos">1882</span></a>
+</span><span id="L-1883"><a href="#L-1883"><span class="linenos">1883</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-1884"><a href="#L-1884"><span class="linenos">1884</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-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 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-1887"><a href="#L-1887"><span class="linenos">1887</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-1888"><a href="#L-1888"><span class="linenos">1888</span></a>
-</span><span id="L-1889"><a href="#L-1889"><span class="linenos">1889</span></a> <span class="k">return</span> <span class="n">join</span>
-</span><span id="L-1890"><a href="#L-1890"><span class="linenos">1890</span></a>
-</span><span id="L-1891"><a href="#L-1891"><span class="linenos">1891</span></a> <span class="k">def</span> <span class="nf">using</span><span class="p">(</span>
-</span><span id="L-1892"><a href="#L-1892"><span class="linenos">1892</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-1893"><a href="#L-1893"><span class="linenos">1893</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="L-1894"><a href="#L-1894"><span class="linenos">1894</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-1895"><a href="#L-1895"><span class="linenos">1895</span></a> <span class="n">dialect</span><span 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-1896"><a href="#L-1896"><span class="linenos">1896</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-1897"><a href="#L-1897"><span class="linenos">1897</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-1898"><a href="#L-1898"><span class="linenos">1898</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Join</span><span class="p">:</span>
-</span><span id="L-1899"><a href="#L-1899"><span class="linenos">1899</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-1900"><a href="#L-1900"><span class="linenos">1900</span></a><span class="sd"> Append to or set the USING expressions.</span>
-</span><span id="L-1901"><a href="#L-1901"><span class="linenos">1901</span></a>
-</span><span id="L-1902"><a href="#L-1902"><span class="linenos">1902</span></a><span class="sd"> Example:</span>
-</span><span id="L-1903"><a href="#L-1903"><span class="linenos">1903</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="L-1904"><a href="#L-1904"><span class="linenos">1904</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-1905"><a href="#L-1905"><span class="linenos">1905</span></a><span class="sd"> &#39;JOIN x USING (foo, bla)&#39;</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 class="sd"> Args:</span>
-</span><span id="L-1908"><a href="#L-1908"><span class="linenos">1908</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="L-1909"><a href="#L-1909"><span class="linenos">1909</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-1910"><a href="#L-1910"><span class="linenos">1910</span></a><span class="sd"> append: if `True`, concatenate the new expressions to the existing &quot;using&quot; list.</span>
-</span><span id="L-1911"><a href="#L-1911"><span class="linenos">1911</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="L-1912"><a href="#L-1912"><span class="linenos">1912</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="L-1913"><a href="#L-1913"><span class="linenos">1913</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="L-1914"><a href="#L-1914"><span class="linenos">1914</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="L-1915"><a href="#L-1915"><span class="linenos">1915</span></a>
-</span><span id="L-1916"><a href="#L-1916"><span class="linenos">1916</span></a><span class="sd"> Returns:</span>
-</span><span id="L-1917"><a href="#L-1917"><span class="linenos">1917</span></a><span class="sd"> The modified Join expression.</span>
-</span><span id="L-1918"><a href="#L-1918"><span class="linenos">1918</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-1919"><a href="#L-1919"><span class="linenos">1919</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-1920"><a href="#L-1920"><span class="linenos">1920</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-1921"><a href="#L-1921"><span class="linenos">1921</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-1922"><a href="#L-1922"><span class="linenos">1922</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-1923"><a href="#L-1923"><span class="linenos">1923</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-1924"><a href="#L-1924"><span class="linenos">1924</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-1925"><a href="#L-1925"><span class="linenos">1925</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-1926"><a href="#L-1926"><span class="linenos">1926</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-1927"><a href="#L-1927"><span class="linenos">1927</span></a> <span class="p">)</span>
+</span><span id="L-1886"><a href="#L-1886"><span class="linenos">1886</span></a> <span class="k">return</span> <span class="n">join</span>
+</span><span id="L-1887"><a href="#L-1887"><span class="linenos">1887</span></a>
+</span><span id="L-1888"><a href="#L-1888"><span class="linenos">1888</span></a> <span class="k">def</span> <span class="nf">using</span><span class="p">(</span>
+</span><span id="L-1889"><a href="#L-1889"><span class="linenos">1889</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-1890"><a href="#L-1890"><span class="linenos">1890</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="L-1891"><a href="#L-1891"><span class="linenos">1891</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-1892"><a href="#L-1892"><span class="linenos">1892</span></a> <span class="n">dialect</span><span 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-1893"><a href="#L-1893"><span class="linenos">1893</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-1894"><a href="#L-1894"><span class="linenos">1894</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-1895"><a href="#L-1895"><span class="linenos">1895</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Join</span><span class="p">:</span>
+</span><span id="L-1896"><a href="#L-1896"><span class="linenos">1896</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-1897"><a href="#L-1897"><span class="linenos">1897</span></a><span class="sd"> Append to or set the USING expressions.</span>
+</span><span id="L-1898"><a href="#L-1898"><span class="linenos">1898</span></a>
+</span><span id="L-1899"><a href="#L-1899"><span class="linenos">1899</span></a><span class="sd"> Example:</span>
+</span><span id="L-1900"><a href="#L-1900"><span class="linenos">1900</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="L-1901"><a href="#L-1901"><span class="linenos">1901</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-1902"><a href="#L-1902"><span class="linenos">1902</span></a><span class="sd"> &#39;JOIN x USING (foo, bla)&#39;</span>
+</span><span id="L-1903"><a href="#L-1903"><span class="linenos">1903</span></a>
+</span><span id="L-1904"><a href="#L-1904"><span class="linenos">1904</span></a><span class="sd"> Args:</span>
+</span><span id="L-1905"><a href="#L-1905"><span class="linenos">1905</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="L-1906"><a href="#L-1906"><span class="linenos">1906</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-1907"><a href="#L-1907"><span class="linenos">1907</span></a><span class="sd"> append: if `True`, concatenate the new expressions to the existing &quot;using&quot; list.</span>
+</span><span id="L-1908"><a href="#L-1908"><span class="linenos">1908</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="L-1909"><a href="#L-1909"><span class="linenos">1909</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="L-1910"><a href="#L-1910"><span class="linenos">1910</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-1911"><a href="#L-1911"><span class="linenos">1911</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-1912"><a href="#L-1912"><span class="linenos">1912</span></a>
+</span><span id="L-1913"><a href="#L-1913"><span class="linenos">1913</span></a><span class="sd"> Returns:</span>
+</span><span id="L-1914"><a href="#L-1914"><span class="linenos">1914</span></a><span class="sd"> The modified Join expression.</span>
+</span><span id="L-1915"><a href="#L-1915"><span class="linenos">1915</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-1916"><a href="#L-1916"><span class="linenos">1916</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-1917"><a href="#L-1917"><span class="linenos">1917</span></a> <span class="o">*</span><span class="n">expressions</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;using&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">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-1922"><a href="#L-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="L-1923"><a href="#L-1923"><span class="linenos">1923</span></a> <span class="o">**</span><span class="n">opts</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 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-1927"><a href="#L-1927"><span class="linenos">1927</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-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 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-1930"><a href="#L-1930"><span class="linenos">1930</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-1929"><a href="#L-1929"><span class="linenos">1929</span></a> <span class="k">return</span> <span class="n">join</span>
+</span><span id="L-1930"><a href="#L-1930"><span class="linenos">1930</span></a>
</span><span id="L-1931"><a href="#L-1931"><span class="linenos">1931</span></a>
-</span><span id="L-1932"><a href="#L-1932"><span class="linenos">1932</span></a> <span class="k">return</span> <span class="n">join</span>
-</span><span id="L-1933"><a href="#L-1933"><span class="linenos">1933</span></a>
-</span><span id="L-1934"><a href="#L-1934"><span class="linenos">1934</span></a>
-</span><span id="L-1935"><a href="#L-1935"><span class="linenos">1935</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-1936"><a href="#L-1936"><span class="linenos">1936</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-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">MatchRecognize</span><span class="p">(</span><span class="n">Expression</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;partition_by&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;order&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;measures&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;rows&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="s2">&quot;after&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-1946"><a href="#L-1946"><span class="linenos">1946</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-1947"><a href="#L-1947"><span class="linenos">1947</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-1948"><a href="#L-1948"><span class="linenos">1948</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-1949"><a href="#L-1949"><span class="linenos">1949</span></a> <span class="p">}</span>
-</span><span id="L-1950"><a href="#L-1950"><span class="linenos">1950</span></a>
-</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="c1"># Clickhouse FROM FINAL modifier</span>
-</span><span id="L-1953"><a href="#L-1953"><span class="linenos">1953</span></a><span class="c1"># https://clickhouse.com/docs/en/sql-reference/statements/select/from/#final-modifier</span>
-</span><span id="L-1954"><a href="#L-1954"><span class="linenos">1954</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-1955"><a href="#L-1955"><span class="linenos">1955</span></a> <span class="k">pass</span>
-</span><span id="L-1956"><a href="#L-1956"><span class="linenos">1956</span></a>
-</span><span id="L-1957"><a href="#L-1957"><span class="linenos">1957</span></a>
-</span><span id="L-1958"><a href="#L-1958"><span class="linenos">1958</span></a><span class="k">class</span> <span class="nc">Offset</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-1959"><a href="#L-1959"><span class="linenos">1959</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">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-1932"><a href="#L-1932"><span class="linenos">1932</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-1933"><a href="#L-1933"><span class="linenos">1933</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1934"><a href="#L-1934"><span class="linenos">1934</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-1935"><a href="#L-1935"><span class="linenos">1935</span></a> <span class="s2">&quot;view&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-1936"><a href="#L-1936"><span class="linenos">1936</span></a> <span class="s2">&quot;outer&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-1937"><a href="#L-1937"><span class="linenos">1937</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-1938"><a href="#L-1938"><span class="linenos">1938</span></a> <span class="s2">&quot;cross_apply&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="c1"># True -&gt; CROSS APPLY, False -&gt; OUTER APPLY</span>
+</span><span id="L-1939"><a href="#L-1939"><span class="linenos">1939</span></a> <span class="p">}</span>
+</span><span id="L-1940"><a href="#L-1940"><span class="linenos">1940</span></a>
+</span><span id="L-1941"><a href="#L-1941"><span class="linenos">1941</span></a>
+</span><span id="L-1942"><a href="#L-1942"><span class="linenos">1942</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-1943"><a href="#L-1943"><span class="linenos">1943</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1944"><a href="#L-1944"><span class="linenos">1944</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-1945"><a href="#L-1945"><span class="linenos">1945</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-1946"><a href="#L-1946"><span class="linenos">1946</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-1947"><a href="#L-1947"><span class="linenos">1947</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-1948"><a href="#L-1948"><span class="linenos">1948</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-1949"><a href="#L-1949"><span class="linenos">1949</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-1950"><a href="#L-1950"><span class="linenos">1950</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-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="p">}</span>
+</span><span id="L-1953"><a href="#L-1953"><span class="linenos">1953</span></a>
+</span><span id="L-1954"><a href="#L-1954"><span class="linenos">1954</span></a>
+</span><span id="L-1955"><a href="#L-1955"><span class="linenos">1955</span></a><span class="c1"># Clickhouse FROM FINAL modifier</span>
+</span><span id="L-1956"><a href="#L-1956"><span class="linenos">1956</span></a><span class="c1"># https://clickhouse.com/docs/en/sql-reference/statements/select/from/#final-modifier</span>
+</span><span id="L-1957"><a href="#L-1957"><span class="linenos">1957</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-1958"><a href="#L-1958"><span class="linenos">1958</span></a> <span class="k">pass</span>
+</span><span id="L-1959"><a href="#L-1959"><span class="linenos">1959</span></a>
</span><span id="L-1960"><a href="#L-1960"><span class="linenos">1960</span></a>
-</span><span id="L-1961"><a href="#L-1961"><span class="linenos">1961</span></a>
-</span><span id="L-1962"><a href="#L-1962"><span class="linenos">1962</span></a><span class="k">class</span> <span class="nc">Order</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-1963"><a href="#L-1963"><span class="linenos">1963</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span 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-1961"><a href="#L-1961"><span class="linenos">1961</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-1962"><a href="#L-1962"><span class="linenos">1962</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1963"><a href="#L-1963"><span class="linenos">1963</span></a>
</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><span id="L-1966"><a href="#L-1966"><span class="linenos">1966</span></a><span class="c1"># hive specific sorts</span>
-</span><span id="L-1967"><a href="#L-1967"><span class="linenos">1967</span></a><span class="c1"># https://cwiki.apache.org/confluence/display/Hive/LanguageManual+SortBy</span>
-</span><span id="L-1968"><a href="#L-1968"><span class="linenos">1968</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-1969"><a href="#L-1969"><span class="linenos">1969</span></a> <span class="k">pass</span>
-</span><span id="L-1970"><a href="#L-1970"><span class="linenos">1970</span></a>
-</span><span id="L-1971"><a href="#L-1971"><span class="linenos">1971</span></a>
-</span><span id="L-1972"><a href="#L-1972"><span class="linenos">1972</span></a><span 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-1973"><a href="#L-1973"><span class="linenos">1973</span></a> <span class="k">pass</span>
-</span><span id="L-1974"><a href="#L-1974"><span class="linenos">1974</span></a>
-</span><span id="L-1975"><a href="#L-1975"><span class="linenos">1975</span></a>
-</span><span id="L-1976"><a href="#L-1976"><span class="linenos">1976</span></a><span class="k">class</span> <span class="nc">Sort</span><span class="p">(</span><span class="n">Order</span><span class="p">):</span>
+</span><span id="L-1965"><a href="#L-1965"><span class="linenos">1965</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-1966"><a href="#L-1966"><span class="linenos">1966</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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 class="s2">&quot;interpolate&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-1967"><a href="#L-1967"><span class="linenos">1967</span></a>
+</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 class="c1"># https://clickhouse.com/docs/en/sql-reference/statements/select/order-by#order-by-expr-with-fill-modifier</span>
+</span><span id="L-1970"><a href="#L-1970"><span class="linenos">1970</span></a><span class="k">class</span> <span class="nc">WithFill</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-1971"><a href="#L-1971"><span class="linenos">1971</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;from&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;to&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;step&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-1972"><a href="#L-1972"><span class="linenos">1972</span></a>
+</span><span id="L-1973"><a href="#L-1973"><span class="linenos">1973</span></a>
+</span><span id="L-1974"><a href="#L-1974"><span class="linenos">1974</span></a><span class="c1"># hive specific sorts</span>
+</span><span id="L-1975"><a href="#L-1975"><span class="linenos">1975</span></a><span class="c1"># https://cwiki.apache.org/confluence/display/Hive/LanguageManual+SortBy</span>
+</span><span id="L-1976"><a href="#L-1976"><span class="linenos">1976</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-1977"><a href="#L-1977"><span class="linenos">1977</span></a> <span class="k">pass</span>
</span><span id="L-1978"><a href="#L-1978"><span class="linenos">1978</span></a>
</span><span id="L-1979"><a href="#L-1979"><span class="linenos">1979</span></a>
-</span><span id="L-1980"><a href="#L-1980"><span class="linenos">1980</span></a><span class="k">class</span> <span class="nc">Ordered</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-1981"><a href="#L-1981"><span class="linenos">1981</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;desc&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;nulls_first&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-1980"><a href="#L-1980"><span class="linenos">1980</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-1981"><a href="#L-1981"><span class="linenos">1981</span></a> <span class="k">pass</span>
</span><span id="L-1982"><a href="#L-1982"><span class="linenos">1982</span></a>
</span><span id="L-1983"><a href="#L-1983"><span class="linenos">1983</span></a>
-</span><span id="L-1984"><a href="#L-1984"><span class="linenos">1984</span></a><span class="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-1985"><a href="#L-1985"><span class="linenos">1985</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1984"><a href="#L-1984"><span class="linenos">1984</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-1985"><a href="#L-1985"><span class="linenos">1985</span></a> <span class="k">pass</span>
</span><span id="L-1986"><a href="#L-1986"><span class="linenos">1986</span></a>
</span><span id="L-1987"><a href="#L-1987"><span class="linenos">1987</span></a>
-</span><span id="L-1988"><a href="#L-1988"><span class="linenos">1988</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-1989"><a href="#L-1989"><span class="linenos">1989</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-1988"><a href="#L-1988"><span class="linenos">1988</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-1989"><a href="#L-1989"><span class="linenos">1989</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;desc&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;nulls_first&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;with_fill&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-1990"><a href="#L-1990"><span class="linenos">1990</span></a>
</span><span id="L-1991"><a href="#L-1991"><span class="linenos">1991</span></a>
-</span><span id="L-1992"><a href="#L-1992"><span class="linenos">1992</span></a><span class="k">class</span> <span class="nc">AutoIncrementProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-1993"><a href="#L-1993"><span class="linenos">1993</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-1992"><a href="#L-1992"><span class="linenos">1992</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-1993"><a href="#L-1993"><span class="linenos">1993</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span 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-1994"><a href="#L-1994"><span class="linenos">1994</span></a>
</span><span id="L-1995"><a href="#L-1995"><span class="linenos">1995</span></a>
-</span><span id="L-1996"><a href="#L-1996"><span class="linenos">1996</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-1997"><a href="#L-1997"><span class="linenos">1997</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-1996"><a href="#L-1996"><span class="linenos">1996</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-1997"><a href="#L-1997"><span class="linenos">1997</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1998"><a href="#L-1998"><span class="linenos">1998</span></a>
</span><span id="L-1999"><a href="#L-1999"><span class="linenos">1999</span></a>
-</span><span id="L-2000"><a href="#L-2000"><span class="linenos">2000</span></a><span class="k">class</span> <span class="nc">CharacterSetProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2001"><a href="#L-2001"><span class="linenos">2001</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-2000"><a href="#L-2000"><span class="linenos">2000</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-2001"><a href="#L-2001"><span class="linenos">2001</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-2002"><a href="#L-2002"><span class="linenos">2002</span></a>
</span><span id="L-2003"><a href="#L-2003"><span class="linenos">2003</span></a>
-</span><span id="L-2004"><a href="#L-2004"><span class="linenos">2004</span></a><span class="k">class</span> <span class="nc">ChecksumProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2005"><a href="#L-2005"><span class="linenos">2005</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-2006"><a href="#L-2006"><span class="linenos">2006</span></a>
+</span><span id="L-2004"><a href="#L-2004"><span class="linenos">2004</span></a><span class="c1"># https://docs.aws.amazon.com/prescriptive-guidance/latest/materialized-views-redshift/refreshing-materialized-views.html</span>
+</span><span id="L-2005"><a href="#L-2005"><span class="linenos">2005</span></a><span class="k">class</span> <span class="nc">AutoRefreshProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2006"><a href="#L-2006"><span class="linenos">2006</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-2007"><a href="#L-2007"><span class="linenos">2007</span></a>
-</span><span id="L-2008"><a href="#L-2008"><span class="linenos">2008</span></a><span class="k">class</span> <span class="nc">CollateProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2009"><a href="#L-2009"><span class="linenos">2009</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;default&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-2010"><a href="#L-2010"><span class="linenos">2010</span></a>
+</span><span id="L-2008"><a href="#L-2008"><span class="linenos">2008</span></a>
+</span><span id="L-2009"><a href="#L-2009"><span class="linenos">2009</span></a><span class="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-2010"><a href="#L-2010"><span class="linenos">2010</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-2011"><a href="#L-2011"><span class="linenos">2011</span></a>
-</span><span id="L-2012"><a href="#L-2012"><span class="linenos">2012</span></a><span class="k">class</span> <span class="nc">CopyGrantsProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2013"><a href="#L-2013"><span class="linenos">2013</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
-</span><span id="L-2014"><a href="#L-2014"><span class="linenos">2014</span></a>
+</span><span id="L-2012"><a href="#L-2012"><span class="linenos">2012</span></a>
+</span><span id="L-2013"><a href="#L-2013"><span class="linenos">2013</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-2014"><a href="#L-2014"><span class="linenos">2014</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;default&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</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="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-2017"><a href="#L-2017"><span class="linenos">2017</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2018"><a href="#L-2018"><span class="linenos">2018</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-2019"><a href="#L-2019"><span class="linenos">2019</span></a> <span class="s2">&quot;units&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2020"><a href="#L-2020"><span class="linenos">2020</span></a> <span class="s2">&quot;minimum&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2021"><a href="#L-2021"><span class="linenos">2021</span></a> <span class="s2">&quot;maximum&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2022"><a href="#L-2022"><span class="linenos">2022</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-2023"><a href="#L-2023"><span class="linenos">2023</span></a> <span class="p">}</span>
+</span><span id="L-2016"><a href="#L-2016"><span class="linenos">2016</span></a>
+</span><span id="L-2017"><a href="#L-2017"><span class="linenos">2017</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-2018"><a href="#L-2018"><span class="linenos">2018</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-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><span id="L-2021"><a href="#L-2021"><span class="linenos">2021</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-2022"><a href="#L-2022"><span class="linenos">2022</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-2023"><a href="#L-2023"><span class="linenos">2023</span></a>
</span><span id="L-2024"><a href="#L-2024"><span class="linenos">2024</span></a>
-</span><span id="L-2025"><a href="#L-2025"><span class="linenos">2025</span></a>
-</span><span id="L-2026"><a href="#L-2026"><span class="linenos">2026</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-2027"><a href="#L-2027"><span class="linenos">2027</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-2025"><a href="#L-2025"><span class="linenos">2025</span></a><span class="k">class</span> <span class="nc">CopyGrantsProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2026"><a href="#L-2026"><span class="linenos">2026</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
+</span><span id="L-2027"><a href="#L-2027"><span class="linenos">2027</span></a>
</span><span id="L-2028"><a href="#L-2028"><span class="linenos">2028</span></a>
-</span><span id="L-2029"><a href="#L-2029"><span class="linenos">2029</span></a>
-</span><span id="L-2030"><a href="#L-2030"><span class="linenos">2030</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-2031"><a href="#L-2031"><span class="linenos">2031</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><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><span id="L-2034"><a href="#L-2034"><span class="linenos">2034</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-2035"><a href="#L-2035"><span class="linenos">2035</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-2036"><a href="#L-2036"><span class="linenos">2036</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">DataBlocksizeProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2030"><a href="#L-2030"><span class="linenos">2030</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2031"><a href="#L-2031"><span class="linenos">2031</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-2032"><a href="#L-2032"><span class="linenos">2032</span></a> <span class="s2">&quot;units&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2033"><a href="#L-2033"><span class="linenos">2033</span></a> <span class="s2">&quot;minimum&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2034"><a href="#L-2034"><span class="linenos">2034</span></a> <span class="s2">&quot;maximum&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2035"><a href="#L-2035"><span class="linenos">2035</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-2036"><a href="#L-2036"><span class="linenos">2036</span></a> <span class="p">}</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="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-2039"><a href="#L-2039"><span class="linenos">2039</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-2040"><a href="#L-2040"><span class="linenos">2040</span></a>
+</span><span id="L-2038"><a href="#L-2038"><span class="linenos">2038</span></a>
+</span><span id="L-2039"><a href="#L-2039"><span class="linenos">2039</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-2040"><a href="#L-2040"><span class="linenos">2040</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-2041"><a href="#L-2041"><span class="linenos">2041</span></a>
-</span><span id="L-2042"><a href="#L-2042"><span class="linenos">2042</span></a><span class="k">class</span> <span class="nc">HeapProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2043"><a href="#L-2043"><span class="linenos">2043</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
-</span><span id="L-2044"><a href="#L-2044"><span class="linenos">2044</span></a>
+</span><span id="L-2042"><a href="#L-2042"><span class="linenos">2042</span></a>
+</span><span id="L-2043"><a href="#L-2043"><span class="linenos">2043</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-2044"><a href="#L-2044"><span class="linenos">2044</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-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">ToTableProperty</span><span class="p">(</span><span class="n">Property</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 class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-2048"><a href="#L-2048"><span class="linenos">2048</span></a>
+</span><span id="L-2046"><a href="#L-2046"><span class="linenos">2046</span></a>
+</span><span id="L-2047"><a href="#L-2047"><span class="linenos">2047</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-2048"><a href="#L-2048"><span class="linenos">2048</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-2049"><a href="#L-2049"><span class="linenos">2049</span></a>
-</span><span id="L-2050"><a href="#L-2050"><span class="linenos">2050</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-2051"><a href="#L-2051"><span class="linenos">2051</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-2052"><a href="#L-2052"><span class="linenos">2052</span></a>
+</span><span id="L-2050"><a href="#L-2050"><span class="linenos">2050</span></a>
+</span><span id="L-2051"><a href="#L-2051"><span class="linenos">2051</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-2052"><a href="#L-2052"><span class="linenos">2052</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-2053"><a href="#L-2053"><span class="linenos">2053</span></a>
-</span><span id="L-2054"><a href="#L-2054"><span class="linenos">2054</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-2055"><a href="#L-2055"><span class="linenos">2055</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-2056"><a href="#L-2056"><span class="linenos">2056</span></a>
+</span><span id="L-2054"><a href="#L-2054"><span class="linenos">2054</span></a>
+</span><span id="L-2055"><a href="#L-2055"><span class="linenos">2055</span></a><span class="k">class</span> <span class="nc">HeapProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2056"><a href="#L-2056"><span class="linenos">2056</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="L-2057"><a href="#L-2057"><span class="linenos">2057</span></a>
-</span><span id="L-2058"><a href="#L-2058"><span class="linenos">2058</span></a><span class="k">class</span> <span class="nc">FallbackProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2059"><a href="#L-2059"><span class="linenos">2059</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span 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-2060"><a href="#L-2060"><span class="linenos">2060</span></a>
+</span><span id="L-2058"><a href="#L-2058"><span class="linenos">2058</span></a>
+</span><span id="L-2059"><a href="#L-2059"><span class="linenos">2059</span></a><span class="k">class</span> <span class="nc">ToTableProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2060"><a href="#L-2060"><span class="linenos">2060</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-2061"><a href="#L-2061"><span class="linenos">2061</span></a>
-</span><span id="L-2062"><a href="#L-2062"><span class="linenos">2062</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-2063"><a href="#L-2063"><span class="linenos">2063</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-2064"><a href="#L-2064"><span class="linenos">2064</span></a>
+</span><span id="L-2062"><a href="#L-2062"><span class="linenos">2062</span></a>
+</span><span id="L-2063"><a href="#L-2063"><span class="linenos">2063</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-2064"><a href="#L-2064"><span class="linenos">2064</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-2065"><a href="#L-2065"><span class="linenos">2065</span></a>
-</span><span id="L-2066"><a href="#L-2066"><span class="linenos">2066</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-2067"><a href="#L-2067"><span class="linenos">2067</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-2068"><a href="#L-2068"><span class="linenos">2068</span></a>
+</span><span id="L-2066"><a href="#L-2066"><span class="linenos">2066</span></a>
+</span><span id="L-2067"><a href="#L-2067"><span class="linenos">2067</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-2068"><a href="#L-2068"><span class="linenos">2068</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-2069"><a href="#L-2069"><span class="linenos">2069</span></a>
-</span><span id="L-2070"><a href="#L-2070"><span class="linenos">2070</span></a><span class="k">class</span> <span class="nc">InputModelProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2071"><a href="#L-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">True</span><span class="p">}</span>
-</span><span id="L-2072"><a href="#L-2072"><span class="linenos">2072</span></a>
+</span><span id="L-2070"><a href="#L-2070"><span class="linenos">2070</span></a>
+</span><span id="L-2071"><a href="#L-2071"><span class="linenos">2071</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-2072"><a href="#L-2072"><span class="linenos">2072</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-2073"><a href="#L-2073"><span class="linenos">2073</span></a>
-</span><span id="L-2074"><a href="#L-2074"><span class="linenos">2074</span></a><span class="k">class</span> <span class="nc">OutputModelProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2075"><a href="#L-2075"><span class="linenos">2075</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-2076"><a href="#L-2076"><span class="linenos">2076</span></a>
+</span><span id="L-2074"><a href="#L-2074"><span class="linenos">2074</span></a>
+</span><span id="L-2075"><a href="#L-2075"><span class="linenos">2075</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-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;this&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 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-2079"><a href="#L-2079"><span class="linenos">2079</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2080"><a href="#L-2080"><span class="linenos">2080</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-2081"><a href="#L-2081"><span class="linenos">2081</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-2082"><a href="#L-2082"><span class="linenos">2082</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-2083"><a href="#L-2083"><span class="linenos">2083</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-2084"><a href="#L-2084"><span class="linenos">2084</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-2085"><a href="#L-2085"><span class="linenos">2085</span></a> <span class="p">}</span>
+</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">FreespaceProperty</span><span class="p">(</span><span class="n">Property</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 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-2081"><a href="#L-2081"><span class="linenos">2081</span></a>
+</span><span id="L-2082"><a href="#L-2082"><span class="linenos">2082</span></a>
+</span><span id="L-2083"><a href="#L-2083"><span class="linenos">2083</span></a><span class="k">class</span> <span class="nc">InputModelProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2084"><a href="#L-2084"><span class="linenos">2084</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-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><span id="L-2087"><a href="#L-2087"><span class="linenos">2087</span></a>
-</span><span id="L-2088"><a href="#L-2088"><span class="linenos">2088</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-2089"><a href="#L-2089"><span class="linenos">2089</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2090"><a href="#L-2090"><span class="linenos">2090</span></a> <span class="s2">&quot;no&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2091"><a href="#L-2091"><span class="linenos">2091</span></a> <span class="s2">&quot;dual&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2092"><a href="#L-2092"><span class="linenos">2092</span></a> <span class="s2">&quot;before&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2093"><a href="#L-2093"><span class="linenos">2093</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-2094"><a href="#L-2094"><span class="linenos">2094</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-2095"><a href="#L-2095"><span class="linenos">2095</span></a> <span class="p">}</span>
-</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><span id="L-2098"><a href="#L-2098"><span class="linenos">2098</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-2099"><a href="#L-2099"><span class="linenos">2099</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-2087"><a href="#L-2087"><span class="linenos">2087</span></a><span class="k">class</span> <span class="nc">OutputModelProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2088"><a href="#L-2088"><span class="linenos">2088</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-2089"><a href="#L-2089"><span class="linenos">2089</span></a>
+</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">class</span> <span class="nc">IsolatedLoadingProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2092"><a href="#L-2092"><span class="linenos">2092</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2093"><a href="#L-2093"><span class="linenos">2093</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-2094"><a href="#L-2094"><span class="linenos">2094</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-2095"><a href="#L-2095"><span class="linenos">2095</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-2096"><a href="#L-2096"><span class="linenos">2096</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-2097"><a href="#L-2097"><span class="linenos">2097</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-2098"><a href="#L-2098"><span class="linenos">2098</span></a> <span class="p">}</span>
+</span><span id="L-2099"><a href="#L-2099"><span class="linenos">2099</span></a>
</span><span id="L-2100"><a href="#L-2100"><span class="linenos">2100</span></a>
-</span><span id="L-2101"><a href="#L-2101"><span class="linenos">2101</span></a>
-</span><span id="L-2102"><a href="#L-2102"><span class="linenos">2102</span></a><span class="c1"># spark ddl</span>
-</span><span id="L-2103"><a href="#L-2103"><span class="linenos">2103</span></a><span class="k">class</span> <span class="nc">ClusteredByProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2104"><a href="#L-2104"><span class="linenos">2104</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;sorted_by&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;buckets&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-2105"><a href="#L-2105"><span class="linenos">2105</span></a>
-</span><span id="L-2106"><a href="#L-2106"><span class="linenos">2106</span></a>
-</span><span id="L-2107"><a href="#L-2107"><span class="linenos">2107</span></a><span class="k">class</span> <span class="nc">DictProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2108"><a href="#L-2108"><span class="linenos">2108</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;settings&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-2101"><a href="#L-2101"><span class="linenos">2101</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-2102"><a href="#L-2102"><span class="linenos">2102</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2103"><a href="#L-2103"><span class="linenos">2103</span></a> <span class="s2">&quot;no&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2104"><a href="#L-2104"><span class="linenos">2104</span></a> <span class="s2">&quot;dual&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2105"><a href="#L-2105"><span class="linenos">2105</span></a> <span class="s2">&quot;before&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2106"><a href="#L-2106"><span class="linenos">2106</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-2107"><a href="#L-2107"><span class="linenos">2107</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-2108"><a href="#L-2108"><span class="linenos">2108</span></a> <span class="p">}</span>
</span><span id="L-2109"><a href="#L-2109"><span class="linenos">2109</span></a>
</span><span id="L-2110"><a href="#L-2110"><span class="linenos">2110</span></a>
-</span><span id="L-2111"><a href="#L-2111"><span class="linenos">2111</span></a><span class="k">class</span> <span class="nc">DictSubProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2112"><a href="#L-2112"><span class="linenos">2112</span></a> <span class="k">pass</span>
+</span><span id="L-2111"><a href="#L-2111"><span class="linenos">2111</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-2112"><a href="#L-2112"><span class="linenos">2112</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-2113"><a href="#L-2113"><span class="linenos">2113</span></a>
</span><span id="L-2114"><a href="#L-2114"><span class="linenos">2114</span></a>
-</span><span id="L-2115"><a href="#L-2115"><span class="linenos">2115</span></a><span class="k">class</span> <span class="nc">DictRange</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-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;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;min&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;max&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-2117"><a href="#L-2117"><span class="linenos">2117</span></a>
+</span><span id="L-2115"><a href="#L-2115"><span class="linenos">2115</span></a><span class="c1"># spark ddl</span>
+</span><span id="L-2116"><a href="#L-2116"><span class="linenos">2116</span></a><span class="k">class</span> <span class="nc">ClusteredByProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2117"><a href="#L-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;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;sorted_by&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;buckets&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-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="c1"># Clickhouse CREATE ... ON CLUSTER modifier</span>
-</span><span id="L-2120"><a href="#L-2120"><span class="linenos">2120</span></a><span class="c1"># https://clickhouse.com/docs/en/sql-reference/distributed-ddl</span>
-</span><span id="L-2121"><a href="#L-2121"><span class="linenos">2121</span></a><span class="k">class</span> <span class="nc">OnCluster</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2122"><a href="#L-2122"><span class="linenos">2122</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-2119"><a href="#L-2119"><span class="linenos">2119</span></a>
+</span><span id="L-2120"><a href="#L-2120"><span class="linenos">2120</span></a><span class="k">class</span> <span class="nc">DictProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2121"><a href="#L-2121"><span class="linenos">2121</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;settings&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-2122"><a href="#L-2122"><span class="linenos">2122</span></a>
</span><span id="L-2123"><a href="#L-2123"><span class="linenos">2123</span></a>
-</span><span id="L-2124"><a href="#L-2124"><span class="linenos">2124</span></a>
-</span><span id="L-2125"><a href="#L-2125"><span class="linenos">2125</span></a><span class="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-2126"><a href="#L-2126"><span class="linenos">2126</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-2124"><a href="#L-2124"><span class="linenos">2124</span></a><span class="k">class</span> <span class="nc">DictSubProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2125"><a href="#L-2125"><span class="linenos">2125</span></a> <span class="k">pass</span>
+</span><span id="L-2126"><a href="#L-2126"><span class="linenos">2126</span></a>
</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><span id="L-2129"><a href="#L-2129"><span class="linenos">2129</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-2130"><a href="#L-2130"><span class="linenos">2130</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-2128"><a href="#L-2128"><span class="linenos">2128</span></a><span class="k">class</span> <span class="nc">DictRange</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2129"><a href="#L-2129"><span class="linenos">2129</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;min&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;max&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-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><span id="L-2132"><a href="#L-2132"><span class="linenos">2132</span></a>
-</span><span id="L-2133"><a href="#L-2133"><span class="linenos">2133</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-2134"><a href="#L-2134"><span class="linenos">2134</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2135"><a href="#L-2135"><span class="linenos">2135</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-2136"><a href="#L-2136"><span class="linenos">2136</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-2137"><a href="#L-2137"><span class="linenos">2137</span></a> <span class="s2">&quot;for_or_in&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2138"><a href="#L-2138"><span class="linenos">2138</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-2139"><a href="#L-2139"><span class="linenos">2139</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-2140"><a href="#L-2140"><span class="linenos">2140</span></a> <span class="p">}</span>
+</span><span id="L-2132"><a href="#L-2132"><span class="linenos">2132</span></a><span class="c1"># Clickhouse CREATE ... ON CLUSTER modifier</span>
+</span><span id="L-2133"><a href="#L-2133"><span class="linenos">2133</span></a><span class="c1"># https://clickhouse.com/docs/en/sql-reference/distributed-ddl</span>
+</span><span id="L-2134"><a href="#L-2134"><span class="linenos">2134</span></a><span class="k">class</span> <span class="nc">OnCluster</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2135"><a href="#L-2135"><span class="linenos">2135</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-2136"><a href="#L-2136"><span class="linenos">2136</span></a>
+</span><span id="L-2137"><a href="#L-2137"><span class="linenos">2137</span></a>
+</span><span id="L-2138"><a href="#L-2138"><span class="linenos">2138</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-2139"><a href="#L-2139"><span class="linenos">2139</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-2140"><a href="#L-2140"><span class="linenos">2140</span></a>
</span><span id="L-2141"><a href="#L-2141"><span class="linenos">2141</span></a>
-</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="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-2144"><a href="#L-2144"><span class="linenos">2144</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-2142"><a href="#L-2142"><span class="linenos">2142</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-2143"><a href="#L-2143"><span class="linenos">2143</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-2144"><a href="#L-2144"><span class="linenos">2144</span></a>
</span><span id="L-2145"><a href="#L-2145"><span class="linenos">2145</span></a>
-</span><span id="L-2146"><a href="#L-2146"><span class="linenos">2146</span></a>
-</span><span id="L-2147"><a href="#L-2147"><span class="linenos">2147</span></a><span class="k">class</span> <span class="nc">MaterializedProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2148"><a href="#L-2148"><span class="linenos">2148</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-2149"><a href="#L-2149"><span class="linenos">2149</span></a>
-</span><span id="L-2150"><a href="#L-2150"><span class="linenos">2150</span></a>
-</span><span id="L-2151"><a href="#L-2151"><span class="linenos">2151</span></a><span class="k">class</span> <span class="nc">MergeBlockRatioProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2152"><a href="#L-2152"><span class="linenos">2152</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">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-2153"><a href="#L-2153"><span class="linenos">2153</span></a>
+</span><span id="L-2146"><a href="#L-2146"><span class="linenos">2146</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-2147"><a href="#L-2147"><span class="linenos">2147</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2148"><a href="#L-2148"><span class="linenos">2148</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-2149"><a href="#L-2149"><span class="linenos">2149</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-2150"><a href="#L-2150"><span class="linenos">2150</span></a> <span class="s2">&quot;for_or_in&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2151"><a href="#L-2151"><span class="linenos">2151</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-2152"><a href="#L-2152"><span class="linenos">2152</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-2153"><a href="#L-2153"><span class="linenos">2153</span></a> <span class="p">}</span>
</span><span id="L-2154"><a href="#L-2154"><span class="linenos">2154</span></a>
-</span><span id="L-2155"><a href="#L-2155"><span class="linenos">2155</span></a><span class="k">class</span> <span class="nc">NoPrimaryIndexProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2156"><a href="#L-2156"><span class="linenos">2156</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
-</span><span id="L-2157"><a href="#L-2157"><span class="linenos">2157</span></a>
+</span><span id="L-2155"><a href="#L-2155"><span class="linenos">2155</span></a>
+</span><span id="L-2156"><a href="#L-2156"><span class="linenos">2156</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-2157"><a href="#L-2157"><span class="linenos">2157</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-2158"><a href="#L-2158"><span class="linenos">2158</span></a>
-</span><span id="L-2159"><a href="#L-2159"><span class="linenos">2159</span></a><span class="k">class</span> <span class="nc">OnProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2160"><a href="#L-2160"><span class="linenos">2160</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-2161"><a href="#L-2161"><span class="linenos">2161</span></a>
+</span><span id="L-2159"><a href="#L-2159"><span class="linenos">2159</span></a>
+</span><span id="L-2160"><a href="#L-2160"><span class="linenos">2160</span></a><span class="k">class</span> <span class="nc">MaterializedProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2161"><a href="#L-2161"><span class="linenos">2161</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-2162"><a href="#L-2162"><span class="linenos">2162</span></a>
-</span><span id="L-2163"><a href="#L-2163"><span class="linenos">2163</span></a><span 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-2164"><a href="#L-2164"><span class="linenos">2164</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;delete&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-2165"><a href="#L-2165"><span class="linenos">2165</span></a>
+</span><span id="L-2163"><a href="#L-2163"><span class="linenos">2163</span></a>
+</span><span id="L-2164"><a href="#L-2164"><span class="linenos">2164</span></a><span class="k">class</span> <span class="nc">MergeBlockRatioProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2165"><a href="#L-2165"><span class="linenos">2165</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span 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-2166"><a href="#L-2166"><span class="linenos">2166</span></a>
-</span><span id="L-2167"><a href="#L-2167"><span class="linenos">2167</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-2168"><a href="#L-2168"><span class="linenos">2168</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-2169"><a href="#L-2169"><span class="linenos">2169</span></a>
+</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="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-2169"><a href="#L-2169"><span class="linenos">2169</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="L-2170"><a href="#L-2170"><span class="linenos">2170</span></a>
-</span><span id="L-2171"><a href="#L-2171"><span class="linenos">2171</span></a><span class="c1"># https://www.postgresql.org/docs/current/sql-createtable.html</span>
-</span><span id="L-2172"><a href="#L-2172"><span class="linenos">2172</span></a><span class="k">class</span> <span class="nc">PartitionBoundSpec</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2173"><a href="#L-2173"><span class="linenos">2173</span></a> <span class="c1"># this -&gt; IN / MODULUS, expression -&gt; REMAINDER, from_expressions -&gt; FROM (...), to_expressions -&gt; TO (...)</span>
-</span><span id="L-2174"><a href="#L-2174"><span class="linenos">2174</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2175"><a href="#L-2175"><span class="linenos">2175</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-2176"><a href="#L-2176"><span class="linenos">2176</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-2177"><a href="#L-2177"><span class="linenos">2177</span></a> <span class="s2">&quot;from_expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2178"><a href="#L-2178"><span class="linenos">2178</span></a> <span class="s2">&quot;to_expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2179"><a href="#L-2179"><span class="linenos">2179</span></a> <span class="p">}</span>
-</span><span id="L-2180"><a href="#L-2180"><span class="linenos">2180</span></a>
-</span><span id="L-2181"><a href="#L-2181"><span class="linenos">2181</span></a>
-</span><span id="L-2182"><a href="#L-2182"><span class="linenos">2182</span></a><span class="k">class</span> <span class="nc">PartitionedOfProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2183"><a href="#L-2183"><span class="linenos">2183</span></a> <span class="c1"># this -&gt; parent_table (schema), expression -&gt; FOR VALUES ... / DEFAULT</span>
-</span><span id="L-2184"><a href="#L-2184"><span class="linenos">2184</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-2185"><a href="#L-2185"><span class="linenos">2185</span></a>
-</span><span id="L-2186"><a href="#L-2186"><span class="linenos">2186</span></a>
-</span><span id="L-2187"><a href="#L-2187"><span class="linenos">2187</span></a><span class="k">class</span> <span class="nc">RemoteWithConnectionModelProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2188"><a href="#L-2188"><span class="linenos">2188</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-2189"><a href="#L-2189"><span class="linenos">2189</span></a>
-</span><span id="L-2190"><a href="#L-2190"><span class="linenos">2190</span></a>
-</span><span id="L-2191"><a href="#L-2191"><span class="linenos">2191</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-2192"><a href="#L-2192"><span class="linenos">2192</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-2171"><a href="#L-2171"><span class="linenos">2171</span></a>
+</span><span id="L-2172"><a href="#L-2172"><span class="linenos">2172</span></a><span class="k">class</span> <span class="nc">OnProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2173"><a href="#L-2173"><span class="linenos">2173</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-2174"><a href="#L-2174"><span class="linenos">2174</span></a>
+</span><span id="L-2175"><a href="#L-2175"><span class="linenos">2175</span></a>
+</span><span id="L-2176"><a href="#L-2176"><span class="linenos">2176</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-2177"><a href="#L-2177"><span class="linenos">2177</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;delete&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-2178"><a href="#L-2178"><span class="linenos">2178</span></a>
+</span><span id="L-2179"><a href="#L-2179"><span class="linenos">2179</span></a>
+</span><span id="L-2180"><a href="#L-2180"><span class="linenos">2180</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-2181"><a href="#L-2181"><span class="linenos">2181</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</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><span id="L-2184"><a href="#L-2184"><span class="linenos">2184</span></a><span class="c1"># https://www.postgresql.org/docs/current/sql-createtable.html</span>
+</span><span id="L-2185"><a href="#L-2185"><span class="linenos">2185</span></a><span class="k">class</span> <span class="nc">PartitionBoundSpec</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2186"><a href="#L-2186"><span class="linenos">2186</span></a> <span class="c1"># this -&gt; IN / MODULUS, expression -&gt; REMAINDER, from_expressions -&gt; FROM (...), to_expressions -&gt; TO (...)</span>
+</span><span id="L-2187"><a href="#L-2187"><span class="linenos">2187</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2188"><a href="#L-2188"><span class="linenos">2188</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-2189"><a href="#L-2189"><span class="linenos">2189</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-2190"><a href="#L-2190"><span class="linenos">2190</span></a> <span class="s2">&quot;from_expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2191"><a href="#L-2191"><span class="linenos">2191</span></a> <span class="s2">&quot;to_expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2192"><a href="#L-2192"><span class="linenos">2192</span></a> <span class="p">}</span>
</span><span id="L-2193"><a href="#L-2193"><span class="linenos">2193</span></a>
</span><span id="L-2194"><a href="#L-2194"><span class="linenos">2194</span></a>
-</span><span id="L-2195"><a href="#L-2195"><span class="linenos">2195</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-2196"><a href="#L-2196"><span class="linenos">2196</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-2197"><a href="#L-2197"><span class="linenos">2197</span></a>
+</span><span id="L-2195"><a href="#L-2195"><span class="linenos">2195</span></a><span class="k">class</span> <span class="nc">PartitionedOfProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2196"><a href="#L-2196"><span class="linenos">2196</span></a> <span class="c1"># this -&gt; parent_table (schema), expression -&gt; FOR VALUES ... / DEFAULT</span>
+</span><span id="L-2197"><a href="#L-2197"><span class="linenos">2197</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-2198"><a href="#L-2198"><span class="linenos">2198</span></a>
-</span><span id="L-2199"><a href="#L-2199"><span class="linenos">2199</span></a><span 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-2200"><a href="#L-2200"><span class="linenos">2200</span></a> <span class="c1"># https://cwiki.apache.org/confluence/display/hive/languagemanual+dml</span>
-</span><span id="L-2201"><a href="#L-2201"><span class="linenos">2201</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2202"><a href="#L-2202"><span class="linenos">2202</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-2203"><a href="#L-2203"><span class="linenos">2203</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-2204"><a href="#L-2204"><span class="linenos">2204</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-2205"><a href="#L-2205"><span class="linenos">2205</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-2206"><a href="#L-2206"><span class="linenos">2206</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-2207"><a href="#L-2207"><span class="linenos">2207</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-2208"><a href="#L-2208"><span class="linenos">2208</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-2209"><a href="#L-2209"><span class="linenos">2209</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">class</span> <span class="nc">RemoteWithConnectionModelProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2201"><a href="#L-2201"><span class="linenos">2201</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-2202"><a href="#L-2202"><span class="linenos">2202</span></a>
+</span><span id="L-2203"><a href="#L-2203"><span class="linenos">2203</span></a>
+</span><span id="L-2204"><a href="#L-2204"><span class="linenos">2204</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-2205"><a href="#L-2205"><span class="linenos">2205</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">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-2206"><a href="#L-2206"><span class="linenos">2206</span></a>
+</span><span id="L-2207"><a href="#L-2207"><span class="linenos">2207</span></a>
+</span><span id="L-2208"><a href="#L-2208"><span class="linenos">2208</span></a><span class="k">class</span> <span class="nc">RowFormatProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2209"><a href="#L-2209"><span class="linenos">2209</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><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><span id="L-2212"><a href="#L-2212"><span class="linenos">2212</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-2213"><a href="#L-2213"><span class="linenos">2213</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;serde_properties&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-2214"><a href="#L-2214"><span class="linenos">2214</span></a>
-</span><span id="L-2215"><a href="#L-2215"><span class="linenos">2215</span></a>
-</span><span id="L-2216"><a href="#L-2216"><span class="linenos">2216</span></a><span class="c1"># https://spark.apache.org/docs/3.1.2/sql-ref-syntax-qry-select-transform.html</span>
-</span><span id="L-2217"><a href="#L-2217"><span class="linenos">2217</span></a><span class="k">class</span> <span class="nc">QueryTransform</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2218"><a href="#L-2218"><span class="linenos">2218</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2219"><a href="#L-2219"><span class="linenos">2219</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-2220"><a href="#L-2220"><span class="linenos">2220</span></a> <span class="s2">&quot;command_script&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-2221"><a href="#L-2221"><span class="linenos">2221</span></a> <span class="s2">&quot;schema&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2222"><a href="#L-2222"><span class="linenos">2222</span></a> <span class="s2">&quot;row_format_before&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2223"><a href="#L-2223"><span class="linenos">2223</span></a> <span class="s2">&quot;record_writer&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2224"><a href="#L-2224"><span class="linenos">2224</span></a> <span class="s2">&quot;row_format_after&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2225"><a href="#L-2225"><span class="linenos">2225</span></a> <span class="s2">&quot;record_reader&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2226"><a href="#L-2226"><span class="linenos">2226</span></a> <span class="p">}</span>
+</span><span id="L-2212"><a href="#L-2212"><span class="linenos">2212</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-2213"><a href="#L-2213"><span class="linenos">2213</span></a> <span class="c1"># https://cwiki.apache.org/confluence/display/hive/languagemanual+dml</span>
+</span><span id="L-2214"><a href="#L-2214"><span class="linenos">2214</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2215"><a href="#L-2215"><span class="linenos">2215</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-2216"><a href="#L-2216"><span class="linenos">2216</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-2217"><a href="#L-2217"><span class="linenos">2217</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-2218"><a href="#L-2218"><span class="linenos">2218</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-2219"><a href="#L-2219"><span class="linenos">2219</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-2220"><a href="#L-2220"><span class="linenos">2220</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-2221"><a href="#L-2221"><span class="linenos">2221</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-2222"><a href="#L-2222"><span class="linenos">2222</span></a> <span class="p">}</span>
+</span><span id="L-2223"><a href="#L-2223"><span class="linenos">2223</span></a>
+</span><span id="L-2224"><a href="#L-2224"><span class="linenos">2224</span></a>
+</span><span id="L-2225"><a href="#L-2225"><span class="linenos">2225</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-2226"><a href="#L-2226"><span class="linenos">2226</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;serde_properties&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-2227"><a href="#L-2227"><span class="linenos">2227</span></a>
</span><span id="L-2228"><a href="#L-2228"><span class="linenos">2228</span></a>
-</span><span id="L-2229"><a href="#L-2229"><span class="linenos">2229</span></a><span class="k">class</span> <span class="nc">SampleProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2230"><a href="#L-2230"><span class="linenos">2230</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-2231"><a href="#L-2231"><span class="linenos">2231</span></a>
-</span><span id="L-2232"><a href="#L-2232"><span class="linenos">2232</span></a>
-</span><span id="L-2233"><a href="#L-2233"><span class="linenos">2233</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-2234"><a href="#L-2234"><span class="linenos">2234</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-2235"><a href="#L-2235"><span class="linenos">2235</span></a>
-</span><span id="L-2236"><a href="#L-2236"><span class="linenos">2236</span></a>
-</span><span id="L-2237"><a href="#L-2237"><span class="linenos">2237</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-2238"><a href="#L-2238"><span class="linenos">2238</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-2239"><a href="#L-2239"><span class="linenos">2239</span></a>
+</span><span id="L-2229"><a href="#L-2229"><span class="linenos">2229</span></a><span class="c1"># https://spark.apache.org/docs/3.1.2/sql-ref-syntax-qry-select-transform.html</span>
+</span><span id="L-2230"><a href="#L-2230"><span class="linenos">2230</span></a><span class="k">class</span> <span class="nc">QueryTransform</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2231"><a href="#L-2231"><span class="linenos">2231</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2232"><a href="#L-2232"><span class="linenos">2232</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-2233"><a href="#L-2233"><span class="linenos">2233</span></a> <span class="s2">&quot;command_script&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-2234"><a href="#L-2234"><span class="linenos">2234</span></a> <span class="s2">&quot;schema&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2235"><a href="#L-2235"><span class="linenos">2235</span></a> <span class="s2">&quot;row_format_before&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2236"><a href="#L-2236"><span class="linenos">2236</span></a> <span class="s2">&quot;record_writer&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2237"><a href="#L-2237"><span class="linenos">2237</span></a> <span class="s2">&quot;row_format_after&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2238"><a href="#L-2238"><span class="linenos">2238</span></a> <span class="s2">&quot;record_reader&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2239"><a href="#L-2239"><span class="linenos">2239</span></a> <span class="p">}</span>
</span><span id="L-2240"><a href="#L-2240"><span class="linenos">2240</span></a>
-</span><span id="L-2241"><a href="#L-2241"><span class="linenos">2241</span></a><span class="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-2242"><a href="#L-2242"><span class="linenos">2242</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-2243"><a href="#L-2243"><span class="linenos">2243</span></a>
+</span><span id="L-2241"><a href="#L-2241"><span class="linenos">2241</span></a>
+</span><span id="L-2242"><a href="#L-2242"><span class="linenos">2242</span></a><span class="k">class</span> <span class="nc">SampleProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2243"><a href="#L-2243"><span class="linenos">2243</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-2244"><a href="#L-2244"><span class="linenos">2244</span></a>
-</span><span id="L-2245"><a href="#L-2245"><span class="linenos">2245</span></a><span class="k">class</span> <span class="nc">SettingsProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2246"><a href="#L-2246"><span class="linenos">2246</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-2247"><a href="#L-2247"><span class="linenos">2247</span></a>
+</span><span id="L-2245"><a href="#L-2245"><span class="linenos">2245</span></a>
+</span><span id="L-2246"><a href="#L-2246"><span class="linenos">2246</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-2247"><a href="#L-2247"><span class="linenos">2247</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-2248"><a href="#L-2248"><span class="linenos">2248</span></a>
-</span><span id="L-2249"><a href="#L-2249"><span class="linenos">2249</span></a><span class="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-2250"><a href="#L-2250"><span class="linenos">2250</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-2251"><a href="#L-2251"><span class="linenos">2251</span></a>
+</span><span id="L-2249"><a href="#L-2249"><span class="linenos">2249</span></a>
+</span><span id="L-2250"><a href="#L-2250"><span class="linenos">2250</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-2251"><a href="#L-2251"><span class="linenos">2251</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-2252"><a href="#L-2252"><span class="linenos">2252</span></a>
-</span><span id="L-2253"><a href="#L-2253"><span class="linenos">2253</span></a><span class="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-2254"><a href="#L-2254"><span class="linenos">2254</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-2255"><a href="#L-2255"><span class="linenos">2255</span></a>
+</span><span id="L-2253"><a href="#L-2253"><span class="linenos">2253</span></a>
+</span><span id="L-2254"><a href="#L-2254"><span class="linenos">2254</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-2255"><a href="#L-2255"><span class="linenos">2255</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-2256"><a href="#L-2256"><span class="linenos">2256</span></a>
-</span><span id="L-2257"><a href="#L-2257"><span class="linenos">2257</span></a><span class="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-2258"><a href="#L-2258"><span class="linenos">2258</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-2259"><a href="#L-2259"><span class="linenos">2259</span></a>
+</span><span id="L-2257"><a href="#L-2257"><span class="linenos">2257</span></a>
+</span><span id="L-2258"><a href="#L-2258"><span class="linenos">2258</span></a><span class="k">class</span> <span class="nc">SettingsProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2259"><a href="#L-2259"><span class="linenos">2259</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-2260"><a href="#L-2260"><span class="linenos">2260</span></a>
-</span><span id="L-2261"><a href="#L-2261"><span class="linenos">2261</span></a><span class="k">class</span> <span class="nc">TemporaryProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2262"><a href="#L-2262"><span class="linenos">2262</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
-</span><span id="L-2263"><a href="#L-2263"><span class="linenos">2263</span></a>
+</span><span id="L-2261"><a href="#L-2261"><span class="linenos">2261</span></a>
+</span><span id="L-2262"><a href="#L-2262"><span class="linenos">2262</span></a><span class="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-2263"><a href="#L-2263"><span class="linenos">2263</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-2264"><a href="#L-2264"><span class="linenos">2264</span></a>
-</span><span id="L-2265"><a href="#L-2265"><span class="linenos">2265</span></a><span class="k">class</span> <span class="nc">TransformModelProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2266"><a href="#L-2266"><span class="linenos">2266</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-2267"><a href="#L-2267"><span class="linenos">2267</span></a>
+</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">class</span> <span class="nc">SqlReadWriteProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2267"><a href="#L-2267"><span class="linenos">2267</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-2268"><a href="#L-2268"><span class="linenos">2268</span></a>
-</span><span id="L-2269"><a href="#L-2269"><span class="linenos">2269</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-2270"><a href="#L-2270"><span class="linenos">2270</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-2271"><a href="#L-2271"><span class="linenos">2271</span></a>
+</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="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-2271"><a href="#L-2271"><span class="linenos">2271</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-2272"><a href="#L-2272"><span class="linenos">2272</span></a>
-</span><span id="L-2273"><a href="#L-2273"><span class="linenos">2273</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-2274"><a href="#L-2274"><span class="linenos">2274</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-2275"><a href="#L-2275"><span class="linenos">2275</span></a>
+</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="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-2275"><a href="#L-2275"><span class="linenos">2275</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-2276"><a href="#L-2276"><span class="linenos">2276</span></a>
-</span><span id="L-2277"><a href="#L-2277"><span class="linenos">2277</span></a><span class="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-2278"><a href="#L-2278"><span class="linenos">2278</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-2279"><a href="#L-2279"><span class="linenos">2279</span></a>
+</span><span id="L-2277"><a href="#L-2277"><span class="linenos">2277</span></a>
+</span><span id="L-2278"><a href="#L-2278"><span class="linenos">2278</span></a><span class="k">class</span> <span class="nc">TemporaryProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2279"><a href="#L-2279"><span class="linenos">2279</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="L-2280"><a href="#L-2280"><span class="linenos">2280</span></a>
-</span><span id="L-2281"><a href="#L-2281"><span class="linenos">2281</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-2282"><a href="#L-2282"><span class="linenos">2282</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-2283"><a href="#L-2283"><span class="linenos">2283</span></a>
+</span><span id="L-2281"><a href="#L-2281"><span class="linenos">2281</span></a>
+</span><span id="L-2282"><a href="#L-2282"><span class="linenos">2282</span></a><span class="k">class</span> <span class="nc">TransformModelProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2283"><a href="#L-2283"><span class="linenos">2283</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-2284"><a href="#L-2284"><span class="linenos">2284</span></a>
-</span><span id="L-2285"><a href="#L-2285"><span class="linenos">2285</span></a><span class="k">class</span> <span class="nc">WithSystemVersioningProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2286"><a href="#L-2286"><span class="linenos">2286</span></a> <span class="c1"># this -&gt; history table name, expression -&gt; data consistency check</span>
-</span><span id="L-2287"><a href="#L-2287"><span class="linenos">2287</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-2285"><a href="#L-2285"><span class="linenos">2285</span></a>
+</span><span id="L-2286"><a href="#L-2286"><span class="linenos">2286</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-2287"><a href="#L-2287"><span class="linenos">2287</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-2288"><a href="#L-2288"><span class="linenos">2288</span></a>
</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">class</span> <span class="nc">Properties</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2291"><a href="#L-2291"><span class="linenos">2291</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-2290"><a href="#L-2290"><span class="linenos">2290</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-2291"><a href="#L-2291"><span class="linenos">2291</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-2292"><a href="#L-2292"><span class="linenos">2292</span></a>
-</span><span id="L-2293"><a href="#L-2293"><span class="linenos">2293</span></a> <span class="n">NAME_TO_PROPERTY</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2294"><a href="#L-2294"><span class="linenos">2294</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-2295"><a href="#L-2295"><span class="linenos">2295</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-2296"><a href="#L-2296"><span class="linenos">2296</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-2297"><a href="#L-2297"><span class="linenos">2297</span></a> <span class="s2">&quot;CLUSTERED_BY&quot;</span><span class="p">:</span> <span class="n">ClusteredByProperty</span><span class="p">,</span>
-</span><span id="L-2298"><a href="#L-2298"><span class="linenos">2298</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-2299"><a href="#L-2299"><span class="linenos">2299</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-2300"><a href="#L-2300"><span class="linenos">2300</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-2301"><a href="#L-2301"><span class="linenos">2301</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-2302"><a href="#L-2302"><span class="linenos">2302</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-2303"><a href="#L-2303"><span class="linenos">2303</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-2304"><a href="#L-2304"><span class="linenos">2304</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-2305"><a href="#L-2305"><span class="linenos">2305</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-2306"><a href="#L-2306"><span class="linenos">2306</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-2307"><a href="#L-2307"><span class="linenos">2307</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-2308"><a href="#L-2308"><span class="linenos">2308</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-2309"><a href="#L-2309"><span class="linenos">2309</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-2310"><a href="#L-2310"><span class="linenos">2310</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-2311"><a href="#L-2311"><span class="linenos">2311</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-2312"><a href="#L-2312"><span class="linenos">2312</span></a> <span class="p">}</span>
-</span><span id="L-2313"><a href="#L-2313"><span class="linenos">2313</span></a>
-</span><span id="L-2314"><a href="#L-2314"><span class="linenos">2314</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-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="c1"># CREATE property locations</span>
-</span><span id="L-2317"><a href="#L-2317"><span class="linenos">2317</span></a> <span class="c1"># Form: schema specified</span>
-</span><span id="L-2318"><a href="#L-2318"><span class="linenos">2318</span></a> <span class="c1"># create [POST_CREATE]</span>
-</span><span id="L-2319"><a href="#L-2319"><span class="linenos">2319</span></a> <span class="c1"># table a [POST_NAME]</span>
-</span><span id="L-2320"><a href="#L-2320"><span class="linenos">2320</span></a> <span class="c1"># (b int) [POST_SCHEMA]</span>
-</span><span id="L-2321"><a href="#L-2321"><span class="linenos">2321</span></a> <span class="c1"># with ([POST_WITH])</span>
-</span><span id="L-2322"><a href="#L-2322"><span class="linenos">2322</span></a> <span class="c1"># index (b) [POST_INDEX]</span>
-</span><span id="L-2323"><a href="#L-2323"><span class="linenos">2323</span></a> <span class="c1">#</span>
-</span><span id="L-2324"><a href="#L-2324"><span class="linenos">2324</span></a> <span class="c1"># Form: alias selection</span>
-</span><span id="L-2325"><a href="#L-2325"><span class="linenos">2325</span></a> <span class="c1"># create [POST_CREATE]</span>
-</span><span id="L-2326"><a href="#L-2326"><span class="linenos">2326</span></a> <span class="c1"># table a [POST_NAME]</span>
-</span><span id="L-2327"><a href="#L-2327"><span class="linenos">2327</span></a> <span class="c1"># as [POST_ALIAS] (select * from b) [POST_EXPRESSION]</span>
-</span><span id="L-2328"><a href="#L-2328"><span class="linenos">2328</span></a> <span class="c1"># index (c) [POST_INDEX]</span>
-</span><span id="L-2329"><a href="#L-2329"><span class="linenos">2329</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-2330"><a href="#L-2330"><span class="linenos">2330</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-2331"><a href="#L-2331"><span class="linenos">2331</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-2332"><a href="#L-2332"><span class="linenos">2332</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-2333"><a href="#L-2333"><span class="linenos">2333</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-2334"><a href="#L-2334"><span class="linenos">2334</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-2335"><a href="#L-2335"><span class="linenos">2335</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-2336"><a href="#L-2336"><span class="linenos">2336</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-2337"><a href="#L-2337"><span class="linenos">2337</span></a> <span class="n">UNSUPPORTED</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2338"><a href="#L-2338"><span class="linenos">2338</span></a>
-</span><span id="L-2339"><a href="#L-2339"><span class="linenos">2339</span></a> <span class="nd">@classmethod</span>
-</span><span id="L-2340"><a href="#L-2340"><span class="linenos">2340</span></a> <span class="k">def</span> <span class="nf">from_dict</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">properties_dict</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Properties</span><span class="p">:</span>
-</span><span id="L-2341"><a href="#L-2341"><span class="linenos">2341</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[]</span>
-</span><span id="L-2342"><a href="#L-2342"><span class="linenos">2342</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-2343"><a href="#L-2343"><span class="linenos">2343</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-2344"><a href="#L-2344"><span class="linenos">2344</span></a> <span class="k">if</span> <span class="n">property_cls</span><span class="p">:</span>
-</span><span id="L-2345"><a href="#L-2345"><span class="linenos">2345</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-2346"><a href="#L-2346"><span class="linenos">2346</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-2347"><a href="#L-2347"><span class="linenos">2347</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-2348"><a href="#L-2348"><span class="linenos">2348</span></a>
-</span><span id="L-2349"><a href="#L-2349"><span class="linenos">2349</span></a> <span class="k">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-2350"><a href="#L-2350"><span class="linenos">2350</span></a>
-</span><span id="L-2351"><a href="#L-2351"><span class="linenos">2351</span></a>
-</span><span id="L-2352"><a href="#L-2352"><span class="linenos">2352</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-2353"><a href="#L-2353"><span class="linenos">2353</span></a> <span class="k">pass</span>
-</span><span id="L-2354"><a href="#L-2354"><span class="linenos">2354</span></a>
+</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="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-2295"><a href="#L-2295"><span class="linenos">2295</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-2296"><a href="#L-2296"><span class="linenos">2296</span></a>
+</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="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-2299"><a href="#L-2299"><span class="linenos">2299</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-2300"><a href="#L-2300"><span class="linenos">2300</span></a>
+</span><span id="L-2301"><a href="#L-2301"><span class="linenos">2301</span></a>
+</span><span id="L-2302"><a href="#L-2302"><span class="linenos">2302</span></a><span class="k">class</span> <span class="nc">WithSystemVersioningProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2303"><a href="#L-2303"><span class="linenos">2303</span></a> <span class="c1"># this -&gt; history table name, expression -&gt; data consistency check</span>
+</span><span id="L-2304"><a href="#L-2304"><span class="linenos">2304</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-2305"><a href="#L-2305"><span class="linenos">2305</span></a>
+</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="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-2308"><a href="#L-2308"><span class="linenos">2308</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-2309"><a href="#L-2309"><span class="linenos">2309</span></a>
+</span><span id="L-2310"><a href="#L-2310"><span class="linenos">2310</span></a> <span class="n">NAME_TO_PROPERTY</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2311"><a href="#L-2311"><span class="linenos">2311</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-2312"><a href="#L-2312"><span class="linenos">2312</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-2313"><a href="#L-2313"><span class="linenos">2313</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-2314"><a href="#L-2314"><span class="linenos">2314</span></a> <span class="s2">&quot;CLUSTERED_BY&quot;</span><span class="p">:</span> <span class="n">ClusteredByProperty</span><span class="p">,</span>
+</span><span id="L-2315"><a href="#L-2315"><span class="linenos">2315</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-2316"><a href="#L-2316"><span class="linenos">2316</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-2317"><a href="#L-2317"><span class="linenos">2317</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-2318"><a href="#L-2318"><span class="linenos">2318</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-2319"><a href="#L-2319"><span class="linenos">2319</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-2320"><a href="#L-2320"><span class="linenos">2320</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-2321"><a href="#L-2321"><span class="linenos">2321</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-2322"><a href="#L-2322"><span class="linenos">2322</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-2323"><a href="#L-2323"><span class="linenos">2323</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-2324"><a href="#L-2324"><span class="linenos">2324</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-2325"><a href="#L-2325"><span class="linenos">2325</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-2326"><a href="#L-2326"><span class="linenos">2326</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-2327"><a href="#L-2327"><span class="linenos">2327</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-2328"><a href="#L-2328"><span class="linenos">2328</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-2329"><a href="#L-2329"><span class="linenos">2329</span></a> <span class="p">}</span>
+</span><span id="L-2330"><a href="#L-2330"><span class="linenos">2330</span></a>
+</span><span id="L-2331"><a href="#L-2331"><span class="linenos">2331</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-2332"><a href="#L-2332"><span class="linenos">2332</span></a>
+</span><span id="L-2333"><a href="#L-2333"><span class="linenos">2333</span></a> <span class="c1"># CREATE property locations</span>
+</span><span id="L-2334"><a href="#L-2334"><span class="linenos">2334</span></a> <span class="c1"># Form: schema specified</span>
+</span><span id="L-2335"><a href="#L-2335"><span class="linenos">2335</span></a> <span class="c1"># create [POST_CREATE]</span>
+</span><span id="L-2336"><a href="#L-2336"><span class="linenos">2336</span></a> <span class="c1"># table a [POST_NAME]</span>
+</span><span id="L-2337"><a href="#L-2337"><span class="linenos">2337</span></a> <span class="c1"># (b int) [POST_SCHEMA]</span>
+</span><span id="L-2338"><a href="#L-2338"><span class="linenos">2338</span></a> <span class="c1"># with ([POST_WITH])</span>
+</span><span id="L-2339"><a href="#L-2339"><span class="linenos">2339</span></a> <span class="c1"># index (b) [POST_INDEX]</span>
+</span><span id="L-2340"><a href="#L-2340"><span class="linenos">2340</span></a> <span class="c1">#</span>
+</span><span id="L-2341"><a href="#L-2341"><span class="linenos">2341</span></a> <span class="c1"># Form: alias selection</span>
+</span><span id="L-2342"><a href="#L-2342"><span class="linenos">2342</span></a> <span class="c1"># create [POST_CREATE]</span>
+</span><span id="L-2343"><a href="#L-2343"><span class="linenos">2343</span></a> <span class="c1"># table a [POST_NAME]</span>
+</span><span id="L-2344"><a href="#L-2344"><span class="linenos">2344</span></a> <span class="c1"># as [POST_ALIAS] (select * from b) [POST_EXPRESSION]</span>
+</span><span id="L-2345"><a href="#L-2345"><span class="linenos">2345</span></a> <span class="c1"># index (c) [POST_INDEX]</span>
+</span><span id="L-2346"><a href="#L-2346"><span class="linenos">2346</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-2347"><a href="#L-2347"><span class="linenos">2347</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-2348"><a href="#L-2348"><span class="linenos">2348</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-2349"><a href="#L-2349"><span class="linenos">2349</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-2350"><a href="#L-2350"><span class="linenos">2350</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-2351"><a href="#L-2351"><span class="linenos">2351</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-2352"><a href="#L-2352"><span class="linenos">2352</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-2353"><a href="#L-2353"><span class="linenos">2353</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-2354"><a href="#L-2354"><span class="linenos">2354</span></a> <span class="n">UNSUPPORTED</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-2355"><a href="#L-2355"><span class="linenos">2355</span></a>
-</span><span id="L-2356"><a href="#L-2356"><span class="linenos">2356</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-2357"><a href="#L-2357"><span class="linenos">2357</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-2358"><a href="#L-2358"><span class="linenos">2358</span></a>
-</span><span id="L-2359"><a href="#L-2359"><span class="linenos">2359</span></a>
-</span><span id="L-2360"><a href="#L-2360"><span class="linenos">2360</span></a><span class="c1"># https://www.ibm.com/docs/en/ias?topic=procedures-return-statement-in-sql</span>
-</span><span id="L-2361"><a href="#L-2361"><span class="linenos">2361</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-2362"><a href="#L-2362"><span class="linenos">2362</span></a> <span class="k">pass</span>
-</span><span id="L-2363"><a href="#L-2363"><span class="linenos">2363</span></a>
-</span><span id="L-2364"><a href="#L-2364"><span class="linenos">2364</span></a>
-</span><span id="L-2365"><a href="#L-2365"><span class="linenos">2365</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-2366"><a href="#L-2366"><span class="linenos">2366</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-2356"><a href="#L-2356"><span class="linenos">2356</span></a> <span class="nd">@classmethod</span>
+</span><span id="L-2357"><a href="#L-2357"><span class="linenos">2357</span></a> <span class="k">def</span> <span class="nf">from_dict</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">properties_dict</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Properties</span><span class="p">:</span>
+</span><span id="L-2358"><a href="#L-2358"><span class="linenos">2358</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="L-2359"><a href="#L-2359"><span class="linenos">2359</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-2360"><a href="#L-2360"><span class="linenos">2360</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-2361"><a href="#L-2361"><span class="linenos">2361</span></a> <span class="k">if</span> <span class="n">property_cls</span><span class="p">:</span>
+</span><span id="L-2362"><a href="#L-2362"><span class="linenos">2362</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-2363"><a href="#L-2363"><span class="linenos">2363</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-2364"><a href="#L-2364"><span class="linenos">2364</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-2365"><a href="#L-2365"><span class="linenos">2365</span></a>
+</span><span id="L-2366"><a href="#L-2366"><span class="linenos">2366</span></a> <span class="k">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-2367"><a href="#L-2367"><span class="linenos">2367</span></a>
</span><span id="L-2368"><a href="#L-2368"><span class="linenos">2368</span></a>
-</span><span id="L-2369"><a href="#L-2369"><span class="linenos">2369</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-2370"><a href="#L-2370"><span class="linenos">2370</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-2369"><a href="#L-2369"><span class="linenos">2369</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-2370"><a href="#L-2370"><span class="linenos">2370</span></a> <span class="k">pass</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="k">def</span> <span class="nf">isin</span><span class="p">(</span>
-</span><span id="L-2373"><a href="#L-2373"><span class="linenos">2373</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-2374"><a href="#L-2374"><span class="linenos">2374</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span>
-</span><span id="L-2375"><a href="#L-2375"><span class="linenos">2375</span></a> <span class="n">query</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-2376"><a href="#L-2376"><span class="linenos">2376</span></a> <span class="n">unnest</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Collection</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-2377"><a href="#L-2377"><span class="linenos">2377</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-2378"><a href="#L-2378"><span class="linenos">2378</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2379"><a href="#L-2379"><span class="linenos">2379</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">In</span><span class="p">:</span>
-</span><span id="L-2380"><a href="#L-2380"><span class="linenos">2380</span></a> <span class="k">return</span> <span class="n">In</span><span class="p">(</span>
-</span><span id="L-2381"><a href="#L-2381"><span class="linenos">2381</span></a> <span class="n">this</span><span class="o">=</span><span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">),</span>
-</span><span id="L-2382"><a href="#L-2382"><span class="linenos">2382</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">],</span>
-</span><span id="L-2383"><a href="#L-2383"><span class="linenos">2383</span></a> <span class="n">query</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">query</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="k">if</span> <span class="n">query</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-2384"><a href="#L-2384"><span class="linenos">2384</span></a> <span class="n">unnest</span><span class="o">=</span><span class="n">Unnest</span><span class="p">(</span>
-</span><span id="L-2385"><a href="#L-2385"><span class="linenos">2385</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span>
-</span><span id="L-2386"><a href="#L-2386"><span class="linenos">2386</span></a> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">e</span><span class="p">),</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">ensure_list</span><span class="p">(</span><span class="n">unnest</span><span class="p">)</span>
-</span><span id="L-2387"><a href="#L-2387"><span class="linenos">2387</span></a> <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 class="k">if</span> <span class="n">unnest</span>
-</span><span id="L-2390"><a href="#L-2390"><span class="linenos">2390</span></a> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-2391"><a href="#L-2391"><span class="linenos">2391</span></a> <span class="p">)</span>
-</span><span id="L-2392"><a href="#L-2392"><span class="linenos">2392</span></a>
-</span><span id="L-2393"><a href="#L-2393"><span class="linenos">2393</span></a>
-</span><span id="L-2394"><a href="#L-2394"><span class="linenos">2394</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-2395"><a href="#L-2395"><span class="linenos">2395</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="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 class="n">copy</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">Subquery</span><span class="p">:</span>
-</span><span id="L-2396"><a href="#L-2396"><span class="linenos">2396</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-2397"><a href="#L-2397"><span class="linenos">2397</span></a><span class="sd"> Convert this expression to an aliased expression that can be used as a Subquery.</span>
-</span><span id="L-2398"><a href="#L-2398"><span class="linenos">2398</span></a>
-</span><span id="L-2399"><a href="#L-2399"><span class="linenos">2399</span></a><span class="sd"> Example:</span>
-</span><span id="L-2400"><a href="#L-2400"><span class="linenos">2400</span></a><span class="sd"> &gt;&gt;&gt; subquery = Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).subquery()</span>
-</span><span id="L-2401"><a href="#L-2401"><span class="linenos">2401</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(subquery).sql()</span>
-</span><span id="L-2402"><a href="#L-2402"><span class="linenos">2402</span></a><span class="sd"> &#39;SELECT x FROM (SELECT x FROM tbl)&#39;</span>
-</span><span id="L-2403"><a href="#L-2403"><span class="linenos">2403</span></a>
-</span><span id="L-2404"><a href="#L-2404"><span class="linenos">2404</span></a><span class="sd"> Args:</span>
-</span><span id="L-2405"><a href="#L-2405"><span class="linenos">2405</span></a><span class="sd"> alias (str | Identifier): an optional alias for the subquery</span>
-</span><span id="L-2406"><a href="#L-2406"><span class="linenos">2406</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="L-2407"><a href="#L-2407"><span class="linenos">2407</span></a>
-</span><span id="L-2408"><a href="#L-2408"><span class="linenos">2408</span></a><span class="sd"> Returns:</span>
-</span><span id="L-2409"><a href="#L-2409"><span class="linenos">2409</span></a><span class="sd"> Alias: the subquery</span>
-</span><span id="L-2410"><a href="#L-2410"><span class="linenos">2410</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-2411"><a href="#L-2411"><span class="linenos">2411</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-2412"><a href="#L-2412"><span class="linenos">2412</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">alias</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2413"><a href="#L-2413"><span class="linenos">2413</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><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="k">return</span> <span class="n">Subquery</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">instance</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-2416"><a href="#L-2416"><span class="linenos">2416</span></a>
-</span><span id="L-2417"><a href="#L-2417"><span class="linenos">2417</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span>
-</span><span id="L-2418"><a href="#L-2418"><span class="linenos">2418</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span> <span class="o">|</span> <span class="nb">int</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="L-2419"><a href="#L-2419"><span class="linenos">2419</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-2420"><a href="#L-2420"><span class="linenos">2420</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span>
-</span><span id="L-2421"><a href="#L-2421"><span class="linenos">2421</span></a>
-</span><span id="L-2422"><a href="#L-2422"><span class="linenos">2422</span></a> <span class="nd">@property</span>
-</span><span id="L-2423"><a href="#L-2423"><span class="linenos">2423</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-2424"><a href="#L-2424"><span class="linenos">2424</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-2425"><a href="#L-2425"><span class="linenos">2425</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-2426"><a href="#L-2426"><span class="linenos">2426</span></a> <span class="k">return</span> <span class="p">[]</span>
-</span><span id="L-2427"><a href="#L-2427"><span class="linenos">2427</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-2428"><a href="#L-2428"><span class="linenos">2428</span></a>
-</span><span id="L-2429"><a href="#L-2429"><span class="linenos">2429</span></a> <span class="nd">@property</span>
-</span><span id="L-2430"><a href="#L-2430"><span class="linenos">2430</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-2431"><a href="#L-2431"><span class="linenos">2431</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-2432"><a href="#L-2432"><span class="linenos">2432</span></a>
-</span><span id="L-2433"><a href="#L-2433"><span class="linenos">2433</span></a> <span class="nd">@property</span>
-</span><span id="L-2434"><a href="#L-2434"><span class="linenos">2434</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-2435"><a href="#L-2435"><span class="linenos">2435</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-2436"><a href="#L-2436"><span class="linenos">2436</span></a>
-</span><span id="L-2437"><a href="#L-2437"><span class="linenos">2437</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
-</span><span id="L-2438"><a href="#L-2438"><span class="linenos">2438</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-2439"><a href="#L-2439"><span class="linenos">2439</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="L-2440"><a href="#L-2440"><span class="linenos">2440</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-2441"><a href="#L-2441"><span class="linenos">2441</span></a> <span class="n">dialect</span><span 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-2442"><a href="#L-2442"><span class="linenos">2442</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-2443"><a href="#L-2443"><span class="linenos">2443</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2444"><a href="#L-2444"><span class="linenos">2444</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Subqueryable</span><span class="p">:</span>
-</span><span id="L-2445"><a href="#L-2445"><span class="linenos">2445</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span><span class="s2">&quot;Subqueryable objects must implement `select`&quot;</span><span class="p">)</span>
-</span><span id="L-2446"><a href="#L-2446"><span class="linenos">2446</span></a>
-</span><span id="L-2447"><a href="#L-2447"><span class="linenos">2447</span></a> <span class="k">def</span> <span class="nf">with_</span><span class="p">(</span>
-</span><span id="L-2448"><a href="#L-2448"><span class="linenos">2448</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-2449"><a href="#L-2449"><span class="linenos">2449</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-2450"><a href="#L-2450"><span class="linenos">2450</span></a> <span class="n">as_</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-2451"><a href="#L-2451"><span class="linenos">2451</span></a> <span class="n">recursive</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-2452"><a href="#L-2452"><span class="linenos">2452</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-2453"><a href="#L-2453"><span class="linenos">2453</span></a> <span class="n">dialect</span><span 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-2454"><a href="#L-2454"><span class="linenos">2454</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-2455"><a href="#L-2455"><span class="linenos">2455</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2456"><a href="#L-2456"><span class="linenos">2456</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Subqueryable</span><span class="p">:</span>
-</span><span id="L-2457"><a href="#L-2457"><span class="linenos">2457</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-2458"><a href="#L-2458"><span class="linenos">2458</span></a><span class="sd"> Append to or set the common table expressions.</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="sd"> Example:</span>
-</span><span id="L-2461"><a href="#L-2461"><span class="linenos">2461</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-2462"><a href="#L-2462"><span class="linenos">2462</span></a><span class="sd"> &#39;WITH tbl2 AS (SELECT * FROM tbl) SELECT x FROM tbl2&#39;</span>
+</span><span id="L-2372"><a href="#L-2372"><span class="linenos">2372</span></a>
+</span><span id="L-2373"><a href="#L-2373"><span class="linenos">2373</span></a><span class="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-2374"><a href="#L-2374"><span class="linenos">2374</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-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><span id="L-2377"><a href="#L-2377"><span class="linenos">2377</span></a><span class="c1"># https://www.ibm.com/docs/en/ias?topic=procedures-return-statement-in-sql</span>
+</span><span id="L-2378"><a href="#L-2378"><span class="linenos">2378</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-2379"><a href="#L-2379"><span class="linenos">2379</span></a> <span class="k">pass</span>
+</span><span id="L-2380"><a href="#L-2380"><span class="linenos">2380</span></a>
+</span><span id="L-2381"><a href="#L-2381"><span class="linenos">2381</span></a>
+</span><span id="L-2382"><a href="#L-2382"><span class="linenos">2382</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-2383"><a href="#L-2383"><span class="linenos">2383</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-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><span id="L-2386"><a href="#L-2386"><span class="linenos">2386</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-2387"><a href="#L-2387"><span class="linenos">2387</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-2388"><a href="#L-2388"><span class="linenos">2388</span></a>
+</span><span id="L-2389"><a href="#L-2389"><span class="linenos">2389</span></a> <span class="k">def</span> <span class="nf">isin</span><span class="p">(</span>
+</span><span id="L-2390"><a href="#L-2390"><span class="linenos">2390</span></a> <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="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span>
+</span><span id="L-2392"><a href="#L-2392"><span class="linenos">2392</span></a> <span class="n">query</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-2393"><a href="#L-2393"><span class="linenos">2393</span></a> <span class="n">unnest</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Collection</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-2394"><a href="#L-2394"><span class="linenos">2394</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-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 class="o">-&gt;</span> <span class="n">In</span><span class="p">:</span>
+</span><span id="L-2397"><a href="#L-2397"><span class="linenos">2397</span></a> <span class="k">return</span> <span class="n">In</span><span class="p">(</span>
+</span><span id="L-2398"><a href="#L-2398"><span class="linenos">2398</span></a> <span class="n">this</span><span class="o">=</span><span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">),</span>
+</span><span id="L-2399"><a href="#L-2399"><span class="linenos">2399</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">],</span>
+</span><span id="L-2400"><a href="#L-2400"><span class="linenos">2400</span></a> <span class="n">query</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">query</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="k">if</span> <span class="n">query</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-2401"><a href="#L-2401"><span class="linenos">2401</span></a> <span class="n">unnest</span><span class="o">=</span><span class="n">Unnest</span><span class="p">(</span>
+</span><span id="L-2402"><a href="#L-2402"><span class="linenos">2402</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span>
+</span><span id="L-2403"><a href="#L-2403"><span class="linenos">2403</span></a> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">e</span><span class="p">),</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">ensure_list</span><span class="p">(</span><span class="n">unnest</span><span class="p">)</span>
+</span><span id="L-2404"><a href="#L-2404"><span class="linenos">2404</span></a> <span class="p">]</span>
+</span><span id="L-2405"><a href="#L-2405"><span class="linenos">2405</span></a> <span class="p">)</span>
+</span><span id="L-2406"><a href="#L-2406"><span class="linenos">2406</span></a> <span class="k">if</span> <span class="n">unnest</span>
+</span><span id="L-2407"><a href="#L-2407"><span class="linenos">2407</span></a> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-2408"><a href="#L-2408"><span class="linenos">2408</span></a> <span class="p">)</span>
+</span><span id="L-2409"><a href="#L-2409"><span class="linenos">2409</span></a>
+</span><span id="L-2410"><a href="#L-2410"><span class="linenos">2410</span></a>
+</span><span id="L-2411"><a href="#L-2411"><span class="linenos">2411</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-2412"><a href="#L-2412"><span class="linenos">2412</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="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 class="n">copy</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">Subquery</span><span class="p">:</span>
+</span><span id="L-2413"><a href="#L-2413"><span class="linenos">2413</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-2414"><a href="#L-2414"><span class="linenos">2414</span></a><span class="sd"> Convert this expression to an aliased expression that can be used as a Subquery.</span>
+</span><span id="L-2415"><a href="#L-2415"><span class="linenos">2415</span></a>
+</span><span id="L-2416"><a href="#L-2416"><span class="linenos">2416</span></a><span class="sd"> Example:</span>
+</span><span id="L-2417"><a href="#L-2417"><span class="linenos">2417</span></a><span class="sd"> &gt;&gt;&gt; subquery = Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).subquery()</span>
+</span><span id="L-2418"><a href="#L-2418"><span class="linenos">2418</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(subquery).sql()</span>
+</span><span id="L-2419"><a href="#L-2419"><span class="linenos">2419</span></a><span class="sd"> &#39;SELECT x FROM (SELECT x FROM tbl)&#39;</span>
+</span><span id="L-2420"><a href="#L-2420"><span class="linenos">2420</span></a>
+</span><span id="L-2421"><a href="#L-2421"><span class="linenos">2421</span></a><span class="sd"> Args:</span>
+</span><span id="L-2422"><a href="#L-2422"><span class="linenos">2422</span></a><span class="sd"> alias (str | Identifier): an optional alias for the subquery</span>
+</span><span id="L-2423"><a href="#L-2423"><span class="linenos">2423</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="L-2424"><a href="#L-2424"><span class="linenos">2424</span></a>
+</span><span id="L-2425"><a href="#L-2425"><span class="linenos">2425</span></a><span class="sd"> Returns:</span>
+</span><span id="L-2426"><a href="#L-2426"><span class="linenos">2426</span></a><span class="sd"> Alias: the subquery</span>
+</span><span id="L-2427"><a href="#L-2427"><span class="linenos">2427</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-2428"><a href="#L-2428"><span class="linenos">2428</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-2429"><a href="#L-2429"><span class="linenos">2429</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">alias</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2430"><a href="#L-2430"><span class="linenos">2430</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><span id="L-2431"><a href="#L-2431"><span class="linenos">2431</span></a>
+</span><span id="L-2432"><a href="#L-2432"><span class="linenos">2432</span></a> <span class="k">return</span> <span class="n">Subquery</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">instance</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-2433"><a href="#L-2433"><span class="linenos">2433</span></a>
+</span><span id="L-2434"><a href="#L-2434"><span class="linenos">2434</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span>
+</span><span id="L-2435"><a href="#L-2435"><span class="linenos">2435</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span> <span class="o">|</span> <span class="nb">int</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="L-2436"><a href="#L-2436"><span class="linenos">2436</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-2437"><a href="#L-2437"><span class="linenos">2437</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span>
+</span><span id="L-2438"><a href="#L-2438"><span class="linenos">2438</span></a>
+</span><span id="L-2439"><a href="#L-2439"><span class="linenos">2439</span></a> <span class="nd">@property</span>
+</span><span id="L-2440"><a href="#L-2440"><span class="linenos">2440</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-2441"><a href="#L-2441"><span class="linenos">2441</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-2442"><a href="#L-2442"><span class="linenos">2442</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-2443"><a href="#L-2443"><span class="linenos">2443</span></a> <span class="k">return</span> <span class="p">[]</span>
+</span><span id="L-2444"><a href="#L-2444"><span class="linenos">2444</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-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="nd">@property</span>
+</span><span id="L-2447"><a href="#L-2447"><span class="linenos">2447</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-2448"><a href="#L-2448"><span class="linenos">2448</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-2449"><a href="#L-2449"><span class="linenos">2449</span></a>
+</span><span id="L-2450"><a href="#L-2450"><span class="linenos">2450</span></a> <span class="nd">@property</span>
+</span><span id="L-2451"><a href="#L-2451"><span class="linenos">2451</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-2452"><a href="#L-2452"><span class="linenos">2452</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-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="k">def</span> <span class="nf">select</span><span class="p">(</span>
+</span><span id="L-2455"><a href="#L-2455"><span class="linenos">2455</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2456"><a href="#L-2456"><span class="linenos">2456</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="L-2457"><a href="#L-2457"><span class="linenos">2457</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-2458"><a href="#L-2458"><span class="linenos">2458</span></a> <span class="n">dialect</span><span 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-2459"><a href="#L-2459"><span class="linenos">2459</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-2460"><a href="#L-2460"><span class="linenos">2460</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2461"><a href="#L-2461"><span class="linenos">2461</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Subqueryable</span><span class="p">:</span>
+</span><span id="L-2462"><a href="#L-2462"><span class="linenos">2462</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span><span class="s2">&quot;Subqueryable objects must implement `select`&quot;</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="sd"> Args:</span>
-</span><span id="L-2465"><a href="#L-2465"><span class="linenos">2465</span></a><span class="sd"> alias: the SQL code string to parse as the table name.</span>
-</span><span id="L-2466"><a href="#L-2466"><span class="linenos">2466</span></a><span class="sd"> If an `Expression` instance is passed, this is used as-is.</span>
-</span><span id="L-2467"><a href="#L-2467"><span class="linenos">2467</span></a><span class="sd"> as_: the SQL code string to parse as the table expression.</span>
-</span><span id="L-2468"><a href="#L-2468"><span class="linenos">2468</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-2469"><a href="#L-2469"><span class="linenos">2469</span></a><span class="sd"> recursive: set the RECURSIVE part of the expression. Defaults to `False`.</span>
-</span><span id="L-2470"><a href="#L-2470"><span class="linenos">2470</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="L-2471"><a href="#L-2471"><span class="linenos">2471</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="L-2472"><a href="#L-2472"><span class="linenos">2472</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-2473"><a href="#L-2473"><span class="linenos">2473</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="L-2474"><a href="#L-2474"><span class="linenos">2474</span></a><span class="sd"> opts: other options to use to parse the input expressions.</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="sd"> Returns:</span>
-</span><span id="L-2477"><a href="#L-2477"><span class="linenos">2477</span></a><span class="sd"> The modified expression.</span>
-</span><span id="L-2478"><a href="#L-2478"><span class="linenos">2478</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-2479"><a href="#L-2479"><span class="linenos">2479</span></a> <span class="k">return</span> <span class="n">_apply_cte_builder</span><span class="p">(</span>
-</span><span id="L-2480"><a href="#L-2480"><span class="linenos">2480</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="p">,</span> <span class="n">as_</span><span class="p">,</span> <span class="n">recursive</span><span class="o">=</span><span class="n">recursive</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="L-2481"><a href="#L-2481"><span class="linenos">2481</span></a> <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><span id="L-2484"><a href="#L-2484"><span class="linenos">2484</span></a><span class="n">QUERY_MODIFIERS</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2485"><a href="#L-2485"><span class="linenos">2485</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-2486"><a href="#L-2486"><span class="linenos">2486</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-2487"><a href="#L-2487"><span class="linenos">2487</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-2488"><a href="#L-2488"><span class="linenos">2488</span></a> <span class="s2">&quot;connect&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2489"><a href="#L-2489"><span class="linenos">2489</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-2490"><a href="#L-2490"><span class="linenos">2490</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-2491"><a href="#L-2491"><span class="linenos">2491</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-2492"><a href="#L-2492"><span class="linenos">2492</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-2493"><a href="#L-2493"><span class="linenos">2493</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-2494"><a href="#L-2494"><span class="linenos">2494</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-2495"><a href="#L-2495"><span class="linenos">2495</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-2496"><a href="#L-2496"><span class="linenos">2496</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-2497"><a href="#L-2497"><span class="linenos">2497</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-2498"><a href="#L-2498"><span class="linenos">2498</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-2499"><a href="#L-2499"><span class="linenos">2499</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-2500"><a href="#L-2500"><span class="linenos">2500</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-2501"><a href="#L-2501"><span class="linenos">2501</span></a> <span class="s2">&quot;locks&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2502"><a href="#L-2502"><span class="linenos">2502</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-2503"><a href="#L-2503"><span class="linenos">2503</span></a> <span class="s2">&quot;settings&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2504"><a href="#L-2504"><span class="linenos">2504</span></a> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2505"><a href="#L-2505"><span class="linenos">2505</span></a><span class="p">}</span>
-</span><span id="L-2506"><a href="#L-2506"><span class="linenos">2506</span></a>
-</span><span id="L-2507"><a href="#L-2507"><span class="linenos">2507</span></a>
-</span><span id="L-2508"><a href="#L-2508"><span class="linenos">2508</span></a><span class="c1"># https://learn.microsoft.com/en-us/sql/t-sql/queries/hints-transact-sql-table?view=sql-server-ver16</span>
-</span><span id="L-2509"><a href="#L-2509"><span class="linenos">2509</span></a><span class="k">class</span> <span class="nc">WithTableHint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2510"><a href="#L-2510"><span class="linenos">2510</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-2511"><a href="#L-2511"><span class="linenos">2511</span></a>
-</span><span id="L-2512"><a href="#L-2512"><span class="linenos">2512</span></a>
-</span><span id="L-2513"><a href="#L-2513"><span class="linenos">2513</span></a><span class="c1"># https://dev.mysql.com/doc/refman/8.0/en/index-hints.html</span>
-</span><span id="L-2514"><a href="#L-2514"><span class="linenos">2514</span></a><span class="k">class</span> <span class="nc">IndexTableHint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2515"><a href="#L-2515"><span class="linenos">2515</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;target&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-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><span id="L-2518"><a href="#L-2518"><span class="linenos">2518</span></a><span class="c1"># https://docs.snowflake.com/en/sql-reference/constructs/at-before</span>
-</span><span id="L-2519"><a href="#L-2519"><span class="linenos">2519</span></a><span class="k">class</span> <span class="nc">HistoricalData</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2520"><a href="#L-2520"><span class="linenos">2520</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-2521"><a href="#L-2521"><span class="linenos">2521</span></a>
-</span><span id="L-2522"><a href="#L-2522"><span class="linenos">2522</span></a>
-</span><span id="L-2523"><a href="#L-2523"><span class="linenos">2523</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-2524"><a href="#L-2524"><span class="linenos">2524</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2525"><a href="#L-2525"><span class="linenos">2525</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-2526"><a href="#L-2526"><span class="linenos">2526</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-2527"><a href="#L-2527"><span class="linenos">2527</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-2528"><a href="#L-2528"><span class="linenos">2528</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-2529"><a href="#L-2529"><span class="linenos">2529</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-2530"><a href="#L-2530"><span class="linenos">2530</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-2531"><a href="#L-2531"><span class="linenos">2531</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-2532"><a href="#L-2532"><span class="linenos">2532</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-2533"><a href="#L-2533"><span class="linenos">2533</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-2534"><a href="#L-2534"><span class="linenos">2534</span></a> <span class="s2">&quot;version&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2535"><a href="#L-2535"><span class="linenos">2535</span></a> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2536"><a href="#L-2536"><span class="linenos">2536</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-2537"><a href="#L-2537"><span class="linenos">2537</span></a> <span class="s2">&quot;index&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2538"><a href="#L-2538"><span class="linenos">2538</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-2539"><a href="#L-2539"><span class="linenos">2539</span></a> <span class="s2">&quot;when&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2540"><a href="#L-2540"><span class="linenos">2540</span></a> <span class="p">}</span>
-</span><span id="L-2541"><a href="#L-2541"><span class="linenos">2541</span></a>
-</span><span id="L-2542"><a href="#L-2542"><span class="linenos">2542</span></a> <span class="nd">@property</span>
-</span><span id="L-2543"><a href="#L-2543"><span class="linenos">2543</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-2544"><a href="#L-2544"><span class="linenos">2544</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
-</span><span id="L-2545"><a href="#L-2545"><span class="linenos">2545</span></a> <span class="k">return</span> <span class="s2">&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="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-2547"><a href="#L-2547"><span class="linenos">2547</span></a>
-</span><span id="L-2548"><a href="#L-2548"><span class="linenos">2548</span></a> <span class="nd">@property</span>
-</span><span id="L-2549"><a href="#L-2549"><span class="linenos">2549</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-2550"><a href="#L-2550"><span class="linenos">2550</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-2551"><a href="#L-2551"><span class="linenos">2551</span></a>
-</span><span id="L-2552"><a href="#L-2552"><span class="linenos">2552</span></a> <span class="nd">@property</span>
-</span><span id="L-2553"><a href="#L-2553"><span class="linenos">2553</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-2554"><a href="#L-2554"><span class="linenos">2554</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-2555"><a href="#L-2555"><span class="linenos">2555</span></a>
-</span><span id="L-2556"><a href="#L-2556"><span class="linenos">2556</span></a> <span class="nd">@property</span>
-</span><span id="L-2557"><a href="#L-2557"><span class="linenos">2557</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-2558"><a href="#L-2558"><span class="linenos">2558</span></a> <span class="k">return</span> <span class="p">[]</span>
-</span><span id="L-2559"><a href="#L-2559"><span class="linenos">2559</span></a>
-</span><span id="L-2560"><a href="#L-2560"><span class="linenos">2560</span></a> <span class="nd">@property</span>
-</span><span id="L-2561"><a href="#L-2561"><span class="linenos">2561</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-2562"><a href="#L-2562"><span class="linenos">2562</span></a> <span class="k">return</span> <span class="p">[]</span>
+</span><span id="L-2464"><a href="#L-2464"><span class="linenos">2464</span></a> <span class="k">def</span> <span class="nf">with_</span><span class="p">(</span>
+</span><span id="L-2465"><a href="#L-2465"><span class="linenos">2465</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2466"><a href="#L-2466"><span class="linenos">2466</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-2467"><a href="#L-2467"><span class="linenos">2467</span></a> <span class="n">as_</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-2468"><a href="#L-2468"><span class="linenos">2468</span></a> <span class="n">recursive</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-2469"><a href="#L-2469"><span class="linenos">2469</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-2470"><a href="#L-2470"><span class="linenos">2470</span></a> <span class="n">dialect</span><span 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-2471"><a href="#L-2471"><span class="linenos">2471</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-2472"><a href="#L-2472"><span class="linenos">2472</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2473"><a href="#L-2473"><span class="linenos">2473</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Subqueryable</span><span class="p">:</span>
+</span><span id="L-2474"><a href="#L-2474"><span class="linenos">2474</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-2475"><a href="#L-2475"><span class="linenos">2475</span></a><span class="sd"> Append to or set the common table expressions.</span>
+</span><span id="L-2476"><a href="#L-2476"><span class="linenos">2476</span></a>
+</span><span id="L-2477"><a href="#L-2477"><span class="linenos">2477</span></a><span class="sd"> Example:</span>
+</span><span id="L-2478"><a href="#L-2478"><span class="linenos">2478</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-2479"><a href="#L-2479"><span class="linenos">2479</span></a><span class="sd"> &#39;WITH tbl2 AS (SELECT * FROM tbl) SELECT x FROM tbl2&#39;</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="sd"> Args:</span>
+</span><span id="L-2482"><a href="#L-2482"><span class="linenos">2482</span></a><span class="sd"> alias: the SQL code string to parse as the table name.</span>
+</span><span id="L-2483"><a href="#L-2483"><span class="linenos">2483</span></a><span class="sd"> If an `Expression` instance is passed, this is used as-is.</span>
+</span><span id="L-2484"><a href="#L-2484"><span class="linenos">2484</span></a><span class="sd"> as_: the SQL code string to parse as the table expression.</span>
+</span><span id="L-2485"><a href="#L-2485"><span class="linenos">2485</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-2486"><a href="#L-2486"><span class="linenos">2486</span></a><span class="sd"> recursive: set the RECURSIVE part of the expression. Defaults to `False`.</span>
+</span><span id="L-2487"><a href="#L-2487"><span class="linenos">2487</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="L-2488"><a href="#L-2488"><span class="linenos">2488</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="L-2489"><a href="#L-2489"><span class="linenos">2489</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-2490"><a href="#L-2490"><span class="linenos">2490</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-2491"><a href="#L-2491"><span class="linenos">2491</span></a><span class="sd"> opts: other options to use to parse the input expressions.</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"> Returns:</span>
+</span><span id="L-2494"><a href="#L-2494"><span class="linenos">2494</span></a><span class="sd"> The modified expression.</span>
+</span><span id="L-2495"><a href="#L-2495"><span class="linenos">2495</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-2496"><a href="#L-2496"><span class="linenos">2496</span></a> <span class="k">return</span> <span class="n">_apply_cte_builder</span><span class="p">(</span>
+</span><span id="L-2497"><a href="#L-2497"><span class="linenos">2497</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="p">,</span> <span class="n">as_</span><span class="p">,</span> <span class="n">recursive</span><span class="o">=</span><span class="n">recursive</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="L-2498"><a href="#L-2498"><span class="linenos">2498</span></a> <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><span id="L-2501"><a href="#L-2501"><span class="linenos">2501</span></a><span class="n">QUERY_MODIFIERS</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2502"><a href="#L-2502"><span class="linenos">2502</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-2503"><a href="#L-2503"><span class="linenos">2503</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-2504"><a href="#L-2504"><span class="linenos">2504</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-2505"><a href="#L-2505"><span class="linenos">2505</span></a> <span class="s2">&quot;connect&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2506"><a href="#L-2506"><span class="linenos">2506</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-2507"><a href="#L-2507"><span class="linenos">2507</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-2508"><a href="#L-2508"><span class="linenos">2508</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-2509"><a href="#L-2509"><span class="linenos">2509</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-2510"><a href="#L-2510"><span class="linenos">2510</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-2511"><a href="#L-2511"><span class="linenos">2511</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-2512"><a href="#L-2512"><span class="linenos">2512</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-2513"><a href="#L-2513"><span class="linenos">2513</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-2514"><a href="#L-2514"><span class="linenos">2514</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-2515"><a href="#L-2515"><span class="linenos">2515</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-2516"><a href="#L-2516"><span class="linenos">2516</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-2517"><a href="#L-2517"><span class="linenos">2517</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-2518"><a href="#L-2518"><span class="linenos">2518</span></a> <span class="s2">&quot;locks&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2519"><a href="#L-2519"><span class="linenos">2519</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-2520"><a href="#L-2520"><span class="linenos">2520</span></a> <span class="s2">&quot;settings&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2521"><a href="#L-2521"><span class="linenos">2521</span></a> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2522"><a href="#L-2522"><span class="linenos">2522</span></a><span class="p">}</span>
+</span><span id="L-2523"><a href="#L-2523"><span class="linenos">2523</span></a>
+</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="c1"># https://learn.microsoft.com/en-us/sql/t-sql/queries/hints-transact-sql-table?view=sql-server-ver16</span>
+</span><span id="L-2526"><a href="#L-2526"><span class="linenos">2526</span></a><span class="k">class</span> <span class="nc">WithTableHint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2527"><a href="#L-2527"><span class="linenos">2527</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-2528"><a href="#L-2528"><span class="linenos">2528</span></a>
+</span><span id="L-2529"><a href="#L-2529"><span class="linenos">2529</span></a>
+</span><span id="L-2530"><a href="#L-2530"><span class="linenos">2530</span></a><span class="c1"># https://dev.mysql.com/doc/refman/8.0/en/index-hints.html</span>
+</span><span id="L-2531"><a href="#L-2531"><span class="linenos">2531</span></a><span class="k">class</span> <span class="nc">IndexTableHint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2532"><a href="#L-2532"><span class="linenos">2532</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;target&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-2533"><a href="#L-2533"><span class="linenos">2533</span></a>
+</span><span id="L-2534"><a href="#L-2534"><span class="linenos">2534</span></a>
+</span><span id="L-2535"><a href="#L-2535"><span class="linenos">2535</span></a><span class="c1"># https://docs.snowflake.com/en/sql-reference/constructs/at-before</span>
+</span><span id="L-2536"><a href="#L-2536"><span class="linenos">2536</span></a><span class="k">class</span> <span class="nc">HistoricalData</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2537"><a href="#L-2537"><span class="linenos">2537</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-2538"><a href="#L-2538"><span class="linenos">2538</span></a>
+</span><span id="L-2539"><a href="#L-2539"><span class="linenos">2539</span></a>
+</span><span id="L-2540"><a href="#L-2540"><span class="linenos">2540</span></a><span class="k">class</span> <span class="nc">Table</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2541"><a href="#L-2541"><span class="linenos">2541</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2542"><a href="#L-2542"><span class="linenos">2542</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-2543"><a href="#L-2543"><span class="linenos">2543</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-2544"><a href="#L-2544"><span class="linenos">2544</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-2545"><a href="#L-2545"><span class="linenos">2545</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-2546"><a href="#L-2546"><span class="linenos">2546</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-2547"><a href="#L-2547"><span class="linenos">2547</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-2548"><a href="#L-2548"><span class="linenos">2548</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-2549"><a href="#L-2549"><span class="linenos">2549</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-2550"><a href="#L-2550"><span class="linenos">2550</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-2551"><a href="#L-2551"><span class="linenos">2551</span></a> <span class="s2">&quot;version&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2552"><a href="#L-2552"><span class="linenos">2552</span></a> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2553"><a href="#L-2553"><span class="linenos">2553</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-2554"><a href="#L-2554"><span class="linenos">2554</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-2555"><a href="#L-2555"><span class="linenos">2555</span></a> <span class="s2">&quot;when&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2556"><a href="#L-2556"><span class="linenos">2556</span></a> <span class="p">}</span>
+</span><span id="L-2557"><a href="#L-2557"><span class="linenos">2557</span></a>
+</span><span id="L-2558"><a href="#L-2558"><span class="linenos">2558</span></a> <span class="nd">@property</span>
+</span><span id="L-2559"><a href="#L-2559"><span class="linenos">2559</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-2560"><a href="#L-2560"><span class="linenos">2560</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
+</span><span id="L-2561"><a href="#L-2561"><span class="linenos">2561</span></a> <span class="k">return</span> <span class="s2">&quot;&quot;</span>
+</span><span id="L-2562"><a href="#L-2562"><span class="linenos">2562</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-2563"><a href="#L-2563"><span class="linenos">2563</span></a>
</span><span id="L-2564"><a href="#L-2564"><span class="linenos">2564</span></a> <span class="nd">@property</span>
-</span><span id="L-2565"><a href="#L-2565"><span class="linenos">2565</span></a> <span class="k">def</span> <span class="nf">parts</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
-</span><span id="L-2566"><a href="#L-2566"><span class="linenos">2566</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Return the parts of a table in order catalog, db, table.&quot;&quot;&quot;</span>
-</span><span id="L-2567"><a href="#L-2567"><span class="linenos">2567</span></a> <span class="n">parts</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
-</span><span id="L-2568"><a href="#L-2568"><span class="linenos">2568</span></a>
-</span><span id="L-2569"><a href="#L-2569"><span class="linenos">2569</span></a> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">&quot;catalog&quot;</span><span class="p">,</span> <span class="s2">&quot;db&quot;</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">):</span>
-</span><span id="L-2570"><a href="#L-2570"><span class="linenos">2570</span></a> <span class="n">part</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span>
+</span><span id="L-2565"><a href="#L-2565"><span class="linenos">2565</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-2566"><a href="#L-2566"><span class="linenos">2566</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-2567"><a href="#L-2567"><span class="linenos">2567</span></a>
+</span><span id="L-2568"><a href="#L-2568"><span class="linenos">2568</span></a> <span class="nd">@property</span>
+</span><span id="L-2569"><a href="#L-2569"><span class="linenos">2569</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-2570"><a href="#L-2570"><span class="linenos">2570</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-2571"><a href="#L-2571"><span class="linenos">2571</span></a>
-</span><span id="L-2572"><a href="#L-2572"><span class="linenos">2572</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">part</span><span class="p">,</span> <span class="n">Dot</span><span class="p">):</span>
-</span><span id="L-2573"><a href="#L-2573"><span class="linenos">2573</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">part</span><span class="o">.</span><span class="n">flatten</span><span class="p">())</span>
-</span><span id="L-2574"><a href="#L-2574"><span class="linenos">2574</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">part</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2575"><a href="#L-2575"><span class="linenos">2575</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">part</span><span class="p">)</span>
-</span><span id="L-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="k">return</span> <span class="n">parts</span>
-</span><span id="L-2578"><a href="#L-2578"><span class="linenos">2578</span></a>
+</span><span id="L-2572"><a href="#L-2572"><span class="linenos">2572</span></a> <span class="nd">@property</span>
+</span><span id="L-2573"><a href="#L-2573"><span class="linenos">2573</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-2574"><a href="#L-2574"><span class="linenos">2574</span></a> <span class="k">return</span> <span class="p">[]</span>
+</span><span id="L-2575"><a href="#L-2575"><span class="linenos">2575</span></a>
+</span><span id="L-2576"><a href="#L-2576"><span class="linenos">2576</span></a> <span class="nd">@property</span>
+</span><span id="L-2577"><a href="#L-2577"><span class="linenos">2577</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-2578"><a href="#L-2578"><span class="linenos">2578</span></a> <span class="k">return</span> <span class="p">[]</span>
</span><span id="L-2579"><a href="#L-2579"><span class="linenos">2579</span></a>
-</span><span id="L-2580"><a href="#L-2580"><span class="linenos">2580</span></a><span class="k">class</span> <span class="nc">Union</span><span class="p">(</span><span class="n">Subqueryable</span><span class="p">):</span>
-</span><span id="L-2581"><a href="#L-2581"><span class="linenos">2581</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2582"><a href="#L-2582"><span class="linenos">2582</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-2583"><a href="#L-2583"><span class="linenos">2583</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-2584"><a href="#L-2584"><span class="linenos">2584</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-2585"><a href="#L-2585"><span class="linenos">2585</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-2586"><a href="#L-2586"><span class="linenos">2586</span></a> <span class="s2">&quot;by_name&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2587"><a href="#L-2587"><span class="linenos">2587</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span>
-</span><span id="L-2588"><a href="#L-2588"><span class="linenos">2588</span></a> <span class="p">}</span>
-</span><span id="L-2589"><a href="#L-2589"><span class="linenos">2589</span></a>
-</span><span id="L-2590"><a href="#L-2590"><span class="linenos">2590</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span>
-</span><span id="L-2591"><a href="#L-2591"><span class="linenos">2591</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span> <span class="o">|</span> <span class="nb">int</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="L-2592"><a href="#L-2592"><span class="linenos">2592</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</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"> Set the LIMIT expression.</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(&quot;1&quot;).union(select(&quot;1&quot;)).limit(1).sql()</span>
-</span><span id="L-2598"><a href="#L-2598"><span class="linenos">2598</span></a><span class="sd"> &#39;SELECT * FROM (SELECT 1 UNION SELECT 1) AS _l_0 LIMIT 1&#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"> expression: the SQL code string to parse.</span>
-</span><span id="L-2602"><a href="#L-2602"><span class="linenos">2602</span></a><span class="sd"> This can also be an integer.</span>
-</span><span id="L-2603"><a href="#L-2603"><span class="linenos">2603</span></a><span class="sd"> If a `Limit` instance is passed, this is used as-is.</span>
-</span><span id="L-2604"><a href="#L-2604"><span class="linenos">2604</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Limit`.</span>
-</span><span id="L-2605"><a href="#L-2605"><span class="linenos">2605</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-2606"><a href="#L-2606"><span class="linenos">2606</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="L-2607"><a href="#L-2607"><span class="linenos">2607</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="L-2608"><a href="#L-2608"><span class="linenos">2608</span></a>
-</span><span id="L-2609"><a href="#L-2609"><span class="linenos">2609</span></a><span class="sd"> Returns:</span>
-</span><span id="L-2610"><a href="#L-2610"><span class="linenos">2610</span></a><span class="sd"> The limited subqueryable.</span>
-</span><span id="L-2611"><a href="#L-2611"><span class="linenos">2611</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-2612"><a href="#L-2612"><span class="linenos">2612</span></a> <span class="k">return</span> <span class="p">(</span>
-</span><span id="L-2613"><a href="#L-2613"><span class="linenos">2613</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-2614"><a href="#L-2614"><span class="linenos">2614</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-2615"><a href="#L-2615"><span class="linenos">2615</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-2616"><a href="#L-2616"><span class="linenos">2616</span></a> <span class="p">)</span>
-</span><span id="L-2617"><a href="#L-2617"><span class="linenos">2617</span></a>
-</span><span id="L-2618"><a href="#L-2618"><span class="linenos">2618</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
-</span><span id="L-2619"><a href="#L-2619"><span class="linenos">2619</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-2620"><a href="#L-2620"><span class="linenos">2620</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="L-2621"><a href="#L-2621"><span class="linenos">2621</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-2622"><a href="#L-2622"><span class="linenos">2622</span></a> <span class="n">dialect</span><span 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-2623"><a href="#L-2623"><span class="linenos">2623</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-2624"><a href="#L-2624"><span class="linenos">2624</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2625"><a href="#L-2625"><span class="linenos">2625</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Union</span><span class="p">:</span>
-</span><span id="L-2626"><a href="#L-2626"><span class="linenos">2626</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-2627"><a href="#L-2627"><span class="linenos">2627</span></a>
-</span><span id="L-2628"><a href="#L-2628"><span class="linenos">2628</span></a><span class="sd"> Example:</span>
-</span><span id="L-2629"><a href="#L-2629"><span class="linenos">2629</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
-</span><span id="L-2630"><a href="#L-2630"><span class="linenos">2630</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-2631"><a href="#L-2631"><span class="linenos">2631</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-2580"><a href="#L-2580"><span class="linenos">2580</span></a> <span class="nd">@property</span>
+</span><span id="L-2581"><a href="#L-2581"><span class="linenos">2581</span></a> <span class="k">def</span> <span class="nf">parts</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="L-2582"><a href="#L-2582"><span class="linenos">2582</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Return the parts of a table in order catalog, db, table.&quot;&quot;&quot;</span>
+</span><span id="L-2583"><a href="#L-2583"><span class="linenos">2583</span></a> <span class="n">parts</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="L-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="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">&quot;catalog&quot;</span><span class="p">,</span> <span class="s2">&quot;db&quot;</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">):</span>
+</span><span id="L-2586"><a href="#L-2586"><span class="linenos">2586</span></a> <span class="n">part</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span>
+</span><span id="L-2587"><a href="#L-2587"><span class="linenos">2587</span></a>
+</span><span id="L-2588"><a href="#L-2588"><span class="linenos">2588</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">part</span><span class="p">,</span> <span class="n">Dot</span><span class="p">):</span>
+</span><span id="L-2589"><a href="#L-2589"><span class="linenos">2589</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">part</span><span class="o">.</span><span class="n">flatten</span><span class="p">())</span>
+</span><span id="L-2590"><a href="#L-2590"><span class="linenos">2590</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">part</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2591"><a href="#L-2591"><span class="linenos">2591</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">part</span><span class="p">)</span>
+</span><span id="L-2592"><a href="#L-2592"><span class="linenos">2592</span></a>
+</span><span id="L-2593"><a href="#L-2593"><span class="linenos">2593</span></a> <span class="k">return</span> <span class="n">parts</span>
+</span><span id="L-2594"><a href="#L-2594"><span class="linenos">2594</span></a>
+</span><span id="L-2595"><a href="#L-2595"><span class="linenos">2595</span></a> <span class="k">def</span> <span class="nf">to_column</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Alias</span> <span class="o">|</span> <span class="n">Column</span> <span class="o">|</span> <span class="n">Dot</span><span class="p">:</span>
+</span><span id="L-2596"><a href="#L-2596"><span class="linenos">2596</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-2597"><a href="#L-2597"><span class="linenos">2597</span></a> <span class="n">col</span> <span class="o">=</span> <span class="n">column</span><span class="p">(</span><span class="o">*</span><span class="nb">reversed</span><span class="p">(</span><span class="n">parts</span><span class="p">[</span><span class="mi">0</span><span class="p">:</span><span class="mi">4</span><span class="p">]),</span> <span class="n">fields</span><span class="o">=</span><span class="n">parts</span><span class="p">[</span><span class="mi">4</span><span class="p">:],</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="c1"># type: ignore</span>
+</span><span id="L-2598"><a href="#L-2598"><span class="linenos">2598</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;alias&quot;</span><span class="p">)</span>
+</span><span id="L-2599"><a href="#L-2599"><span class="linenos">2599</span></a> <span class="k">if</span> <span class="n">alias</span><span class="p">:</span>
+</span><span id="L-2600"><a href="#L-2600"><span class="linenos">2600</span></a> <span class="n">col</span> <span class="o">=</span> <span class="n">alias_</span><span class="p">(</span><span class="n">col</span><span class="p">,</span> <span class="n">alias</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span>
+</span><span id="L-2601"><a href="#L-2601"><span class="linenos">2601</span></a> <span class="k">return</span> <span class="n">col</span>
+</span><span id="L-2602"><a href="#L-2602"><span class="linenos">2602</span></a>
+</span><span id="L-2603"><a href="#L-2603"><span class="linenos">2603</span></a>
+</span><span id="L-2604"><a href="#L-2604"><span class="linenos">2604</span></a><span class="k">class</span> <span class="nc">Union</span><span class="p">(</span><span class="n">Subqueryable</span><span class="p">):</span>
+</span><span id="L-2605"><a href="#L-2605"><span class="linenos">2605</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2606"><a href="#L-2606"><span class="linenos">2606</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-2607"><a href="#L-2607"><span class="linenos">2607</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-2608"><a href="#L-2608"><span class="linenos">2608</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-2609"><a href="#L-2609"><span class="linenos">2609</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-2610"><a href="#L-2610"><span class="linenos">2610</span></a> <span class="s2">&quot;by_name&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2611"><a href="#L-2611"><span class="linenos">2611</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span>
+</span><span id="L-2612"><a href="#L-2612"><span class="linenos">2612</span></a> <span class="p">}</span>
+</span><span id="L-2613"><a href="#L-2613"><span class="linenos">2613</span></a>
+</span><span id="L-2614"><a href="#L-2614"><span class="linenos">2614</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span>
+</span><span id="L-2615"><a href="#L-2615"><span class="linenos">2615</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span> <span class="o">|</span> <span class="nb">int</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="L-2616"><a href="#L-2616"><span class="linenos">2616</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-2617"><a href="#L-2617"><span class="linenos">2617</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-2618"><a href="#L-2618"><span class="linenos">2618</span></a><span class="sd"> Set the LIMIT expression.</span>
+</span><span id="L-2619"><a href="#L-2619"><span class="linenos">2619</span></a>
+</span><span id="L-2620"><a href="#L-2620"><span class="linenos">2620</span></a><span class="sd"> Example:</span>
+</span><span id="L-2621"><a href="#L-2621"><span class="linenos">2621</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-2622"><a href="#L-2622"><span class="linenos">2622</span></a><span class="sd"> &#39;SELECT * FROM (SELECT 1 UNION SELECT 1) AS _l_0 LIMIT 1&#39;</span>
+</span><span id="L-2623"><a href="#L-2623"><span class="linenos">2623</span></a>
+</span><span id="L-2624"><a href="#L-2624"><span class="linenos">2624</span></a><span class="sd"> Args:</span>
+</span><span id="L-2625"><a href="#L-2625"><span class="linenos">2625</span></a><span class="sd"> expression: the SQL code string to parse.</span>
+</span><span id="L-2626"><a href="#L-2626"><span class="linenos">2626</span></a><span class="sd"> This can also be an integer.</span>
+</span><span id="L-2627"><a href="#L-2627"><span class="linenos">2627</span></a><span class="sd"> If a `Limit` instance is passed, this is used as-is.</span>
+</span><span id="L-2628"><a href="#L-2628"><span class="linenos">2628</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Limit`.</span>
+</span><span id="L-2629"><a href="#L-2629"><span class="linenos">2629</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-2630"><a href="#L-2630"><span class="linenos">2630</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-2631"><a href="#L-2631"><span class="linenos">2631</span></a><span class="sd"> opts: other options to use to parse the input expressions.</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"> Args:</span>
-</span><span id="L-2634"><a href="#L-2634"><span class="linenos">2634</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="L-2635"><a href="#L-2635"><span class="linenos">2635</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-2636"><a href="#L-2636"><span class="linenos">2636</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="L-2637"><a href="#L-2637"><span class="linenos">2637</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="L-2638"><a href="#L-2638"><span class="linenos">2638</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="L-2639"><a href="#L-2639"><span class="linenos">2639</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="L-2640"><a href="#L-2640"><span class="linenos">2640</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-2633"><a href="#L-2633"><span class="linenos">2633</span></a><span class="sd"> Returns:</span>
+</span><span id="L-2634"><a href="#L-2634"><span class="linenos">2634</span></a><span class="sd"> The limited subqueryable.</span>
+</span><span id="L-2635"><a href="#L-2635"><span class="linenos">2635</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-2636"><a href="#L-2636"><span class="linenos">2636</span></a> <span class="k">return</span> <span class="p">(</span>
+</span><span id="L-2637"><a href="#L-2637"><span class="linenos">2637</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-2638"><a href="#L-2638"><span class="linenos">2638</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-2639"><a href="#L-2639"><span class="linenos">2639</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-2640"><a href="#L-2640"><span class="linenos">2640</span></a> <span class="p">)</span>
</span><span id="L-2641"><a href="#L-2641"><span class="linenos">2641</span></a>
-</span><span id="L-2642"><a href="#L-2642"><span class="linenos">2642</span></a><span class="sd"> Returns:</span>
-</span><span id="L-2643"><a href="#L-2643"><span class="linenos">2643</span></a><span class="sd"> Union: the modified expression.</span>
-</span><span id="L-2644"><a href="#L-2644"><span class="linenos">2644</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-2645"><a href="#L-2645"><span class="linenos">2645</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-2646"><a href="#L-2646"><span class="linenos">2646</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-2647"><a href="#L-2647"><span class="linenos">2647</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-2648"><a href="#L-2648"><span class="linenos">2648</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-2649"><a href="#L-2649"><span class="linenos">2649</span></a> <span class="p">)</span>
-</span><span id="L-2650"><a href="#L-2650"><span class="linenos">2650</span></a> <span class="k">return</span> <span class="n">this</span>
+</span><span id="L-2642"><a href="#L-2642"><span class="linenos">2642</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
+</span><span id="L-2643"><a href="#L-2643"><span class="linenos">2643</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2644"><a href="#L-2644"><span class="linenos">2644</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="L-2645"><a href="#L-2645"><span class="linenos">2645</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-2646"><a href="#L-2646"><span class="linenos">2646</span></a> <span class="n">dialect</span><span 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-2647"><a href="#L-2647"><span class="linenos">2647</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-2648"><a href="#L-2648"><span class="linenos">2648</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2649"><a href="#L-2649"><span class="linenos">2649</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Union</span><span class="p">:</span>
+</span><span id="L-2650"><a href="#L-2650"><span class="linenos">2650</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-2651"><a href="#L-2651"><span class="linenos">2651</span></a>
-</span><span id="L-2652"><a href="#L-2652"><span class="linenos">2652</span></a> <span class="nd">@property</span>
-</span><span id="L-2653"><a href="#L-2653"><span class="linenos">2653</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-2654"><a href="#L-2654"><span class="linenos">2654</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-2655"><a href="#L-2655"><span class="linenos">2655</span></a>
-</span><span id="L-2656"><a href="#L-2656"><span class="linenos">2656</span></a> <span class="nd">@property</span>
-</span><span id="L-2657"><a href="#L-2657"><span class="linenos">2657</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-2658"><a href="#L-2658"><span class="linenos">2658</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-2659"><a href="#L-2659"><span class="linenos">2659</span></a>
-</span><span id="L-2660"><a href="#L-2660"><span class="linenos">2660</span></a> <span class="nd">@property</span>
-</span><span id="L-2661"><a href="#L-2661"><span class="linenos">2661</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-2662"><a href="#L-2662"><span class="linenos">2662</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-2663"><a href="#L-2663"><span class="linenos">2663</span></a>
-</span><span id="L-2664"><a href="#L-2664"><span class="linenos">2664</span></a> <span class="nd">@property</span>
-</span><span id="L-2665"><a href="#L-2665"><span class="linenos">2665</span></a> <span class="k">def</span> <span class="nf">left</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="L-2666"><a href="#L-2666"><span class="linenos">2666</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-2667"><a href="#L-2667"><span class="linenos">2667</span></a>
-</span><span id="L-2668"><a href="#L-2668"><span class="linenos">2668</span></a> <span class="nd">@property</span>
-</span><span id="L-2669"><a href="#L-2669"><span class="linenos">2669</span></a> <span class="k">def</span> <span class="nf">right</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="L-2670"><a href="#L-2670"><span class="linenos">2670</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-2671"><a href="#L-2671"><span class="linenos">2671</span></a>
-</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="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-2674"><a href="#L-2674"><span class="linenos">2674</span></a> <span class="k">pass</span>
+</span><span id="L-2652"><a href="#L-2652"><span class="linenos">2652</span></a><span class="sd"> Example:</span>
+</span><span id="L-2653"><a href="#L-2653"><span class="linenos">2653</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
+</span><span id="L-2654"><a href="#L-2654"><span class="linenos">2654</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-2655"><a href="#L-2655"><span class="linenos">2655</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-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="sd"> Args:</span>
+</span><span id="L-2658"><a href="#L-2658"><span class="linenos">2658</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="L-2659"><a href="#L-2659"><span class="linenos">2659</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-2660"><a href="#L-2660"><span class="linenos">2660</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="L-2661"><a href="#L-2661"><span class="linenos">2661</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="L-2662"><a href="#L-2662"><span class="linenos">2662</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="L-2663"><a href="#L-2663"><span class="linenos">2663</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-2664"><a href="#L-2664"><span class="linenos">2664</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</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="sd"> Returns:</span>
+</span><span id="L-2667"><a href="#L-2667"><span class="linenos">2667</span></a><span class="sd"> Union: the modified expression.</span>
+</span><span id="L-2668"><a href="#L-2668"><span class="linenos">2668</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-2669"><a href="#L-2669"><span class="linenos">2669</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-2670"><a href="#L-2670"><span class="linenos">2670</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-2671"><a href="#L-2671"><span class="linenos">2671</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-2672"><a href="#L-2672"><span class="linenos">2672</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-2673"><a href="#L-2673"><span class="linenos">2673</span></a> <span class="p">)</span>
+</span><span id="L-2674"><a href="#L-2674"><span class="linenos">2674</span></a> <span class="k">return</span> <span class="n">this</span>
</span><span id="L-2675"><a href="#L-2675"><span class="linenos">2675</span></a>
-</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="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-2678"><a href="#L-2678"><span class="linenos">2678</span></a> <span class="k">pass</span>
+</span><span id="L-2676"><a href="#L-2676"><span class="linenos">2676</span></a> <span class="nd">@property</span>
+</span><span id="L-2677"><a href="#L-2677"><span class="linenos">2677</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-2678"><a href="#L-2678"><span class="linenos">2678</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-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><span id="L-2681"><a href="#L-2681"><span class="linenos">2681</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-2682"><a href="#L-2682"><span class="linenos">2682</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2683"><a href="#L-2683"><span class="linenos">2683</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-2684"><a href="#L-2684"><span class="linenos">2684</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-2685"><a href="#L-2685"><span class="linenos">2685</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-2686"><a href="#L-2686"><span class="linenos">2686</span></a> <span class="p">}</span>
+</span><span id="L-2680"><a href="#L-2680"><span class="linenos">2680</span></a> <span class="nd">@property</span>
+</span><span id="L-2681"><a href="#L-2681"><span class="linenos">2681</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-2682"><a href="#L-2682"><span class="linenos">2682</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-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="nd">@property</span>
+</span><span id="L-2685"><a href="#L-2685"><span class="linenos">2685</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-2686"><a href="#L-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">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">selects</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><span id="L-2689"><a href="#L-2689"><span class="linenos">2689</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-2690"><a href="#L-2690"><span class="linenos">2690</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2691"><a href="#L-2691"><span class="linenos">2691</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-2692"><a href="#L-2692"><span class="linenos">2692</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-2693"><a href="#L-2693"><span class="linenos">2693</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-2694"><a href="#L-2694"><span class="linenos">2694</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-2695"><a href="#L-2695"><span class="linenos">2695</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-2696"><a href="#L-2696"><span class="linenos">2696</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-2697"><a href="#L-2697"><span class="linenos">2697</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-2698"><a href="#L-2698"><span class="linenos">2698</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-2699"><a href="#L-2699"><span class="linenos">2699</span></a> <span class="p">}</span>
+</span><span id="L-2688"><a href="#L-2688"><span class="linenos">2688</span></a> <span class="nd">@property</span>
+</span><span id="L-2689"><a href="#L-2689"><span class="linenos">2689</span></a> <span class="k">def</span> <span class="nf">left</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="L-2690"><a href="#L-2690"><span class="linenos">2690</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-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="nd">@property</span>
+</span><span id="L-2693"><a href="#L-2693"><span class="linenos">2693</span></a> <span class="k">def</span> <span class="nf">right</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="L-2694"><a href="#L-2694"><span class="linenos">2694</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-2695"><a href="#L-2695"><span class="linenos">2695</span></a>
+</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="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-2698"><a href="#L-2698"><span class="linenos">2698</span></a> <span class="k">pass</span>
+</span><span id="L-2699"><a href="#L-2699"><span class="linenos">2699</span></a>
</span><span id="L-2700"><a href="#L-2700"><span class="linenos">2700</span></a>
-</span><span id="L-2701"><a href="#L-2701"><span class="linenos">2701</span></a>
-</span><span id="L-2702"><a href="#L-2702"><span class="linenos">2702</span></a><span class="k">class</span> <span class="nc">Values</span><span class="p">(</span><span class="n">UDTF</span><span class="p">):</span>
-</span><span id="L-2703"><a href="#L-2703"><span class="linenos">2703</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-2701"><a href="#L-2701"><span class="linenos">2701</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-2702"><a href="#L-2702"><span class="linenos">2702</span></a> <span class="k">pass</span>
+</span><span id="L-2703"><a href="#L-2703"><span class="linenos">2703</span></a>
</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 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-2707"><a href="#L-2707"><span class="linenos">2707</span></a> <span class="k">pass</span>
-</span><span id="L-2708"><a href="#L-2708"><span class="linenos">2708</span></a>
-</span><span id="L-2709"><a href="#L-2709"><span class="linenos">2709</span></a>
-</span><span id="L-2710"><a href="#L-2710"><span class="linenos">2710</span></a><span class="k">class</span> <span class="nc">Version</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2711"><a href="#L-2711"><span class="linenos">2711</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-2712"><a href="#L-2712"><span class="linenos">2712</span></a><span class="sd"> Time travel, iceberg, bigquery etc</span>
-</span><span id="L-2713"><a href="#L-2713"><span class="linenos">2713</span></a><span class="sd"> https://trino.io/docs/current/connector/iceberg.html?highlight=snapshot#using-snapshots</span>
-</span><span id="L-2714"><a href="#L-2714"><span class="linenos">2714</span></a><span class="sd"> https://www.databricks.com/blog/2019/02/04/introducing-delta-time-travel-for-large-scale-data-lakes.html</span>
-</span><span id="L-2715"><a href="#L-2715"><span class="linenos">2715</span></a><span class="sd"> https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax#for_system_time_as_of</span>
-</span><span id="L-2716"><a href="#L-2716"><span class="linenos">2716</span></a><span class="sd"> https://learn.microsoft.com/en-us/sql/relational-databases/tables/querying-data-in-a-system-versioned-temporal-table?view=sql-server-ver16</span>
-</span><span id="L-2717"><a href="#L-2717"><span class="linenos">2717</span></a><span class="sd"> this is either TIMESTAMP or VERSION</span>
-</span><span id="L-2718"><a href="#L-2718"><span class="linenos">2718</span></a><span class="sd"> kind is (&quot;AS OF&quot;, &quot;BETWEEN&quot;)</span>
-</span><span id="L-2719"><a href="#L-2719"><span class="linenos">2719</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-2720"><a href="#L-2720"><span class="linenos">2720</span></a>
-</span><span id="L-2721"><a href="#L-2721"><span class="linenos">2721</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-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><span id="L-2724"><a href="#L-2724"><span class="linenos">2724</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-2725"><a href="#L-2725"><span class="linenos">2725</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">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-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><span id="L-2728"><a href="#L-2728"><span class="linenos">2728</span></a><span class="c1"># https://dev.mysql.com/doc/refman/8.0/en/select.html</span>
-</span><span id="L-2729"><a href="#L-2729"><span class="linenos">2729</span></a><span class="c1"># https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/SELECT.html</span>
-</span><span id="L-2730"><a href="#L-2730"><span class="linenos">2730</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-2731"><a href="#L-2731"><span class="linenos">2731</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;update&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;wait&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-2705"><a href="#L-2705"><span class="linenos">2705</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-2706"><a href="#L-2706"><span class="linenos">2706</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2707"><a href="#L-2707"><span class="linenos">2707</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-2708"><a href="#L-2708"><span class="linenos">2708</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-2709"><a href="#L-2709"><span class="linenos">2709</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-2710"><a href="#L-2710"><span class="linenos">2710</span></a> <span class="p">}</span>
+</span><span id="L-2711"><a href="#L-2711"><span class="linenos">2711</span></a>
+</span><span id="L-2712"><a href="#L-2712"><span class="linenos">2712</span></a>
+</span><span id="L-2713"><a href="#L-2713"><span class="linenos">2713</span></a><span class="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-2714"><a href="#L-2714"><span class="linenos">2714</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2715"><a href="#L-2715"><span class="linenos">2715</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-2716"><a href="#L-2716"><span class="linenos">2716</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-2717"><a href="#L-2717"><span class="linenos">2717</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-2718"><a href="#L-2718"><span class="linenos">2718</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-2719"><a href="#L-2719"><span class="linenos">2719</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-2720"><a href="#L-2720"><span class="linenos">2720</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-2721"><a href="#L-2721"><span class="linenos">2721</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-2722"><a href="#L-2722"><span class="linenos">2722</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-2723"><a href="#L-2723"><span class="linenos">2723</span></a> <span class="p">}</span>
+</span><span id="L-2724"><a href="#L-2724"><span class="linenos">2724</span></a>
+</span><span id="L-2725"><a href="#L-2725"><span class="linenos">2725</span></a>
+</span><span id="L-2726"><a href="#L-2726"><span class="linenos">2726</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-2727"><a href="#L-2727"><span class="linenos">2727</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-2728"><a href="#L-2728"><span class="linenos">2728</span></a>
+</span><span id="L-2729"><a href="#L-2729"><span class="linenos">2729</span></a>
+</span><span id="L-2730"><a href="#L-2730"><span class="linenos">2730</span></a><span class="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-2731"><a href="#L-2731"><span class="linenos">2731</span></a> <span class="k">pass</span>
</span><span id="L-2732"><a href="#L-2732"><span class="linenos">2732</span></a>
</span><span id="L-2733"><a href="#L-2733"><span class="linenos">2733</span></a>
-</span><span id="L-2734"><a href="#L-2734"><span class="linenos">2734</span></a><span 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-2735"><a href="#L-2735"><span class="linenos">2735</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2736"><a href="#L-2736"><span class="linenos">2736</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-2737"><a href="#L-2737"><span class="linenos">2737</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-2738"><a href="#L-2738"><span class="linenos">2738</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-2739"><a href="#L-2739"><span class="linenos">2739</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-2740"><a href="#L-2740"><span class="linenos">2740</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-2741"><a href="#L-2741"><span class="linenos">2741</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-2742"><a href="#L-2742"><span class="linenos">2742</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-2743"><a href="#L-2743"><span class="linenos">2743</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</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 class="k">def</span> <span class="nf">from_</span><span class="p">(</span>
-</span><span id="L-2747"><a href="#L-2747"><span class="linenos">2747</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="L-2748"><a href="#L-2748"><span class="linenos">2748</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-2749"><a href="#L-2749"><span class="linenos">2749</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-2750"><a href="#L-2750"><span class="linenos">2750</span></a><span class="sd"> Set the FROM expression.</span>
+</span><span id="L-2734"><a href="#L-2734"><span class="linenos">2734</span></a><span class="k">class</span> <span class="nc">Version</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2735"><a href="#L-2735"><span class="linenos">2735</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-2736"><a href="#L-2736"><span class="linenos">2736</span></a><span class="sd"> Time travel, iceberg, bigquery etc</span>
+</span><span id="L-2737"><a href="#L-2737"><span class="linenos">2737</span></a><span class="sd"> https://trino.io/docs/current/connector/iceberg.html?highlight=snapshot#using-snapshots</span>
+</span><span id="L-2738"><a href="#L-2738"><span class="linenos">2738</span></a><span class="sd"> https://www.databricks.com/blog/2019/02/04/introducing-delta-time-travel-for-large-scale-data-lakes.html</span>
+</span><span id="L-2739"><a href="#L-2739"><span class="linenos">2739</span></a><span class="sd"> https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax#for_system_time_as_of</span>
+</span><span id="L-2740"><a href="#L-2740"><span class="linenos">2740</span></a><span class="sd"> https://learn.microsoft.com/en-us/sql/relational-databases/tables/querying-data-in-a-system-versioned-temporal-table?view=sql-server-ver16</span>
+</span><span id="L-2741"><a href="#L-2741"><span class="linenos">2741</span></a><span class="sd"> this is either TIMESTAMP or VERSION</span>
+</span><span id="L-2742"><a href="#L-2742"><span class="linenos">2742</span></a><span class="sd"> kind is (&quot;AS OF&quot;, &quot;BETWEEN&quot;)</span>
+</span><span id="L-2743"><a href="#L-2743"><span class="linenos">2743</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-2744"><a href="#L-2744"><span class="linenos">2744</span></a>
+</span><span id="L-2745"><a href="#L-2745"><span class="linenos">2745</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-2746"><a href="#L-2746"><span class="linenos">2746</span></a>
+</span><span id="L-2747"><a href="#L-2747"><span class="linenos">2747</span></a>
+</span><span id="L-2748"><a href="#L-2748"><span class="linenos">2748</span></a><span class="k">class</span> <span class="nc">Schema</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2749"><a href="#L-2749"><span class="linenos">2749</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-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><span id="L-2752"><a href="#L-2752"><span class="linenos">2752</span></a><span class="sd"> Example:</span>
-</span><span id="L-2753"><a href="#L-2753"><span class="linenos">2753</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).sql()</span>
-</span><span id="L-2754"><a href="#L-2754"><span class="linenos">2754</span></a><span class="sd"> &#39;SELECT x FROM tbl&#39;</span>
-</span><span id="L-2755"><a href="#L-2755"><span class="linenos">2755</span></a>
-</span><span id="L-2756"><a href="#L-2756"><span class="linenos">2756</span></a><span class="sd"> Args:</span>
-</span><span id="L-2757"><a href="#L-2757"><span class="linenos">2757</span></a><span class="sd"> expression : the SQL code strings to parse.</span>
-</span><span id="L-2758"><a href="#L-2758"><span class="linenos">2758</span></a><span class="sd"> If a `From` instance is passed, this is used as-is.</span>
-</span><span id="L-2759"><a href="#L-2759"><span class="linenos">2759</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `From`.</span>
-</span><span id="L-2760"><a href="#L-2760"><span class="linenos">2760</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-2761"><a href="#L-2761"><span class="linenos">2761</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="L-2762"><a href="#L-2762"><span class="linenos">2762</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="L-2763"><a href="#L-2763"><span class="linenos">2763</span></a>
-</span><span id="L-2764"><a href="#L-2764"><span class="linenos">2764</span></a><span class="sd"> Returns:</span>
-</span><span id="L-2765"><a href="#L-2765"><span class="linenos">2765</span></a><span class="sd"> The modified Select expression.</span>
-</span><span id="L-2766"><a href="#L-2766"><span class="linenos">2766</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-2767"><a href="#L-2767"><span class="linenos">2767</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
-</span><span id="L-2768"><a href="#L-2768"><span class="linenos">2768</span></a> <span class="n">expression</span><span class="o">=</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">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-2770"><a href="#L-2770"><span class="linenos">2770</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-2771"><a href="#L-2771"><span class="linenos">2771</span></a> <span class="n">into</span><span class="o">=</span><span class="n">From</span><span class="p">,</span>
-</span><span id="L-2772"><a href="#L-2772"><span class="linenos">2772</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-2773"><a href="#L-2773"><span class="linenos">2773</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-2774"><a href="#L-2774"><span class="linenos">2774</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-2775"><a href="#L-2775"><span class="linenos">2775</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2776"><a href="#L-2776"><span class="linenos">2776</span></a> <span class="p">)</span>
-</span><span id="L-2777"><a href="#L-2777"><span class="linenos">2777</span></a>
-</span><span id="L-2778"><a href="#L-2778"><span class="linenos">2778</span></a> <span class="k">def</span> <span class="nf">group_by</span><span class="p">(</span>
-</span><span id="L-2779"><a href="#L-2779"><span class="linenos">2779</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-2780"><a href="#L-2780"><span class="linenos">2780</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="L-2781"><a href="#L-2781"><span class="linenos">2781</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-2782"><a href="#L-2782"><span class="linenos">2782</span></a> <span class="n">dialect</span><span 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-2783"><a href="#L-2783"><span class="linenos">2783</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-2784"><a href="#L-2784"><span class="linenos">2784</span></a> <span class="o">**</span><span class="n">opts</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 class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-2786"><a href="#L-2786"><span class="linenos">2786</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-2787"><a href="#L-2787"><span class="linenos">2787</span></a><span class="sd"> Set the GROUP BY expression.</span>
-</span><span id="L-2788"><a href="#L-2788"><span class="linenos">2788</span></a>
-</span><span id="L-2789"><a href="#L-2789"><span class="linenos">2789</span></a><span class="sd"> Example:</span>
-</span><span id="L-2790"><a href="#L-2790"><span class="linenos">2790</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-2791"><a href="#L-2791"><span class="linenos">2791</span></a><span class="sd"> &#39;SELECT x, COUNT(1) FROM tbl GROUP BY x&#39;</span>
-</span><span id="L-2792"><a href="#L-2792"><span class="linenos">2792</span></a>
-</span><span id="L-2793"><a href="#L-2793"><span class="linenos">2793</span></a><span class="sd"> Args:</span>
-</span><span id="L-2794"><a href="#L-2794"><span class="linenos">2794</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="L-2795"><a href="#L-2795"><span class="linenos">2795</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
-</span><span id="L-2796"><a href="#L-2796"><span class="linenos">2796</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Group`.</span>
-</span><span id="L-2797"><a href="#L-2797"><span class="linenos">2797</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-2798"><a href="#L-2798"><span class="linenos">2798</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="L-2799"><a href="#L-2799"><span class="linenos">2799</span></a><span class="sd"> Otherwise, this flattens all the `Group` expression into a single expression.</span>
-</span><span id="L-2800"><a href="#L-2800"><span class="linenos">2800</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-2801"><a href="#L-2801"><span class="linenos">2801</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="L-2802"><a href="#L-2802"><span class="linenos">2802</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</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="sd"> Returns:</span>
-</span><span id="L-2805"><a href="#L-2805"><span class="linenos">2805</span></a><span class="sd"> The modified Select expression.</span>
-</span><span id="L-2806"><a href="#L-2806"><span class="linenos">2806</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-2807"><a href="#L-2807"><span class="linenos">2807</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-2808"><a href="#L-2808"><span class="linenos">2808</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-2809"><a href="#L-2809"><span class="linenos">2809</span></a>
-</span><span id="L-2810"><a href="#L-2810"><span class="linenos">2810</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="L-2811"><a href="#L-2811"><span class="linenos">2811</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-2812"><a href="#L-2812"><span class="linenos">2812</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-2813"><a href="#L-2813"><span class="linenos">2813</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-2814"><a href="#L-2814"><span class="linenos">2814</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-2815"><a href="#L-2815"><span class="linenos">2815</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-2816"><a href="#L-2816"><span class="linenos">2816</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-2817"><a href="#L-2817"><span class="linenos">2817</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Group</span><span class="p">,</span>
-</span><span id="L-2818"><a href="#L-2818"><span class="linenos">2818</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-2819"><a href="#L-2819"><span class="linenos">2819</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2820"><a href="#L-2820"><span class="linenos">2820</span></a> <span class="p">)</span>
-</span><span id="L-2821"><a href="#L-2821"><span class="linenos">2821</span></a>
-</span><span id="L-2822"><a href="#L-2822"><span class="linenos">2822</span></a> <span class="k">def</span> <span class="nf">order_by</span><span class="p">(</span>
-</span><span id="L-2823"><a href="#L-2823"><span class="linenos">2823</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-2824"><a href="#L-2824"><span class="linenos">2824</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="L-2825"><a href="#L-2825"><span class="linenos">2825</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-2826"><a href="#L-2826"><span class="linenos">2826</span></a> <span class="n">dialect</span><span 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-2827"><a href="#L-2827"><span class="linenos">2827</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-2828"><a href="#L-2828"><span class="linenos">2828</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2829"><a href="#L-2829"><span class="linenos">2829</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-2830"><a href="#L-2830"><span class="linenos">2830</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-2831"><a href="#L-2831"><span class="linenos">2831</span></a><span class="sd"> Set the ORDER BY expression.</span>
-</span><span id="L-2832"><a href="#L-2832"><span class="linenos">2832</span></a>
-</span><span id="L-2833"><a href="#L-2833"><span class="linenos">2833</span></a><span class="sd"> Example:</span>
-</span><span id="L-2834"><a href="#L-2834"><span class="linenos">2834</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-2835"><a href="#L-2835"><span class="linenos">2835</span></a><span class="sd"> &#39;SELECT x FROM tbl ORDER BY x DESC&#39;</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="sd"> Args:</span>
-</span><span id="L-2838"><a href="#L-2838"><span class="linenos">2838</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="L-2839"><a href="#L-2839"><span class="linenos">2839</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
-</span><span id="L-2840"><a href="#L-2840"><span class="linenos">2840</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Order`.</span>
-</span><span id="L-2841"><a href="#L-2841"><span class="linenos">2841</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="L-2842"><a href="#L-2842"><span class="linenos">2842</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
-</span><span id="L-2843"><a href="#L-2843"><span class="linenos">2843</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-2844"><a href="#L-2844"><span class="linenos">2844</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="L-2845"><a href="#L-2845"><span class="linenos">2845</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="L-2846"><a href="#L-2846"><span class="linenos">2846</span></a>
-</span><span id="L-2847"><a href="#L-2847"><span class="linenos">2847</span></a><span class="sd"> Returns:</span>
-</span><span id="L-2848"><a href="#L-2848"><span class="linenos">2848</span></a><span class="sd"> The modified Select expression.</span>
-</span><span id="L-2849"><a href="#L-2849"><span class="linenos">2849</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-2850"><a href="#L-2850"><span class="linenos">2850</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="L-2851"><a href="#L-2851"><span class="linenos">2851</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-2852"><a href="#L-2852"><span class="linenos">2852</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-2853"><a href="#L-2853"><span class="linenos">2853</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-2854"><a href="#L-2854"><span class="linenos">2854</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-2855"><a href="#L-2855"><span class="linenos">2855</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-2856"><a href="#L-2856"><span class="linenos">2856</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-2857"><a href="#L-2857"><span class="linenos">2857</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Order</span><span class="p">,</span>
-</span><span id="L-2858"><a href="#L-2858"><span class="linenos">2858</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-2859"><a href="#L-2859"><span class="linenos">2859</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2860"><a href="#L-2860"><span class="linenos">2860</span></a> <span class="p">)</span>
-</span><span id="L-2861"><a href="#L-2861"><span class="linenos">2861</span></a>
-</span><span id="L-2862"><a href="#L-2862"><span class="linenos">2862</span></a> <span class="k">def</span> <span class="nf">sort_by</span><span class="p">(</span>
-</span><span id="L-2863"><a href="#L-2863"><span class="linenos">2863</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-2864"><a href="#L-2864"><span class="linenos">2864</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="L-2865"><a href="#L-2865"><span class="linenos">2865</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-2866"><a href="#L-2866"><span class="linenos">2866</span></a> <span class="n">dialect</span><span 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-2867"><a href="#L-2867"><span class="linenos">2867</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-2868"><a href="#L-2868"><span class="linenos">2868</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2869"><a href="#L-2869"><span class="linenos">2869</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-2870"><a href="#L-2870"><span class="linenos">2870</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-2871"><a href="#L-2871"><span class="linenos">2871</span></a><span class="sd"> Set the SORT BY expression.</span>
-</span><span id="L-2872"><a href="#L-2872"><span class="linenos">2872</span></a>
-</span><span id="L-2873"><a href="#L-2873"><span class="linenos">2873</span></a><span class="sd"> Example:</span>
-</span><span id="L-2874"><a href="#L-2874"><span class="linenos">2874</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).sort_by(&quot;x DESC&quot;).sql(dialect=&quot;hive&quot;)</span>
-</span><span id="L-2875"><a href="#L-2875"><span class="linenos">2875</span></a><span class="sd"> &#39;SELECT x FROM tbl SORT BY x DESC&#39;</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="sd"> Args:</span>
-</span><span id="L-2878"><a href="#L-2878"><span class="linenos">2878</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="L-2879"><a href="#L-2879"><span class="linenos">2879</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
-</span><span id="L-2880"><a href="#L-2880"><span class="linenos">2880</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `SORT`.</span>
-</span><span id="L-2881"><a href="#L-2881"><span class="linenos">2881</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="L-2882"><a href="#L-2882"><span class="linenos">2882</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
-</span><span id="L-2883"><a href="#L-2883"><span class="linenos">2883</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-2884"><a href="#L-2884"><span class="linenos">2884</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="L-2885"><a href="#L-2885"><span class="linenos">2885</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="L-2886"><a href="#L-2886"><span class="linenos">2886</span></a>
-</span><span id="L-2887"><a href="#L-2887"><span class="linenos">2887</span></a><span class="sd"> Returns:</span>
-</span><span id="L-2888"><a href="#L-2888"><span class="linenos">2888</span></a><span class="sd"> The modified Select expression.</span>
-</span><span id="L-2889"><a href="#L-2889"><span class="linenos">2889</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-2890"><a href="#L-2890"><span class="linenos">2890</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="L-2891"><a href="#L-2891"><span class="linenos">2891</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-2892"><a href="#L-2892"><span class="linenos">2892</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-2893"><a href="#L-2893"><span class="linenos">2893</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-2894"><a href="#L-2894"><span class="linenos">2894</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-2895"><a href="#L-2895"><span class="linenos">2895</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-2896"><a href="#L-2896"><span class="linenos">2896</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-2897"><a href="#L-2897"><span class="linenos">2897</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Sort</span><span class="p">,</span>
-</span><span id="L-2898"><a href="#L-2898"><span class="linenos">2898</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-2899"><a href="#L-2899"><span class="linenos">2899</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2900"><a href="#L-2900"><span class="linenos">2900</span></a> <span class="p">)</span>
-</span><span id="L-2901"><a href="#L-2901"><span class="linenos">2901</span></a>
-</span><span id="L-2902"><a href="#L-2902"><span class="linenos">2902</span></a> <span class="k">def</span> <span class="nf">cluster_by</span><span class="p">(</span>
-</span><span id="L-2903"><a href="#L-2903"><span class="linenos">2903</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-2904"><a href="#L-2904"><span class="linenos">2904</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="L-2905"><a href="#L-2905"><span class="linenos">2905</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-2906"><a href="#L-2906"><span class="linenos">2906</span></a> <span class="n">dialect</span><span 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-2907"><a href="#L-2907"><span class="linenos">2907</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-2908"><a href="#L-2908"><span class="linenos">2908</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2909"><a href="#L-2909"><span class="linenos">2909</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-2910"><a href="#L-2910"><span class="linenos">2910</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-2911"><a href="#L-2911"><span class="linenos">2911</span></a><span class="sd"> Set the CLUSTER BY expression.</span>
-</span><span id="L-2912"><a href="#L-2912"><span class="linenos">2912</span></a>
-</span><span id="L-2913"><a href="#L-2913"><span class="linenos">2913</span></a><span class="sd"> Example:</span>
-</span><span id="L-2914"><a href="#L-2914"><span class="linenos">2914</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).cluster_by(&quot;x DESC&quot;).sql(dialect=&quot;hive&quot;)</span>
-</span><span id="L-2915"><a href="#L-2915"><span class="linenos">2915</span></a><span class="sd"> &#39;SELECT x FROM tbl CLUSTER BY x DESC&#39;</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="sd"> Args:</span>
-</span><span id="L-2918"><a href="#L-2918"><span class="linenos">2918</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="L-2919"><a href="#L-2919"><span class="linenos">2919</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
-</span><span id="L-2920"><a href="#L-2920"><span class="linenos">2920</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Cluster`.</span>
-</span><span id="L-2921"><a href="#L-2921"><span class="linenos">2921</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="L-2922"><a href="#L-2922"><span class="linenos">2922</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
-</span><span id="L-2923"><a href="#L-2923"><span class="linenos">2923</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-2924"><a href="#L-2924"><span class="linenos">2924</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="L-2925"><a href="#L-2925"><span class="linenos">2925</span></a><span class="sd"> opts: other options to use to parse the input expressions.</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 class="sd"> Returns:</span>
-</span><span id="L-2928"><a href="#L-2928"><span class="linenos">2928</span></a><span class="sd"> The modified Select expression.</span>
-</span><span id="L-2929"><a href="#L-2929"><span class="linenos">2929</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-2930"><a href="#L-2930"><span class="linenos">2930</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="L-2931"><a href="#L-2931"><span class="linenos">2931</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-2932"><a href="#L-2932"><span class="linenos">2932</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-2933"><a href="#L-2933"><span class="linenos">2933</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-2934"><a href="#L-2934"><span class="linenos">2934</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-2935"><a href="#L-2935"><span class="linenos">2935</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-2936"><a href="#L-2936"><span class="linenos">2936</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-2937"><a href="#L-2937"><span class="linenos">2937</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Cluster</span><span class="p">,</span>
-</span><span id="L-2938"><a href="#L-2938"><span class="linenos">2938</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-2939"><a href="#L-2939"><span class="linenos">2939</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2940"><a href="#L-2940"><span class="linenos">2940</span></a> <span class="p">)</span>
-</span><span id="L-2941"><a href="#L-2941"><span class="linenos">2941</span></a>
-</span><span id="L-2942"><a href="#L-2942"><span class="linenos">2942</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span>
-</span><span id="L-2943"><a href="#L-2943"><span class="linenos">2943</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span> <span class="o">|</span> <span class="nb">int</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="L-2944"><a href="#L-2944"><span class="linenos">2944</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-2945"><a href="#L-2945"><span class="linenos">2945</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-2946"><a href="#L-2946"><span class="linenos">2946</span></a><span class="sd"> Set the LIMIT expression.</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="sd"> Example:</span>
-</span><span id="L-2949"><a href="#L-2949"><span class="linenos">2949</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-2950"><a href="#L-2950"><span class="linenos">2950</span></a><span class="sd"> &#39;SELECT x FROM tbl LIMIT 10&#39;</span>
-</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="sd"> Args:</span>
-</span><span id="L-2953"><a href="#L-2953"><span class="linenos">2953</span></a><span class="sd"> expression: the SQL code string to parse.</span>
-</span><span id="L-2954"><a href="#L-2954"><span class="linenos">2954</span></a><span class="sd"> This can also be an integer.</span>
-</span><span id="L-2955"><a href="#L-2955"><span class="linenos">2955</span></a><span class="sd"> If a `Limit` instance is passed, this is used as-is.</span>
-</span><span id="L-2956"><a href="#L-2956"><span class="linenos">2956</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Limit`.</span>
-</span><span id="L-2957"><a href="#L-2957"><span class="linenos">2957</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-2958"><a href="#L-2958"><span class="linenos">2958</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="L-2959"><a href="#L-2959"><span class="linenos">2959</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</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 class="sd"> Returns:</span>
-</span><span id="L-2962"><a href="#L-2962"><span class="linenos">2962</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="L-2963"><a href="#L-2963"><span class="linenos">2963</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-2964"><a href="#L-2964"><span class="linenos">2964</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
-</span><span id="L-2965"><a href="#L-2965"><span class="linenos">2965</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
-</span><span id="L-2966"><a href="#L-2966"><span class="linenos">2966</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-2967"><a href="#L-2967"><span class="linenos">2967</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-2968"><a href="#L-2968"><span class="linenos">2968</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Limit</span><span class="p">,</span>
-</span><span id="L-2969"><a href="#L-2969"><span class="linenos">2969</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-2970"><a href="#L-2970"><span class="linenos">2970</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-2971"><a href="#L-2971"><span class="linenos">2971</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-2972"><a href="#L-2972"><span class="linenos">2972</span></a> <span class="n">into_arg</span><span class="o">=</span><span class="s2">&quot;expression&quot;</span><span class="p">,</span>
-</span><span id="L-2973"><a href="#L-2973"><span class="linenos">2973</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2974"><a href="#L-2974"><span class="linenos">2974</span></a> <span class="p">)</span>
+</span><span id="L-2752"><a href="#L-2752"><span class="linenos">2752</span></a><span class="c1"># https://dev.mysql.com/doc/refman/8.0/en/select.html</span>
+</span><span id="L-2753"><a href="#L-2753"><span class="linenos">2753</span></a><span class="c1"># https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/SELECT.html</span>
+</span><span id="L-2754"><a href="#L-2754"><span class="linenos">2754</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-2755"><a href="#L-2755"><span class="linenos">2755</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;update&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;wait&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-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><span id="L-2758"><a href="#L-2758"><span class="linenos">2758</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-2759"><a href="#L-2759"><span class="linenos">2759</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2760"><a href="#L-2760"><span class="linenos">2760</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-2761"><a href="#L-2761"><span class="linenos">2761</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-2762"><a href="#L-2762"><span class="linenos">2762</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-2763"><a href="#L-2763"><span class="linenos">2763</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-2764"><a href="#L-2764"><span class="linenos">2764</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-2765"><a href="#L-2765"><span class="linenos">2765</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-2766"><a href="#L-2766"><span class="linenos">2766</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-2767"><a href="#L-2767"><span class="linenos">2767</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span>
+</span><span id="L-2768"><a href="#L-2768"><span class="linenos">2768</span></a> <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 class="k">def</span> <span class="nf">from_</span><span class="p">(</span>
+</span><span id="L-2771"><a href="#L-2771"><span class="linenos">2771</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="L-2772"><a href="#L-2772"><span class="linenos">2772</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-2773"><a href="#L-2773"><span class="linenos">2773</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-2774"><a href="#L-2774"><span class="linenos">2774</span></a><span class="sd"> Set the FROM expression.</span>
+</span><span id="L-2775"><a href="#L-2775"><span class="linenos">2775</span></a>
+</span><span id="L-2776"><a href="#L-2776"><span class="linenos">2776</span></a><span class="sd"> Example:</span>
+</span><span id="L-2777"><a href="#L-2777"><span class="linenos">2777</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).sql()</span>
+</span><span id="L-2778"><a href="#L-2778"><span class="linenos">2778</span></a><span class="sd"> &#39;SELECT x FROM tbl&#39;</span>
+</span><span id="L-2779"><a href="#L-2779"><span class="linenos">2779</span></a>
+</span><span id="L-2780"><a href="#L-2780"><span class="linenos">2780</span></a><span class="sd"> Args:</span>
+</span><span id="L-2781"><a href="#L-2781"><span class="linenos">2781</span></a><span class="sd"> expression : the SQL code strings to parse.</span>
+</span><span id="L-2782"><a href="#L-2782"><span class="linenos">2782</span></a><span class="sd"> If a `From` instance is passed, this is used as-is.</span>
+</span><span id="L-2783"><a href="#L-2783"><span class="linenos">2783</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `From`.</span>
+</span><span id="L-2784"><a href="#L-2784"><span class="linenos">2784</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-2785"><a href="#L-2785"><span class="linenos">2785</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-2786"><a href="#L-2786"><span class="linenos">2786</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</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="sd"> Returns:</span>
+</span><span id="L-2789"><a href="#L-2789"><span class="linenos">2789</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="L-2790"><a href="#L-2790"><span class="linenos">2790</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-2791"><a href="#L-2791"><span class="linenos">2791</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
+</span><span id="L-2792"><a href="#L-2792"><span class="linenos">2792</span></a> <span class="n">expression</span><span class="o">=</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">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2794"><a href="#L-2794"><span class="linenos">2794</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-2795"><a href="#L-2795"><span class="linenos">2795</span></a> <span class="n">into</span><span class="o">=</span><span class="n">From</span><span class="p">,</span>
+</span><span id="L-2796"><a href="#L-2796"><span class="linenos">2796</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-2797"><a href="#L-2797"><span class="linenos">2797</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-2798"><a href="#L-2798"><span class="linenos">2798</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-2799"><a href="#L-2799"><span class="linenos">2799</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2800"><a href="#L-2800"><span class="linenos">2800</span></a> <span class="p">)</span>
+</span><span id="L-2801"><a href="#L-2801"><span class="linenos">2801</span></a>
+</span><span id="L-2802"><a href="#L-2802"><span class="linenos">2802</span></a> <span class="k">def</span> <span class="nf">group_by</span><span class="p">(</span>
+</span><span id="L-2803"><a href="#L-2803"><span class="linenos">2803</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2804"><a href="#L-2804"><span class="linenos">2804</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="L-2805"><a href="#L-2805"><span class="linenos">2805</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-2806"><a href="#L-2806"><span class="linenos">2806</span></a> <span class="n">dialect</span><span 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-2807"><a href="#L-2807"><span class="linenos">2807</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-2808"><a href="#L-2808"><span class="linenos">2808</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2809"><a href="#L-2809"><span class="linenos">2809</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-2810"><a href="#L-2810"><span class="linenos">2810</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-2811"><a href="#L-2811"><span class="linenos">2811</span></a><span class="sd"> Set the GROUP BY expression.</span>
+</span><span id="L-2812"><a href="#L-2812"><span class="linenos">2812</span></a>
+</span><span id="L-2813"><a href="#L-2813"><span class="linenos">2813</span></a><span class="sd"> Example:</span>
+</span><span id="L-2814"><a href="#L-2814"><span class="linenos">2814</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-2815"><a href="#L-2815"><span class="linenos">2815</span></a><span class="sd"> &#39;SELECT x, COUNT(1) FROM tbl GROUP BY x&#39;</span>
+</span><span id="L-2816"><a href="#L-2816"><span class="linenos">2816</span></a>
+</span><span id="L-2817"><a href="#L-2817"><span class="linenos">2817</span></a><span class="sd"> Args:</span>
+</span><span id="L-2818"><a href="#L-2818"><span class="linenos">2818</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="L-2819"><a href="#L-2819"><span class="linenos">2819</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
+</span><span id="L-2820"><a href="#L-2820"><span class="linenos">2820</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Group`.</span>
+</span><span id="L-2821"><a href="#L-2821"><span class="linenos">2821</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-2822"><a href="#L-2822"><span class="linenos">2822</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="L-2823"><a href="#L-2823"><span class="linenos">2823</span></a><span class="sd"> Otherwise, this flattens all the `Group` expression into a single expression.</span>
+</span><span id="L-2824"><a href="#L-2824"><span class="linenos">2824</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-2825"><a href="#L-2825"><span class="linenos">2825</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-2826"><a href="#L-2826"><span class="linenos">2826</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-2827"><a href="#L-2827"><span class="linenos">2827</span></a>
+</span><span id="L-2828"><a href="#L-2828"><span class="linenos">2828</span></a><span class="sd"> Returns:</span>
+</span><span id="L-2829"><a href="#L-2829"><span class="linenos">2829</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="L-2830"><a href="#L-2830"><span class="linenos">2830</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-2831"><a href="#L-2831"><span class="linenos">2831</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-2832"><a href="#L-2832"><span class="linenos">2832</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-2833"><a href="#L-2833"><span class="linenos">2833</span></a>
+</span><span id="L-2834"><a href="#L-2834"><span class="linenos">2834</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
+</span><span id="L-2835"><a href="#L-2835"><span class="linenos">2835</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-2836"><a href="#L-2836"><span class="linenos">2836</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2837"><a href="#L-2837"><span class="linenos">2837</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-2838"><a href="#L-2838"><span class="linenos">2838</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-2839"><a href="#L-2839"><span class="linenos">2839</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-2840"><a href="#L-2840"><span class="linenos">2840</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-2841"><a href="#L-2841"><span class="linenos">2841</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Group</span><span class="p">,</span>
+</span><span id="L-2842"><a href="#L-2842"><span class="linenos">2842</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-2843"><a href="#L-2843"><span class="linenos">2843</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2844"><a href="#L-2844"><span class="linenos">2844</span></a> <span class="p">)</span>
+</span><span id="L-2845"><a href="#L-2845"><span class="linenos">2845</span></a>
+</span><span id="L-2846"><a href="#L-2846"><span class="linenos">2846</span></a> <span class="k">def</span> <span class="nf">order_by</span><span class="p">(</span>
+</span><span id="L-2847"><a href="#L-2847"><span class="linenos">2847</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2848"><a href="#L-2848"><span class="linenos">2848</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="L-2849"><a href="#L-2849"><span class="linenos">2849</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-2850"><a href="#L-2850"><span class="linenos">2850</span></a> <span class="n">dialect</span><span 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-2851"><a href="#L-2851"><span class="linenos">2851</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-2852"><a href="#L-2852"><span class="linenos">2852</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2853"><a href="#L-2853"><span class="linenos">2853</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-2854"><a href="#L-2854"><span class="linenos">2854</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-2855"><a href="#L-2855"><span class="linenos">2855</span></a><span class="sd"> Set the ORDER BY expression.</span>
+</span><span id="L-2856"><a href="#L-2856"><span class="linenos">2856</span></a>
+</span><span id="L-2857"><a href="#L-2857"><span class="linenos">2857</span></a><span class="sd"> Example:</span>
+</span><span id="L-2858"><a href="#L-2858"><span class="linenos">2858</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-2859"><a href="#L-2859"><span class="linenos">2859</span></a><span class="sd"> &#39;SELECT x FROM tbl ORDER BY x DESC&#39;</span>
+</span><span id="L-2860"><a href="#L-2860"><span class="linenos">2860</span></a>
+</span><span id="L-2861"><a href="#L-2861"><span class="linenos">2861</span></a><span class="sd"> Args:</span>
+</span><span id="L-2862"><a href="#L-2862"><span class="linenos">2862</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="L-2863"><a href="#L-2863"><span class="linenos">2863</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
+</span><span id="L-2864"><a href="#L-2864"><span class="linenos">2864</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Order`.</span>
+</span><span id="L-2865"><a href="#L-2865"><span class="linenos">2865</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="L-2866"><a href="#L-2866"><span class="linenos">2866</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
+</span><span id="L-2867"><a href="#L-2867"><span class="linenos">2867</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-2868"><a href="#L-2868"><span class="linenos">2868</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-2869"><a href="#L-2869"><span class="linenos">2869</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-2870"><a href="#L-2870"><span class="linenos">2870</span></a>
+</span><span id="L-2871"><a href="#L-2871"><span class="linenos">2871</span></a><span class="sd"> Returns:</span>
+</span><span id="L-2872"><a href="#L-2872"><span class="linenos">2872</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="L-2873"><a href="#L-2873"><span class="linenos">2873</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-2874"><a href="#L-2874"><span class="linenos">2874</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
+</span><span id="L-2875"><a href="#L-2875"><span class="linenos">2875</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-2876"><a href="#L-2876"><span class="linenos">2876</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2877"><a href="#L-2877"><span class="linenos">2877</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-2878"><a href="#L-2878"><span class="linenos">2878</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-2879"><a href="#L-2879"><span class="linenos">2879</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-2880"><a href="#L-2880"><span class="linenos">2880</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-2881"><a href="#L-2881"><span class="linenos">2881</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Order</span><span class="p">,</span>
+</span><span id="L-2882"><a href="#L-2882"><span class="linenos">2882</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-2883"><a href="#L-2883"><span class="linenos">2883</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2884"><a href="#L-2884"><span class="linenos">2884</span></a> <span class="p">)</span>
+</span><span id="L-2885"><a href="#L-2885"><span class="linenos">2885</span></a>
+</span><span id="L-2886"><a href="#L-2886"><span class="linenos">2886</span></a> <span class="k">def</span> <span class="nf">sort_by</span><span class="p">(</span>
+</span><span id="L-2887"><a href="#L-2887"><span class="linenos">2887</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2888"><a href="#L-2888"><span class="linenos">2888</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="L-2889"><a href="#L-2889"><span class="linenos">2889</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-2890"><a href="#L-2890"><span class="linenos">2890</span></a> <span class="n">dialect</span><span 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-2891"><a href="#L-2891"><span class="linenos">2891</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-2892"><a href="#L-2892"><span class="linenos">2892</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2893"><a href="#L-2893"><span class="linenos">2893</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-2894"><a href="#L-2894"><span class="linenos">2894</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-2895"><a href="#L-2895"><span class="linenos">2895</span></a><span class="sd"> Set the SORT BY expression.</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="sd"> Example:</span>
+</span><span id="L-2898"><a href="#L-2898"><span class="linenos">2898</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).sort_by(&quot;x DESC&quot;).sql(dialect=&quot;hive&quot;)</span>
+</span><span id="L-2899"><a href="#L-2899"><span class="linenos">2899</span></a><span class="sd"> &#39;SELECT x FROM tbl SORT BY x DESC&#39;</span>
+</span><span id="L-2900"><a href="#L-2900"><span class="linenos">2900</span></a>
+</span><span id="L-2901"><a href="#L-2901"><span class="linenos">2901</span></a><span class="sd"> Args:</span>
+</span><span id="L-2902"><a href="#L-2902"><span class="linenos">2902</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="L-2903"><a href="#L-2903"><span class="linenos">2903</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
+</span><span id="L-2904"><a href="#L-2904"><span class="linenos">2904</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `SORT`.</span>
+</span><span id="L-2905"><a href="#L-2905"><span class="linenos">2905</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="L-2906"><a href="#L-2906"><span class="linenos">2906</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
+</span><span id="L-2907"><a href="#L-2907"><span class="linenos">2907</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-2908"><a href="#L-2908"><span class="linenos">2908</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-2909"><a href="#L-2909"><span class="linenos">2909</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-2910"><a href="#L-2910"><span class="linenos">2910</span></a>
+</span><span id="L-2911"><a href="#L-2911"><span class="linenos">2911</span></a><span class="sd"> Returns:</span>
+</span><span id="L-2912"><a href="#L-2912"><span class="linenos">2912</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="L-2913"><a href="#L-2913"><span class="linenos">2913</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-2914"><a href="#L-2914"><span class="linenos">2914</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
+</span><span id="L-2915"><a href="#L-2915"><span class="linenos">2915</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-2916"><a href="#L-2916"><span class="linenos">2916</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2917"><a href="#L-2917"><span class="linenos">2917</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-2918"><a href="#L-2918"><span class="linenos">2918</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-2919"><a href="#L-2919"><span class="linenos">2919</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-2920"><a href="#L-2920"><span class="linenos">2920</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-2921"><a href="#L-2921"><span class="linenos">2921</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Sort</span><span class="p">,</span>
+</span><span id="L-2922"><a href="#L-2922"><span class="linenos">2922</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-2923"><a href="#L-2923"><span class="linenos">2923</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2924"><a href="#L-2924"><span class="linenos">2924</span></a> <span class="p">)</span>
+</span><span id="L-2925"><a href="#L-2925"><span class="linenos">2925</span></a>
+</span><span id="L-2926"><a href="#L-2926"><span class="linenos">2926</span></a> <span class="k">def</span> <span class="nf">cluster_by</span><span class="p">(</span>
+</span><span id="L-2927"><a href="#L-2927"><span class="linenos">2927</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2928"><a href="#L-2928"><span class="linenos">2928</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="L-2929"><a href="#L-2929"><span class="linenos">2929</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-2930"><a href="#L-2930"><span class="linenos">2930</span></a> <span class="n">dialect</span><span 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-2931"><a href="#L-2931"><span class="linenos">2931</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-2932"><a href="#L-2932"><span class="linenos">2932</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2933"><a href="#L-2933"><span class="linenos">2933</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-2934"><a href="#L-2934"><span class="linenos">2934</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-2935"><a href="#L-2935"><span class="linenos">2935</span></a><span class="sd"> Set the CLUSTER BY expression.</span>
+</span><span id="L-2936"><a href="#L-2936"><span class="linenos">2936</span></a>
+</span><span id="L-2937"><a href="#L-2937"><span class="linenos">2937</span></a><span class="sd"> Example:</span>
+</span><span id="L-2938"><a href="#L-2938"><span class="linenos">2938</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).cluster_by(&quot;x DESC&quot;).sql(dialect=&quot;hive&quot;)</span>
+</span><span id="L-2939"><a href="#L-2939"><span class="linenos">2939</span></a><span class="sd"> &#39;SELECT x FROM tbl CLUSTER BY x DESC&#39;</span>
+</span><span id="L-2940"><a href="#L-2940"><span class="linenos">2940</span></a>
+</span><span id="L-2941"><a href="#L-2941"><span class="linenos">2941</span></a><span class="sd"> Args:</span>
+</span><span id="L-2942"><a href="#L-2942"><span class="linenos">2942</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="L-2943"><a href="#L-2943"><span class="linenos">2943</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
+</span><span id="L-2944"><a href="#L-2944"><span class="linenos">2944</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Cluster`.</span>
+</span><span id="L-2945"><a href="#L-2945"><span class="linenos">2945</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="L-2946"><a href="#L-2946"><span class="linenos">2946</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
+</span><span id="L-2947"><a href="#L-2947"><span class="linenos">2947</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-2948"><a href="#L-2948"><span class="linenos">2948</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-2949"><a href="#L-2949"><span class="linenos">2949</span></a><span class="sd"> opts: other options to use to parse the input expressions.</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 class="sd"> Returns:</span>
+</span><span id="L-2952"><a href="#L-2952"><span class="linenos">2952</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="L-2953"><a href="#L-2953"><span class="linenos">2953</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-2954"><a href="#L-2954"><span class="linenos">2954</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
+</span><span id="L-2955"><a href="#L-2955"><span class="linenos">2955</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-2956"><a href="#L-2956"><span class="linenos">2956</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2957"><a href="#L-2957"><span class="linenos">2957</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-2958"><a href="#L-2958"><span class="linenos">2958</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-2959"><a href="#L-2959"><span class="linenos">2959</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-2960"><a href="#L-2960"><span class="linenos">2960</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-2961"><a href="#L-2961"><span class="linenos">2961</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Cluster</span><span class="p">,</span>
+</span><span id="L-2962"><a href="#L-2962"><span class="linenos">2962</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-2963"><a href="#L-2963"><span class="linenos">2963</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2964"><a href="#L-2964"><span class="linenos">2964</span></a> <span class="p">)</span>
+</span><span id="L-2965"><a href="#L-2965"><span class="linenos">2965</span></a>
+</span><span id="L-2966"><a href="#L-2966"><span class="linenos">2966</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span>
+</span><span id="L-2967"><a href="#L-2967"><span class="linenos">2967</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span> <span class="o">|</span> <span class="nb">int</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="L-2968"><a href="#L-2968"><span class="linenos">2968</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-2969"><a href="#L-2969"><span class="linenos">2969</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-2970"><a href="#L-2970"><span class="linenos">2970</span></a><span class="sd"> Set the LIMIT expression.</span>
+</span><span id="L-2971"><a href="#L-2971"><span class="linenos">2971</span></a>
+</span><span id="L-2972"><a href="#L-2972"><span class="linenos">2972</span></a><span class="sd"> Example:</span>
+</span><span id="L-2973"><a href="#L-2973"><span class="linenos">2973</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-2974"><a href="#L-2974"><span class="linenos">2974</span></a><span class="sd"> &#39;SELECT x FROM tbl LIMIT 10&#39;</span>
</span><span id="L-2975"><a href="#L-2975"><span class="linenos">2975</span></a>
-</span><span id="L-2976"><a href="#L-2976"><span class="linenos">2976</span></a> <span class="k">def</span> <span class="nf">offset</span><span class="p">(</span>
-</span><span id="L-2977"><a href="#L-2977"><span class="linenos">2977</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span> <span class="o">|</span> <span class="nb">int</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="L-2978"><a href="#L-2978"><span class="linenos">2978</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-2979"><a href="#L-2979"><span class="linenos">2979</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-2980"><a href="#L-2980"><span class="linenos">2980</span></a><span class="sd"> Set the OFFSET expression.</span>
-</span><span id="L-2981"><a href="#L-2981"><span class="linenos">2981</span></a>
-</span><span id="L-2982"><a href="#L-2982"><span class="linenos">2982</span></a><span class="sd"> Example:</span>
-</span><span id="L-2983"><a href="#L-2983"><span class="linenos">2983</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-2984"><a href="#L-2984"><span class="linenos">2984</span></a><span class="sd"> &#39;SELECT x FROM tbl OFFSET 10&#39;</span>
-</span><span id="L-2985"><a href="#L-2985"><span class="linenos">2985</span></a>
-</span><span id="L-2986"><a href="#L-2986"><span class="linenos">2986</span></a><span class="sd"> Args:</span>
-</span><span id="L-2987"><a href="#L-2987"><span class="linenos">2987</span></a><span class="sd"> expression: the SQL code string to parse.</span>
-</span><span id="L-2988"><a href="#L-2988"><span class="linenos">2988</span></a><span class="sd"> This can also be an integer.</span>
-</span><span id="L-2989"><a href="#L-2989"><span class="linenos">2989</span></a><span class="sd"> If a `Offset` instance is passed, this is used as-is.</span>
-</span><span id="L-2990"><a href="#L-2990"><span class="linenos">2990</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Offset`.</span>
-</span><span id="L-2991"><a href="#L-2991"><span class="linenos">2991</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-2992"><a href="#L-2992"><span class="linenos">2992</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="L-2993"><a href="#L-2993"><span class="linenos">2993</span></a><span class="sd"> opts: other options to use to parse the input expressions.</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="sd"> Returns:</span>
-</span><span id="L-2996"><a href="#L-2996"><span class="linenos">2996</span></a><span class="sd"> The modified Select expression.</span>
-</span><span id="L-2997"><a href="#L-2997"><span class="linenos">2997</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-2998"><a href="#L-2998"><span class="linenos">2998</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
-</span><span id="L-2999"><a href="#L-2999"><span class="linenos">2999</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
-</span><span id="L-3000"><a href="#L-3000"><span class="linenos">3000</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-3001"><a href="#L-3001"><span class="linenos">3001</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-3002"><a href="#L-3002"><span class="linenos">3002</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Offset</span><span class="p">,</span>
-</span><span id="L-3003"><a href="#L-3003"><span class="linenos">3003</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-3004"><a href="#L-3004"><span class="linenos">3004</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-3005"><a href="#L-3005"><span class="linenos">3005</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-3006"><a href="#L-3006"><span class="linenos">3006</span></a> <span class="n">into_arg</span><span class="o">=</span><span class="s2">&quot;expression&quot;</span><span class="p">,</span>
-</span><span id="L-3007"><a href="#L-3007"><span class="linenos">3007</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-3008"><a href="#L-3008"><span class="linenos">3008</span></a> <span class="p">)</span>
+</span><span id="L-2976"><a href="#L-2976"><span class="linenos">2976</span></a><span class="sd"> Args:</span>
+</span><span id="L-2977"><a href="#L-2977"><span class="linenos">2977</span></a><span class="sd"> expression: the SQL code string to parse.</span>
+</span><span id="L-2978"><a href="#L-2978"><span class="linenos">2978</span></a><span class="sd"> This can also be an integer.</span>
+</span><span id="L-2979"><a href="#L-2979"><span class="linenos">2979</span></a><span class="sd"> If a `Limit` instance is passed, this is used as-is.</span>
+</span><span id="L-2980"><a href="#L-2980"><span class="linenos">2980</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Limit`.</span>
+</span><span id="L-2981"><a href="#L-2981"><span class="linenos">2981</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-2982"><a href="#L-2982"><span class="linenos">2982</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-2983"><a href="#L-2983"><span class="linenos">2983</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-2984"><a href="#L-2984"><span class="linenos">2984</span></a>
+</span><span id="L-2985"><a href="#L-2985"><span class="linenos">2985</span></a><span class="sd"> Returns:</span>
+</span><span id="L-2986"><a href="#L-2986"><span class="linenos">2986</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="L-2987"><a href="#L-2987"><span class="linenos">2987</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-2988"><a href="#L-2988"><span class="linenos">2988</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
+</span><span id="L-2989"><a href="#L-2989"><span class="linenos">2989</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
+</span><span id="L-2990"><a href="#L-2990"><span class="linenos">2990</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2991"><a href="#L-2991"><span class="linenos">2991</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-2992"><a href="#L-2992"><span class="linenos">2992</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Limit</span><span class="p">,</span>
+</span><span id="L-2993"><a href="#L-2993"><span class="linenos">2993</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-2994"><a href="#L-2994"><span class="linenos">2994</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-2995"><a href="#L-2995"><span class="linenos">2995</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-2996"><a href="#L-2996"><span class="linenos">2996</span></a> <span class="n">into_arg</span><span class="o">=</span><span class="s2">&quot;expression&quot;</span><span class="p">,</span>
+</span><span id="L-2997"><a href="#L-2997"><span class="linenos">2997</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2998"><a href="#L-2998"><span class="linenos">2998</span></a> <span class="p">)</span>
+</span><span id="L-2999"><a href="#L-2999"><span class="linenos">2999</span></a>
+</span><span id="L-3000"><a href="#L-3000"><span class="linenos">3000</span></a> <span class="k">def</span> <span class="nf">offset</span><span class="p">(</span>
+</span><span id="L-3001"><a href="#L-3001"><span class="linenos">3001</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span> <span class="o">|</span> <span class="nb">int</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="L-3002"><a href="#L-3002"><span class="linenos">3002</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-3003"><a href="#L-3003"><span class="linenos">3003</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-3004"><a href="#L-3004"><span class="linenos">3004</span></a><span class="sd"> Set the OFFSET expression.</span>
+</span><span id="L-3005"><a href="#L-3005"><span class="linenos">3005</span></a>
+</span><span id="L-3006"><a href="#L-3006"><span class="linenos">3006</span></a><span class="sd"> Example:</span>
+</span><span id="L-3007"><a href="#L-3007"><span class="linenos">3007</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-3008"><a href="#L-3008"><span class="linenos">3008</span></a><span class="sd"> &#39;SELECT x FROM tbl OFFSET 10&#39;</span>
</span><span id="L-3009"><a href="#L-3009"><span class="linenos">3009</span></a>
-</span><span id="L-3010"><a href="#L-3010"><span class="linenos">3010</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
-</span><span id="L-3011"><a href="#L-3011"><span class="linenos">3011</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-3012"><a href="#L-3012"><span class="linenos">3012</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="L-3013"><a href="#L-3013"><span class="linenos">3013</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-3014"><a href="#L-3014"><span class="linenos">3014</span></a> <span class="n">dialect</span><span 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-3015"><a href="#L-3015"><span class="linenos">3015</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-3016"><a href="#L-3016"><span class="linenos">3016</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-3017"><a href="#L-3017"><span class="linenos">3017</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-3018"><a href="#L-3018"><span class="linenos">3018</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-3019"><a href="#L-3019"><span class="linenos">3019</span></a><span class="sd"> Append to or set the SELECT expressions.</span>
-</span><span id="L-3020"><a href="#L-3020"><span class="linenos">3020</span></a>
-</span><span id="L-3021"><a href="#L-3021"><span class="linenos">3021</span></a><span class="sd"> Example:</span>
-</span><span id="L-3022"><a href="#L-3022"><span class="linenos">3022</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;, &quot;y&quot;).sql()</span>
-</span><span id="L-3023"><a href="#L-3023"><span class="linenos">3023</span></a><span class="sd"> &#39;SELECT x, y&#39;</span>
-</span><span id="L-3024"><a href="#L-3024"><span class="linenos">3024</span></a>
-</span><span id="L-3025"><a href="#L-3025"><span class="linenos">3025</span></a><span class="sd"> Args:</span>
-</span><span id="L-3026"><a href="#L-3026"><span class="linenos">3026</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="L-3027"><a href="#L-3027"><span class="linenos">3027</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-3028"><a href="#L-3028"><span class="linenos">3028</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="L-3029"><a href="#L-3029"><span class="linenos">3029</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="L-3030"><a href="#L-3030"><span class="linenos">3030</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="L-3031"><a href="#L-3031"><span class="linenos">3031</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="L-3032"><a href="#L-3032"><span class="linenos">3032</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-3010"><a href="#L-3010"><span class="linenos">3010</span></a><span class="sd"> Args:</span>
+</span><span id="L-3011"><a href="#L-3011"><span class="linenos">3011</span></a><span class="sd"> expression: the SQL code string to parse.</span>
+</span><span id="L-3012"><a href="#L-3012"><span class="linenos">3012</span></a><span class="sd"> This can also be an integer.</span>
+</span><span id="L-3013"><a href="#L-3013"><span class="linenos">3013</span></a><span class="sd"> If a `Offset` instance is passed, this is used as-is.</span>
+</span><span id="L-3014"><a href="#L-3014"><span class="linenos">3014</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Offset`.</span>
+</span><span id="L-3015"><a href="#L-3015"><span class="linenos">3015</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-3016"><a href="#L-3016"><span class="linenos">3016</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-3017"><a href="#L-3017"><span class="linenos">3017</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-3018"><a href="#L-3018"><span class="linenos">3018</span></a>
+</span><span id="L-3019"><a href="#L-3019"><span class="linenos">3019</span></a><span class="sd"> Returns:</span>
+</span><span id="L-3020"><a href="#L-3020"><span class="linenos">3020</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="L-3021"><a href="#L-3021"><span class="linenos">3021</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-3022"><a href="#L-3022"><span class="linenos">3022</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
+</span><span id="L-3023"><a href="#L-3023"><span class="linenos">3023</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
+</span><span id="L-3024"><a href="#L-3024"><span class="linenos">3024</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-3025"><a href="#L-3025"><span class="linenos">3025</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-3026"><a href="#L-3026"><span class="linenos">3026</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Offset</span><span class="p">,</span>
+</span><span id="L-3027"><a href="#L-3027"><span class="linenos">3027</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-3028"><a href="#L-3028"><span class="linenos">3028</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-3029"><a href="#L-3029"><span class="linenos">3029</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-3030"><a href="#L-3030"><span class="linenos">3030</span></a> <span class="n">into_arg</span><span class="o">=</span><span class="s2">&quot;expression&quot;</span><span class="p">,</span>
+</span><span id="L-3031"><a href="#L-3031"><span class="linenos">3031</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-3032"><a href="#L-3032"><span class="linenos">3032</span></a> <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="sd"> Returns:</span>
-</span><span id="L-3035"><a href="#L-3035"><span class="linenos">3035</span></a><span class="sd"> The modified Select expression.</span>
-</span><span id="L-3036"><a href="#L-3036"><span class="linenos">3036</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-3037"><a href="#L-3037"><span class="linenos">3037</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="L-3038"><a href="#L-3038"><span class="linenos">3038</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-3039"><a href="#L-3039"><span class="linenos">3039</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-3040"><a href="#L-3040"><span class="linenos">3040</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-3041"><a href="#L-3041"><span class="linenos">3041</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-3042"><a href="#L-3042"><span class="linenos">3042</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-3043"><a href="#L-3043"><span class="linenos">3043</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-3044"><a href="#L-3044"><span class="linenos">3044</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-3045"><a href="#L-3045"><span class="linenos">3045</span></a> <span class="p">)</span>
-</span><span id="L-3046"><a href="#L-3046"><span class="linenos">3046</span></a>
-</span><span id="L-3047"><a href="#L-3047"><span class="linenos">3047</span></a> <span class="k">def</span> <span class="nf">lateral</span><span class="p">(</span>
-</span><span id="L-3048"><a href="#L-3048"><span class="linenos">3048</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-3049"><a href="#L-3049"><span class="linenos">3049</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="L-3050"><a href="#L-3050"><span class="linenos">3050</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-3051"><a href="#L-3051"><span class="linenos">3051</span></a> <span class="n">dialect</span><span 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-3052"><a href="#L-3052"><span class="linenos">3052</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-3053"><a href="#L-3053"><span class="linenos">3053</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-3054"><a href="#L-3054"><span class="linenos">3054</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-3055"><a href="#L-3055"><span class="linenos">3055</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-3056"><a href="#L-3056"><span class="linenos">3056</span></a><span class="sd"> Append to or set the LATERAL expressions.</span>
+</span><span id="L-3034"><a href="#L-3034"><span class="linenos">3034</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
+</span><span id="L-3035"><a href="#L-3035"><span class="linenos">3035</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-3036"><a href="#L-3036"><span class="linenos">3036</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="L-3037"><a href="#L-3037"><span class="linenos">3037</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-3038"><a href="#L-3038"><span class="linenos">3038</span></a> <span class="n">dialect</span><span 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-3039"><a href="#L-3039"><span class="linenos">3039</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-3040"><a href="#L-3040"><span class="linenos">3040</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-3041"><a href="#L-3041"><span class="linenos">3041</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-3042"><a href="#L-3042"><span class="linenos">3042</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-3043"><a href="#L-3043"><span class="linenos">3043</span></a><span class="sd"> Append to or set the SELECT expressions.</span>
+</span><span id="L-3044"><a href="#L-3044"><span class="linenos">3044</span></a>
+</span><span id="L-3045"><a href="#L-3045"><span class="linenos">3045</span></a><span class="sd"> Example:</span>
+</span><span id="L-3046"><a href="#L-3046"><span class="linenos">3046</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;, &quot;y&quot;).sql()</span>
+</span><span id="L-3047"><a href="#L-3047"><span class="linenos">3047</span></a><span class="sd"> &#39;SELECT x, y&#39;</span>
+</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="sd"> Args:</span>
+</span><span id="L-3050"><a href="#L-3050"><span class="linenos">3050</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="L-3051"><a href="#L-3051"><span class="linenos">3051</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-3052"><a href="#L-3052"><span class="linenos">3052</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="L-3053"><a href="#L-3053"><span class="linenos">3053</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="L-3054"><a href="#L-3054"><span class="linenos">3054</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="L-3055"><a href="#L-3055"><span class="linenos">3055</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-3056"><a href="#L-3056"><span class="linenos">3056</span></a><span class="sd"> opts: other options to use to parse the input expressions.</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 class="sd"> Example:</span>
-</span><span id="L-3059"><a href="#L-3059"><span class="linenos">3059</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-3060"><a href="#L-3060"><span class="linenos">3060</span></a><span class="sd"> &#39;SELECT x FROM tbl LATERAL VIEW OUTER EXPLODE(y) tbl2 AS z&#39;</span>
-</span><span id="L-3061"><a href="#L-3061"><span class="linenos">3061</span></a>
-</span><span id="L-3062"><a href="#L-3062"><span class="linenos">3062</span></a><span class="sd"> Args:</span>
-</span><span id="L-3063"><a href="#L-3063"><span class="linenos">3063</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="L-3064"><a href="#L-3064"><span class="linenos">3064</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-3065"><a href="#L-3065"><span class="linenos">3065</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="L-3066"><a href="#L-3066"><span class="linenos">3066</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="L-3067"><a href="#L-3067"><span class="linenos">3067</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="L-3068"><a href="#L-3068"><span class="linenos">3068</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="L-3069"><a href="#L-3069"><span class="linenos">3069</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-3058"><a href="#L-3058"><span class="linenos">3058</span></a><span class="sd"> Returns:</span>
+</span><span id="L-3059"><a href="#L-3059"><span class="linenos">3059</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="L-3060"><a href="#L-3060"><span class="linenos">3060</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-3061"><a href="#L-3061"><span class="linenos">3061</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="L-3062"><a href="#L-3062"><span class="linenos">3062</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-3063"><a href="#L-3063"><span class="linenos">3063</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-3064"><a href="#L-3064"><span class="linenos">3064</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-3065"><a href="#L-3065"><span class="linenos">3065</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-3066"><a href="#L-3066"><span class="linenos">3066</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-3067"><a href="#L-3067"><span class="linenos">3067</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-3068"><a href="#L-3068"><span class="linenos">3068</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-3069"><a href="#L-3069"><span class="linenos">3069</span></a> <span class="p">)</span>
</span><span id="L-3070"><a href="#L-3070"><span class="linenos">3070</span></a>
-</span><span id="L-3071"><a href="#L-3071"><span class="linenos">3071</span></a><span class="sd"> Returns:</span>
-</span><span id="L-3072"><a href="#L-3072"><span class="linenos">3072</span></a><span class="sd"> The modified Select expression.</span>
-</span><span id="L-3073"><a href="#L-3073"><span class="linenos">3073</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-3074"><a href="#L-3074"><span class="linenos">3074</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="L-3075"><a href="#L-3075"><span class="linenos">3075</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-3076"><a href="#L-3076"><span class="linenos">3076</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-3077"><a href="#L-3077"><span class="linenos">3077</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-3078"><a href="#L-3078"><span class="linenos">3078</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-3079"><a href="#L-3079"><span class="linenos">3079</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Lateral</span><span class="p">,</span>
-</span><span id="L-3080"><a href="#L-3080"><span class="linenos">3080</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-3081"><a href="#L-3081"><span class="linenos">3081</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-3082"><a href="#L-3082"><span class="linenos">3082</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-3083"><a href="#L-3083"><span class="linenos">3083</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-3084"><a href="#L-3084"><span class="linenos">3084</span></a> <span class="p">)</span>
+</span><span id="L-3071"><a href="#L-3071"><span class="linenos">3071</span></a> <span class="k">def</span> <span class="nf">lateral</span><span class="p">(</span>
+</span><span id="L-3072"><a href="#L-3072"><span class="linenos">3072</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-3073"><a href="#L-3073"><span class="linenos">3073</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="L-3074"><a href="#L-3074"><span class="linenos">3074</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-3075"><a href="#L-3075"><span class="linenos">3075</span></a> <span class="n">dialect</span><span 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-3076"><a href="#L-3076"><span class="linenos">3076</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-3077"><a href="#L-3077"><span class="linenos">3077</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-3078"><a href="#L-3078"><span class="linenos">3078</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-3079"><a href="#L-3079"><span class="linenos">3079</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-3080"><a href="#L-3080"><span class="linenos">3080</span></a><span class="sd"> Append to or set the LATERAL expressions.</span>
+</span><span id="L-3081"><a href="#L-3081"><span class="linenos">3081</span></a>
+</span><span id="L-3082"><a href="#L-3082"><span class="linenos">3082</span></a><span class="sd"> Example:</span>
+</span><span id="L-3083"><a href="#L-3083"><span class="linenos">3083</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-3084"><a href="#L-3084"><span class="linenos">3084</span></a><span class="sd"> &#39;SELECT x FROM tbl LATERAL VIEW OUTER EXPLODE(y) tbl2 AS z&#39;</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 class="k">def</span> <span class="nf">join</span><span class="p">(</span>
-</span><span id="L-3087"><a href="#L-3087"><span class="linenos">3087</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-3088"><a href="#L-3088"><span class="linenos">3088</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-3089"><a href="#L-3089"><span class="linenos">3089</span></a> <span class="n">on</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-3090"><a href="#L-3090"><span class="linenos">3090</span></a> <span class="n">using</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Collection</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-3091"><a href="#L-3091"><span class="linenos">3091</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-3092"><a href="#L-3092"><span class="linenos">3092</span></a> <span class="n">join_type</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-3093"><a href="#L-3093"><span class="linenos">3093</span></a> <span class="n">join_alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-3094"><a href="#L-3094"><span class="linenos">3094</span></a> <span class="n">dialect</span><span 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-3095"><a href="#L-3095"><span class="linenos">3095</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-3096"><a href="#L-3096"><span class="linenos">3096</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-3097"><a href="#L-3097"><span class="linenos">3097</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-3098"><a href="#L-3098"><span class="linenos">3098</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-3099"><a href="#L-3099"><span class="linenos">3099</span></a><span class="sd"> Append to or set the JOIN expressions.</span>
-</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="sd"> Example:</span>
-</span><span id="L-3102"><a href="#L-3102"><span class="linenos">3102</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-3103"><a href="#L-3103"><span class="linenos">3103</span></a><span class="sd"> &#39;SELECT * FROM tbl JOIN tbl2 ON tbl1.y = tbl2.y&#39;</span>
-</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="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-3106"><a href="#L-3106"><span class="linenos">3106</span></a><span class="sd"> &#39;SELECT 1 FROM a JOIN b USING (x, y, z)&#39;</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 class="sd"> Use `join_type` to change the type of join:</span>
+</span><span id="L-3086"><a href="#L-3086"><span class="linenos">3086</span></a><span class="sd"> Args:</span>
+</span><span id="L-3087"><a href="#L-3087"><span class="linenos">3087</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="L-3088"><a href="#L-3088"><span class="linenos">3088</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-3089"><a href="#L-3089"><span class="linenos">3089</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="L-3090"><a href="#L-3090"><span class="linenos">3090</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="L-3091"><a href="#L-3091"><span class="linenos">3091</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="L-3092"><a href="#L-3092"><span class="linenos">3092</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-3093"><a href="#L-3093"><span class="linenos">3093</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-3094"><a href="#L-3094"><span class="linenos">3094</span></a>
+</span><span id="L-3095"><a href="#L-3095"><span class="linenos">3095</span></a><span class="sd"> Returns:</span>
+</span><span id="L-3096"><a href="#L-3096"><span class="linenos">3096</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="L-3097"><a href="#L-3097"><span class="linenos">3097</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-3098"><a href="#L-3098"><span class="linenos">3098</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="L-3099"><a href="#L-3099"><span class="linenos">3099</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-3100"><a href="#L-3100"><span class="linenos">3100</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-3101"><a href="#L-3101"><span class="linenos">3101</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-3102"><a href="#L-3102"><span class="linenos">3102</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-3103"><a href="#L-3103"><span class="linenos">3103</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Lateral</span><span class="p">,</span>
+</span><span id="L-3104"><a href="#L-3104"><span class="linenos">3104</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-3105"><a href="#L-3105"><span class="linenos">3105</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-3106"><a href="#L-3106"><span class="linenos">3106</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-3107"><a href="#L-3107"><span class="linenos">3107</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-3108"><a href="#L-3108"><span class="linenos">3108</span></a> <span class="p">)</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 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-3111"><a href="#L-3111"><span class="linenos">3111</span></a><span class="sd"> &#39;SELECT * FROM tbl LEFT OUTER JOIN tbl2 ON tbl1.y = tbl2.y&#39;</span>
-</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="sd"> Args:</span>
-</span><span id="L-3114"><a href="#L-3114"><span class="linenos">3114</span></a><span class="sd"> expression: the SQL code string to parse.</span>
-</span><span id="L-3115"><a href="#L-3115"><span class="linenos">3115</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-3116"><a href="#L-3116"><span class="linenos">3116</span></a><span class="sd"> on: optionally specify the join &quot;on&quot; criteria as a SQL string.</span>
-</span><span id="L-3117"><a href="#L-3117"><span class="linenos">3117</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-3118"><a href="#L-3118"><span class="linenos">3118</span></a><span class="sd"> using: optionally specify the join &quot;using&quot; criteria as a SQL string.</span>
-</span><span id="L-3119"><a href="#L-3119"><span class="linenos">3119</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-3120"><a href="#L-3120"><span class="linenos">3120</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="L-3121"><a href="#L-3121"><span class="linenos">3121</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="L-3122"><a href="#L-3122"><span class="linenos">3122</span></a><span class="sd"> join_type: if set, alter the parsed join type.</span>
-</span><span id="L-3123"><a href="#L-3123"><span class="linenos">3123</span></a><span class="sd"> join_alias: an optional alias for the joined source.</span>
-</span><span id="L-3124"><a href="#L-3124"><span class="linenos">3124</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="L-3125"><a href="#L-3125"><span class="linenos">3125</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="L-3126"><a href="#L-3126"><span class="linenos">3126</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="L-3127"><a href="#L-3127"><span class="linenos">3127</span></a>
-</span><span id="L-3128"><a href="#L-3128"><span class="linenos">3128</span></a><span class="sd"> Returns:</span>
-</span><span id="L-3129"><a href="#L-3129"><span class="linenos">3129</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="L-3130"><a href="#L-3130"><span class="linenos">3130</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-3131"><a href="#L-3131"><span class="linenos">3131</span></a> <span class="n">parse_args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;dialect&quot;</span><span class="p">:</span> <span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">}</span>
-</span><span id="L-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">try</span><span class="p">:</span>
-</span><span id="L-3134"><a href="#L-3134"><span class="linenos">3134</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-3135"><a href="#L-3135"><span class="linenos">3135</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span>
-</span><span id="L-3136"><a href="#L-3136"><span class="linenos">3136</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-3137"><a href="#L-3137"><span class="linenos">3137</span></a>
-</span><span id="L-3138"><a href="#L-3138"><span class="linenos">3138</span></a> <span class="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-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 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-3141"><a href="#L-3141"><span class="linenos">3141</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-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="k">if</span> <span class="n">join_type</span><span class="p">:</span>
-</span><span id="L-3144"><a href="#L-3144"><span class="linenos">3144</span></a> <span class="n">method</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">]</span>
-</span><span id="L-3145"><a href="#L-3145"><span class="linenos">3145</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-3146"><a href="#L-3146"><span class="linenos">3146</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-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 class="n">method</span><span class="p">,</span> <span class="n">side</span><span class="p">,</span> <span class="n">kind</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">join_type</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="s2">&quot;JOIN_TYPE&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span> <span class="c1"># type: ignore</span>
-</span><span id="L-3149"><a href="#L-3149"><span class="linenos">3149</span></a>
-</span><span id="L-3150"><a href="#L-3150"><span class="linenos">3150</span></a> <span class="k">if</span> <span class="n">method</span><span class="p">:</span>
-</span><span id="L-3151"><a href="#L-3151"><span class="linenos">3151</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;method&quot;</span><span class="p">,</span> <span class="n">method</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
-</span><span id="L-3152"><a href="#L-3152"><span class="linenos">3152</span></a> <span class="k">if</span> <span class="n">side</span><span class="p">:</span>
-</span><span id="L-3153"><a href="#L-3153"><span class="linenos">3153</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-3154"><a href="#L-3154"><span class="linenos">3154</span></a> <span class="k">if</span> <span class="n">kind</span><span class="p">:</span>
-</span><span id="L-3155"><a href="#L-3155"><span class="linenos">3155</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-3110"><a href="#L-3110"><span class="linenos">3110</span></a> <span class="k">def</span> <span class="nf">join</span><span class="p">(</span>
+</span><span id="L-3111"><a href="#L-3111"><span class="linenos">3111</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-3112"><a href="#L-3112"><span class="linenos">3112</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-3113"><a href="#L-3113"><span class="linenos">3113</span></a> <span class="n">on</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-3114"><a href="#L-3114"><span class="linenos">3114</span></a> <span class="n">using</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Collection</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-3115"><a href="#L-3115"><span class="linenos">3115</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-3116"><a href="#L-3116"><span class="linenos">3116</span></a> <span class="n">join_type</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-3117"><a href="#L-3117"><span class="linenos">3117</span></a> <span class="n">join_alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-3118"><a href="#L-3118"><span class="linenos">3118</span></a> <span class="n">dialect</span><span 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-3119"><a href="#L-3119"><span class="linenos">3119</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-3120"><a href="#L-3120"><span class="linenos">3120</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-3121"><a href="#L-3121"><span class="linenos">3121</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-3122"><a href="#L-3122"><span class="linenos">3122</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-3123"><a href="#L-3123"><span class="linenos">3123</span></a><span class="sd"> Append to or set the JOIN expressions.</span>
+</span><span id="L-3124"><a href="#L-3124"><span class="linenos">3124</span></a>
+</span><span id="L-3125"><a href="#L-3125"><span class="linenos">3125</span></a><span class="sd"> Example:</span>
+</span><span id="L-3126"><a href="#L-3126"><span class="linenos">3126</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-3127"><a href="#L-3127"><span class="linenos">3127</span></a><span class="sd"> &#39;SELECT * FROM tbl JOIN tbl2 ON tbl1.y = tbl2.y&#39;</span>
+</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="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-3130"><a href="#L-3130"><span class="linenos">3130</span></a><span class="sd"> &#39;SELECT 1 FROM a JOIN b USING (x, y, z)&#39;</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 class="sd"> Use `join_type` to change the type of join:</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 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-3135"><a href="#L-3135"><span class="linenos">3135</span></a><span class="sd"> &#39;SELECT * FROM tbl LEFT OUTER JOIN tbl2 ON tbl1.y = tbl2.y&#39;</span>
+</span><span id="L-3136"><a href="#L-3136"><span class="linenos">3136</span></a>
+</span><span id="L-3137"><a href="#L-3137"><span class="linenos">3137</span></a><span class="sd"> Args:</span>
+</span><span id="L-3138"><a href="#L-3138"><span class="linenos">3138</span></a><span class="sd"> expression: the SQL code string to parse.</span>
+</span><span id="L-3139"><a href="#L-3139"><span class="linenos">3139</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-3140"><a href="#L-3140"><span class="linenos">3140</span></a><span class="sd"> on: optionally specify the join &quot;on&quot; criteria as a SQL string.</span>
+</span><span id="L-3141"><a href="#L-3141"><span class="linenos">3141</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-3142"><a href="#L-3142"><span class="linenos">3142</span></a><span class="sd"> using: optionally specify the join &quot;using&quot; criteria as a SQL string.</span>
+</span><span id="L-3143"><a href="#L-3143"><span class="linenos">3143</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-3144"><a href="#L-3144"><span class="linenos">3144</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="L-3145"><a href="#L-3145"><span class="linenos">3145</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="L-3146"><a href="#L-3146"><span class="linenos">3146</span></a><span class="sd"> join_type: if set, alter the parsed join type.</span>
+</span><span id="L-3147"><a href="#L-3147"><span class="linenos">3147</span></a><span class="sd"> join_alias: an optional alias for the joined source.</span>
+</span><span id="L-3148"><a href="#L-3148"><span class="linenos">3148</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="L-3149"><a href="#L-3149"><span class="linenos">3149</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-3150"><a href="#L-3150"><span class="linenos">3150</span></a><span class="sd"> opts: other options to use to parse the input expressions.</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 class="sd"> Returns:</span>
+</span><span id="L-3153"><a href="#L-3153"><span class="linenos">3153</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="L-3154"><a href="#L-3154"><span class="linenos">3154</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-3155"><a href="#L-3155"><span class="linenos">3155</span></a> <span class="n">parse_args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;dialect&quot;</span><span class="p">:</span> <span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">}</span>
</span><span id="L-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">if</span> <span class="n">on</span><span class="p">:</span>
-</span><span id="L-3158"><a href="#L-3158"><span class="linenos">3158</span></a> <span class="n">on</span> <span class="o">=</span> <span class="n">and_</span><span class="p">(</span><span class="o">*</span><span class="n">ensure_list</span><span class="p">(</span><span class="n">on</span><span class="p">),</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-3159"><a href="#L-3159"><span class="linenos">3159</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-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">if</span> <span class="n">using</span><span class="p">:</span>
-</span><span id="L-3162"><a href="#L-3162"><span class="linenos">3162</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-3163"><a href="#L-3163"><span class="linenos">3163</span></a> <span class="o">*</span><span class="n">ensure_list</span><span class="p">(</span><span class="n">using</span><span class="p">),</span>
-</span><span id="L-3164"><a href="#L-3164"><span class="linenos">3164</span></a> <span class="n">instance</span><span class="o">=</span><span class="n">join</span><span class="p">,</span>
-</span><span id="L-3165"><a href="#L-3165"><span class="linenos">3165</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-3166"><a href="#L-3166"><span class="linenos">3166</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-3167"><a href="#L-3167"><span class="linenos">3167</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-3168"><a href="#L-3168"><span class="linenos">3168</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Identifier</span><span class="p">,</span>
-</span><span id="L-3169"><a href="#L-3169"><span class="linenos">3169</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-3170"><a href="#L-3170"><span class="linenos">3170</span></a> <span class="p">)</span>
+</span><span id="L-3157"><a href="#L-3157"><span class="linenos">3157</span></a> <span class="k">try</span><span class="p">:</span>
+</span><span id="L-3158"><a href="#L-3158"><span class="linenos">3158</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-3159"><a href="#L-3159"><span class="linenos">3159</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span>
+</span><span id="L-3160"><a href="#L-3160"><span class="linenos">3160</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-3161"><a href="#L-3161"><span class="linenos">3161</span></a>
+</span><span id="L-3162"><a href="#L-3162"><span class="linenos">3162</span></a> <span 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-3163"><a href="#L-3163"><span class="linenos">3163</span></a>
+</span><span id="L-3164"><a href="#L-3164"><span class="linenos">3164</span></a> <span class="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-3165"><a href="#L-3165"><span class="linenos">3165</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-3166"><a href="#L-3166"><span class="linenos">3166</span></a>
+</span><span id="L-3167"><a href="#L-3167"><span class="linenos">3167</span></a> <span class="k">if</span> <span class="n">join_type</span><span class="p">:</span>
+</span><span id="L-3168"><a href="#L-3168"><span class="linenos">3168</span></a> <span class="n">method</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">]</span>
+</span><span id="L-3169"><a href="#L-3169"><span class="linenos">3169</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-3170"><a href="#L-3170"><span class="linenos">3170</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-3171"><a href="#L-3171"><span class="linenos">3171</span></a>
-</span><span id="L-3172"><a href="#L-3172"><span class="linenos">3172</span></a> <span class="k">if</span> <span class="n">join_alias</span><span class="p">:</span>
-</span><span id="L-3173"><a href="#L-3173"><span class="linenos">3173</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-3174"><a href="#L-3174"><span class="linenos">3174</span></a>
-</span><span id="L-3175"><a href="#L-3175"><span class="linenos">3175</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="L-3176"><a href="#L-3176"><span class="linenos">3176</span></a> <span class="n">join</span><span class="p">,</span>
-</span><span id="L-3177"><a href="#L-3177"><span class="linenos">3177</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-3178"><a href="#L-3178"><span class="linenos">3178</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-3179"><a href="#L-3179"><span class="linenos">3179</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-3180"><a href="#L-3180"><span class="linenos">3180</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-3181"><a href="#L-3181"><span class="linenos">3181</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-3182"><a href="#L-3182"><span class="linenos">3182</span></a> <span class="p">)</span>
-</span><span id="L-3183"><a href="#L-3183"><span class="linenos">3183</span></a>
-</span><span id="L-3184"><a href="#L-3184"><span class="linenos">3184</span></a> <span class="k">def</span> <span class="nf">where</span><span class="p">(</span>
-</span><span id="L-3185"><a href="#L-3185"><span class="linenos">3185</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-3186"><a href="#L-3186"><span class="linenos">3186</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="L-3187"><a href="#L-3187"><span class="linenos">3187</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-3188"><a href="#L-3188"><span class="linenos">3188</span></a> <span class="n">dialect</span><span 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-3189"><a href="#L-3189"><span class="linenos">3189</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-3190"><a href="#L-3190"><span class="linenos">3190</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-3191"><a href="#L-3191"><span class="linenos">3191</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-3192"><a href="#L-3192"><span class="linenos">3192</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-3193"><a href="#L-3193"><span class="linenos">3193</span></a><span class="sd"> Append to or set the WHERE expressions.</span>
-</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="sd"> Example:</span>
-</span><span id="L-3196"><a href="#L-3196"><span class="linenos">3196</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-3197"><a href="#L-3197"><span class="linenos">3197</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-3172"><a href="#L-3172"><span class="linenos">3172</span></a> <span class="n">method</span><span class="p">,</span> <span class="n">side</span><span class="p">,</span> <span class="n">kind</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">join_type</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="s2">&quot;JOIN_TYPE&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span> <span class="c1"># type: ignore</span>
+</span><span id="L-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">if</span> <span class="n">method</span><span class="p">:</span>
+</span><span id="L-3175"><a href="#L-3175"><span class="linenos">3175</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;method&quot;</span><span class="p">,</span> <span class="n">method</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
+</span><span id="L-3176"><a href="#L-3176"><span class="linenos">3176</span></a> <span class="k">if</span> <span class="n">side</span><span class="p">:</span>
+</span><span id="L-3177"><a href="#L-3177"><span class="linenos">3177</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-3178"><a href="#L-3178"><span class="linenos">3178</span></a> <span class="k">if</span> <span class="n">kind</span><span class="p">:</span>
+</span><span id="L-3179"><a href="#L-3179"><span class="linenos">3179</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-3180"><a href="#L-3180"><span class="linenos">3180</span></a>
+</span><span id="L-3181"><a href="#L-3181"><span class="linenos">3181</span></a> <span class="k">if</span> <span class="n">on</span><span class="p">:</span>
+</span><span id="L-3182"><a href="#L-3182"><span class="linenos">3182</span></a> <span class="n">on</span> <span class="o">=</span> <span class="n">and_</span><span class="p">(</span><span class="o">*</span><span class="n">ensure_list</span><span class="p">(</span><span class="n">on</span><span class="p">),</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-3183"><a href="#L-3183"><span class="linenos">3183</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-3184"><a href="#L-3184"><span class="linenos">3184</span></a>
+</span><span id="L-3185"><a href="#L-3185"><span class="linenos">3185</span></a> <span class="k">if</span> <span class="n">using</span><span class="p">:</span>
+</span><span id="L-3186"><a href="#L-3186"><span class="linenos">3186</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-3187"><a href="#L-3187"><span class="linenos">3187</span></a> <span class="o">*</span><span class="n">ensure_list</span><span class="p">(</span><span class="n">using</span><span class="p">),</span>
+</span><span id="L-3188"><a href="#L-3188"><span class="linenos">3188</span></a> <span class="n">instance</span><span class="o">=</span><span class="n">join</span><span class="p">,</span>
+</span><span id="L-3189"><a href="#L-3189"><span class="linenos">3189</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-3190"><a href="#L-3190"><span class="linenos">3190</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-3191"><a href="#L-3191"><span class="linenos">3191</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-3192"><a href="#L-3192"><span class="linenos">3192</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Identifier</span><span class="p">,</span>
+</span><span id="L-3193"><a href="#L-3193"><span class="linenos">3193</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-3194"><a href="#L-3194"><span class="linenos">3194</span></a> <span class="p">)</span>
+</span><span id="L-3195"><a href="#L-3195"><span class="linenos">3195</span></a>
+</span><span id="L-3196"><a href="#L-3196"><span class="linenos">3196</span></a> <span class="k">if</span> <span class="n">join_alias</span><span class="p">:</span>
+</span><span id="L-3197"><a href="#L-3197"><span class="linenos">3197</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-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="sd"> Args:</span>
-</span><span id="L-3200"><a href="#L-3200"><span class="linenos">3200</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="L-3201"><a href="#L-3201"><span class="linenos">3201</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-3202"><a href="#L-3202"><span class="linenos">3202</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
-</span><span id="L-3203"><a href="#L-3203"><span class="linenos">3203</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
-</span><span id="L-3204"><a href="#L-3204"><span class="linenos">3204</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="L-3205"><a href="#L-3205"><span class="linenos">3205</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="L-3206"><a href="#L-3206"><span class="linenos">3206</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="L-3207"><a href="#L-3207"><span class="linenos">3207</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</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="sd"> Returns:</span>
-</span><span id="L-3210"><a href="#L-3210"><span class="linenos">3210</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="L-3211"><a href="#L-3211"><span class="linenos">3211</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-3212"><a href="#L-3212"><span class="linenos">3212</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="L-3213"><a href="#L-3213"><span class="linenos">3213</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-3214"><a href="#L-3214"><span class="linenos">3214</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-3215"><a href="#L-3215"><span class="linenos">3215</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-3216"><a href="#L-3216"><span class="linenos">3216</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-3217"><a href="#L-3217"><span class="linenos">3217</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span>
-</span><span id="L-3218"><a href="#L-3218"><span class="linenos">3218</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-3219"><a href="#L-3219"><span class="linenos">3219</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-3220"><a href="#L-3220"><span class="linenos">3220</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-3221"><a href="#L-3221"><span class="linenos">3221</span></a> <span class="p">)</span>
+</span><span id="L-3199"><a href="#L-3199"><span class="linenos">3199</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="L-3200"><a href="#L-3200"><span class="linenos">3200</span></a> <span class="n">join</span><span class="p">,</span>
+</span><span id="L-3201"><a href="#L-3201"><span class="linenos">3201</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-3202"><a href="#L-3202"><span class="linenos">3202</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-3203"><a href="#L-3203"><span class="linenos">3203</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-3204"><a href="#L-3204"><span class="linenos">3204</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-3205"><a href="#L-3205"><span class="linenos">3205</span></a> <span class="o">**</span><span class="n">opts</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 class="k">def</span> <span class="nf">where</span><span class="p">(</span>
+</span><span id="L-3209"><a href="#L-3209"><span class="linenos">3209</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-3210"><a href="#L-3210"><span class="linenos">3210</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="L-3211"><a href="#L-3211"><span class="linenos">3211</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-3212"><a href="#L-3212"><span class="linenos">3212</span></a> <span class="n">dialect</span><span 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-3213"><a href="#L-3213"><span class="linenos">3213</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-3214"><a href="#L-3214"><span class="linenos">3214</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-3215"><a href="#L-3215"><span class="linenos">3215</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-3216"><a href="#L-3216"><span class="linenos">3216</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-3217"><a href="#L-3217"><span class="linenos">3217</span></a><span class="sd"> Append to or set the WHERE expressions.</span>
+</span><span id="L-3218"><a href="#L-3218"><span class="linenos">3218</span></a>
+</span><span id="L-3219"><a href="#L-3219"><span class="linenos">3219</span></a><span class="sd"> Example:</span>
+</span><span id="L-3220"><a href="#L-3220"><span class="linenos">3220</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-3221"><a href="#L-3221"><span class="linenos">3221</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-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">def</span> <span class="nf">having</span><span class="p">(</span>
-</span><span id="L-3224"><a href="#L-3224"><span class="linenos">3224</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-3225"><a href="#L-3225"><span class="linenos">3225</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="L-3226"><a href="#L-3226"><span class="linenos">3226</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-3227"><a href="#L-3227"><span class="linenos">3227</span></a> <span class="n">dialect</span><span 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-3228"><a href="#L-3228"><span class="linenos">3228</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-3229"><a href="#L-3229"><span class="linenos">3229</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-3230"><a href="#L-3230"><span class="linenos">3230</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-3231"><a href="#L-3231"><span class="linenos">3231</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-3232"><a href="#L-3232"><span class="linenos">3232</span></a><span class="sd"> Append to or set the HAVING expressions.</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 class="sd"> Example:</span>
-</span><span id="L-3235"><a href="#L-3235"><span class="linenos">3235</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-3236"><a href="#L-3236"><span class="linenos">3236</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-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 class="sd"> Args:</span>
-</span><span id="L-3239"><a href="#L-3239"><span class="linenos">3239</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="L-3240"><a href="#L-3240"><span class="linenos">3240</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-3241"><a href="#L-3241"><span class="linenos">3241</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
-</span><span id="L-3242"><a href="#L-3242"><span class="linenos">3242</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
-</span><span id="L-3243"><a href="#L-3243"><span class="linenos">3243</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="L-3244"><a href="#L-3244"><span class="linenos">3244</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="L-3245"><a href="#L-3245"><span class="linenos">3245</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="L-3246"><a href="#L-3246"><span class="linenos">3246</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="L-3247"><a href="#L-3247"><span class="linenos">3247</span></a>
-</span><span id="L-3248"><a href="#L-3248"><span class="linenos">3248</span></a><span class="sd"> Returns:</span>
-</span><span id="L-3249"><a href="#L-3249"><span class="linenos">3249</span></a><span class="sd"> The modified Select expression.</span>
-</span><span id="L-3250"><a href="#L-3250"><span class="linenos">3250</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-3251"><a href="#L-3251"><span class="linenos">3251</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="L-3252"><a href="#L-3252"><span class="linenos">3252</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-3253"><a href="#L-3253"><span class="linenos">3253</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-3254"><a href="#L-3254"><span class="linenos">3254</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;having&quot;</span><span class="p">,</span>
-</span><span id="L-3255"><a href="#L-3255"><span class="linenos">3255</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-3256"><a href="#L-3256"><span class="linenos">3256</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Having</span><span class="p">,</span>
-</span><span id="L-3257"><a href="#L-3257"><span class="linenos">3257</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-3258"><a href="#L-3258"><span class="linenos">3258</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-3259"><a href="#L-3259"><span class="linenos">3259</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-3260"><a href="#L-3260"><span class="linenos">3260</span></a> <span class="p">)</span>
+</span><span id="L-3223"><a href="#L-3223"><span class="linenos">3223</span></a><span class="sd"> Args:</span>
+</span><span id="L-3224"><a href="#L-3224"><span class="linenos">3224</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="L-3225"><a href="#L-3225"><span class="linenos">3225</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-3226"><a href="#L-3226"><span class="linenos">3226</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
+</span><span id="L-3227"><a href="#L-3227"><span class="linenos">3227</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
+</span><span id="L-3228"><a href="#L-3228"><span class="linenos">3228</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="L-3229"><a href="#L-3229"><span class="linenos">3229</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="L-3230"><a href="#L-3230"><span class="linenos">3230</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-3231"><a href="#L-3231"><span class="linenos">3231</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-3232"><a href="#L-3232"><span class="linenos">3232</span></a>
+</span><span id="L-3233"><a href="#L-3233"><span class="linenos">3233</span></a><span class="sd"> Returns:</span>
+</span><span id="L-3234"><a href="#L-3234"><span class="linenos">3234</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="L-3235"><a href="#L-3235"><span class="linenos">3235</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-3236"><a href="#L-3236"><span class="linenos">3236</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="L-3237"><a href="#L-3237"><span class="linenos">3237</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-3238"><a href="#L-3238"><span class="linenos">3238</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-3239"><a href="#L-3239"><span class="linenos">3239</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;where&quot;</span><span class="p">,</span>
+</span><span id="L-3240"><a href="#L-3240"><span class="linenos">3240</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-3241"><a href="#L-3241"><span class="linenos">3241</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span>
+</span><span id="L-3242"><a href="#L-3242"><span class="linenos">3242</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-3243"><a href="#L-3243"><span class="linenos">3243</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-3244"><a href="#L-3244"><span class="linenos">3244</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-3245"><a href="#L-3245"><span class="linenos">3245</span></a> <span class="p">)</span>
+</span><span id="L-3246"><a href="#L-3246"><span class="linenos">3246</span></a>
+</span><span id="L-3247"><a href="#L-3247"><span class="linenos">3247</span></a> <span class="k">def</span> <span class="nf">having</span><span class="p">(</span>
+</span><span id="L-3248"><a href="#L-3248"><span class="linenos">3248</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-3249"><a href="#L-3249"><span class="linenos">3249</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="L-3250"><a href="#L-3250"><span class="linenos">3250</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-3251"><a href="#L-3251"><span class="linenos">3251</span></a> <span class="n">dialect</span><span 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-3252"><a href="#L-3252"><span class="linenos">3252</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-3253"><a href="#L-3253"><span class="linenos">3253</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-3254"><a href="#L-3254"><span class="linenos">3254</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-3255"><a href="#L-3255"><span class="linenos">3255</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-3256"><a href="#L-3256"><span class="linenos">3256</span></a><span class="sd"> Append to or set the HAVING expressions.</span>
+</span><span id="L-3257"><a href="#L-3257"><span class="linenos">3257</span></a>
+</span><span id="L-3258"><a href="#L-3258"><span class="linenos">3258</span></a><span class="sd"> Example:</span>
+</span><span id="L-3259"><a href="#L-3259"><span class="linenos">3259</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-3260"><a href="#L-3260"><span class="linenos">3260</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-3261"><a href="#L-3261"><span class="linenos">3261</span></a>
-</span><span id="L-3262"><a href="#L-3262"><span class="linenos">3262</span></a> <span class="k">def</span> <span class="nf">window</span><span class="p">(</span>
-</span><span id="L-3263"><a href="#L-3263"><span class="linenos">3263</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-3264"><a href="#L-3264"><span class="linenos">3264</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="L-3265"><a href="#L-3265"><span class="linenos">3265</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-3266"><a href="#L-3266"><span class="linenos">3266</span></a> <span class="n">dialect</span><span 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-3267"><a href="#L-3267"><span class="linenos">3267</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-3268"><a href="#L-3268"><span class="linenos">3268</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-3269"><a href="#L-3269"><span class="linenos">3269</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-3270"><a href="#L-3270"><span class="linenos">3270</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="L-3271"><a href="#L-3271"><span class="linenos">3271</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-3272"><a href="#L-3272"><span class="linenos">3272</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-3273"><a href="#L-3273"><span class="linenos">3273</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;windows&quot;</span><span class="p">,</span>
-</span><span id="L-3274"><a href="#L-3274"><span class="linenos">3274</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-3275"><a href="#L-3275"><span class="linenos">3275</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Window</span><span class="p">,</span>
-</span><span id="L-3276"><a href="#L-3276"><span class="linenos">3276</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-3277"><a href="#L-3277"><span class="linenos">3277</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-3278"><a href="#L-3278"><span class="linenos">3278</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-3279"><a href="#L-3279"><span class="linenos">3279</span></a> <span class="p">)</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="k">def</span> <span class="nf">qualify</span><span class="p">(</span>
-</span><span id="L-3282"><a href="#L-3282"><span class="linenos">3282</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-3283"><a href="#L-3283"><span class="linenos">3283</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="L-3284"><a href="#L-3284"><span class="linenos">3284</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-3285"><a href="#L-3285"><span class="linenos">3285</span></a> <span class="n">dialect</span><span 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-3286"><a href="#L-3286"><span class="linenos">3286</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-3287"><a href="#L-3287"><span class="linenos">3287</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-3288"><a href="#L-3288"><span class="linenos">3288</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-3289"><a href="#L-3289"><span class="linenos">3289</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="L-3290"><a href="#L-3290"><span class="linenos">3290</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-3291"><a href="#L-3291"><span class="linenos">3291</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-3292"><a href="#L-3292"><span class="linenos">3292</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-3293"><a href="#L-3293"><span class="linenos">3293</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-3294"><a href="#L-3294"><span class="linenos">3294</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Qualify</span><span class="p">,</span>
-</span><span id="L-3295"><a href="#L-3295"><span class="linenos">3295</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-3296"><a href="#L-3296"><span class="linenos">3296</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-3297"><a href="#L-3297"><span class="linenos">3297</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-3298"><a href="#L-3298"><span class="linenos">3298</span></a> <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="k">def</span> <span class="nf">distinct</span><span class="p">(</span>
-</span><span id="L-3301"><a href="#L-3301"><span class="linenos">3301</span></a> <span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">ons</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-3302"><a href="#L-3302"><span class="linenos">3302</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-3303"><a href="#L-3303"><span class="linenos">3303</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-3304"><a href="#L-3304"><span class="linenos">3304</span></a><span class="sd"> Set the OFFSET expression.</span>
-</span><span id="L-3305"><a href="#L-3305"><span class="linenos">3305</span></a>
-</span><span id="L-3306"><a href="#L-3306"><span class="linenos">3306</span></a><span class="sd"> Example:</span>
-</span><span id="L-3307"><a href="#L-3307"><span class="linenos">3307</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).distinct().sql()</span>
-</span><span id="L-3308"><a href="#L-3308"><span class="linenos">3308</span></a><span class="sd"> &#39;SELECT DISTINCT x FROM tbl&#39;</span>
-</span><span id="L-3309"><a href="#L-3309"><span class="linenos">3309</span></a>
-</span><span id="L-3310"><a href="#L-3310"><span class="linenos">3310</span></a><span class="sd"> Args:</span>
-</span><span id="L-3311"><a href="#L-3311"><span class="linenos">3311</span></a><span class="sd"> ons: the expressions to distinct on</span>
-</span><span id="L-3312"><a href="#L-3312"><span class="linenos">3312</span></a><span class="sd"> distinct: whether the Select should be distinct</span>
-</span><span id="L-3313"><a href="#L-3313"><span class="linenos">3313</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="L-3314"><a href="#L-3314"><span class="linenos">3314</span></a>
-</span><span id="L-3315"><a href="#L-3315"><span class="linenos">3315</span></a><span class="sd"> Returns:</span>
-</span><span id="L-3316"><a href="#L-3316"><span class="linenos">3316</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="L-3317"><a href="#L-3317"><span class="linenos">3317</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-3318"><a href="#L-3318"><span class="linenos">3318</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-3319"><a href="#L-3319"><span class="linenos">3319</span></a> <span class="n">on</span> <span class="o">=</span> <span class="n">Tuple</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">on</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">on</span> <span class="ow">in</span> <span class="n">ons</span> <span class="k">if</span> <span class="n">on</span><span class="p">])</span> <span class="k">if</span> <span class="n">ons</span> <span class="k">else</span> <span class="kc">None</span>
-</span><span id="L-3320"><a href="#L-3320"><span class="linenos">3320</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;distinct&quot;</span><span class="p">,</span> <span class="n">Distinct</span><span class="p">(</span><span class="n">on</span><span class="o">=</span><span class="n">on</span><span class="p">)</span> <span class="k">if</span> <span class="n">distinct</span> <span class="k">else</span> <span class="kc">None</span><span class="p">)</span>
-</span><span id="L-3321"><a href="#L-3321"><span class="linenos">3321</span></a> <span class="k">return</span> <span class="n">instance</span>
-</span><span id="L-3322"><a href="#L-3322"><span class="linenos">3322</span></a>
-</span><span id="L-3323"><a href="#L-3323"><span class="linenos">3323</span></a> <span class="k">def</span> <span class="nf">ctas</span><span class="p">(</span>
-</span><span id="L-3324"><a href="#L-3324"><span class="linenos">3324</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-3325"><a href="#L-3325"><span class="linenos">3325</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-3326"><a href="#L-3326"><span class="linenos">3326</span></a> <span class="n">properties</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-3327"><a href="#L-3327"><span class="linenos">3327</span></a> <span class="n">dialect</span><span 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-3328"><a href="#L-3328"><span class="linenos">3328</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-3329"><a href="#L-3329"><span class="linenos">3329</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-3330"><a href="#L-3330"><span class="linenos">3330</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Create</span><span class="p">:</span>
-</span><span id="L-3331"><a href="#L-3331"><span class="linenos">3331</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-3332"><a href="#L-3332"><span class="linenos">3332</span></a><span class="sd"> Convert this expression to a CREATE TABLE AS statement.</span>
+</span><span id="L-3262"><a href="#L-3262"><span class="linenos">3262</span></a><span class="sd"> Args:</span>
+</span><span id="L-3263"><a href="#L-3263"><span class="linenos">3263</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="L-3264"><a href="#L-3264"><span class="linenos">3264</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-3265"><a href="#L-3265"><span class="linenos">3265</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
+</span><span id="L-3266"><a href="#L-3266"><span class="linenos">3266</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
+</span><span id="L-3267"><a href="#L-3267"><span class="linenos">3267</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="L-3268"><a href="#L-3268"><span class="linenos">3268</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="L-3269"><a href="#L-3269"><span class="linenos">3269</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-3270"><a href="#L-3270"><span class="linenos">3270</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</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="sd"> Returns:</span>
+</span><span id="L-3273"><a href="#L-3273"><span class="linenos">3273</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="L-3274"><a href="#L-3274"><span class="linenos">3274</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-3275"><a href="#L-3275"><span class="linenos">3275</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="L-3276"><a href="#L-3276"><span class="linenos">3276</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-3277"><a href="#L-3277"><span class="linenos">3277</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-3278"><a href="#L-3278"><span class="linenos">3278</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-3279"><a href="#L-3279"><span class="linenos">3279</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-3280"><a href="#L-3280"><span class="linenos">3280</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Having</span><span class="p">,</span>
+</span><span id="L-3281"><a href="#L-3281"><span class="linenos">3281</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-3282"><a href="#L-3282"><span class="linenos">3282</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-3283"><a href="#L-3283"><span class="linenos">3283</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-3284"><a href="#L-3284"><span class="linenos">3284</span></a> <span class="p">)</span>
+</span><span id="L-3285"><a href="#L-3285"><span class="linenos">3285</span></a>
+</span><span id="L-3286"><a href="#L-3286"><span class="linenos">3286</span></a> <span class="k">def</span> <span class="nf">window</span><span class="p">(</span>
+</span><span id="L-3287"><a href="#L-3287"><span class="linenos">3287</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-3288"><a href="#L-3288"><span class="linenos">3288</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="L-3289"><a href="#L-3289"><span class="linenos">3289</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-3290"><a href="#L-3290"><span class="linenos">3290</span></a> <span class="n">dialect</span><span 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-3291"><a href="#L-3291"><span class="linenos">3291</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-3292"><a href="#L-3292"><span class="linenos">3292</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-3293"><a href="#L-3293"><span class="linenos">3293</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-3294"><a href="#L-3294"><span class="linenos">3294</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="L-3295"><a href="#L-3295"><span class="linenos">3295</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-3296"><a href="#L-3296"><span class="linenos">3296</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-3297"><a href="#L-3297"><span class="linenos">3297</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-3298"><a href="#L-3298"><span class="linenos">3298</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-3299"><a href="#L-3299"><span class="linenos">3299</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Window</span><span class="p">,</span>
+</span><span id="L-3300"><a href="#L-3300"><span class="linenos">3300</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-3301"><a href="#L-3301"><span class="linenos">3301</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-3302"><a href="#L-3302"><span class="linenos">3302</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-3303"><a href="#L-3303"><span class="linenos">3303</span></a> <span class="p">)</span>
+</span><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">def</span> <span class="nf">qualify</span><span class="p">(</span>
+</span><span id="L-3306"><a href="#L-3306"><span class="linenos">3306</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-3307"><a href="#L-3307"><span class="linenos">3307</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="L-3308"><a href="#L-3308"><span class="linenos">3308</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-3309"><a href="#L-3309"><span class="linenos">3309</span></a> <span class="n">dialect</span><span 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-3310"><a href="#L-3310"><span class="linenos">3310</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-3311"><a href="#L-3311"><span class="linenos">3311</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-3312"><a href="#L-3312"><span class="linenos">3312</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-3313"><a href="#L-3313"><span class="linenos">3313</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="L-3314"><a href="#L-3314"><span class="linenos">3314</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-3315"><a href="#L-3315"><span class="linenos">3315</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-3316"><a href="#L-3316"><span class="linenos">3316</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-3317"><a href="#L-3317"><span class="linenos">3317</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-3318"><a href="#L-3318"><span class="linenos">3318</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Qualify</span><span class="p">,</span>
+</span><span id="L-3319"><a href="#L-3319"><span class="linenos">3319</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-3320"><a href="#L-3320"><span class="linenos">3320</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-3321"><a href="#L-3321"><span class="linenos">3321</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-3322"><a href="#L-3322"><span class="linenos">3322</span></a> <span class="p">)</span>
+</span><span id="L-3323"><a href="#L-3323"><span class="linenos">3323</span></a>
+</span><span id="L-3324"><a href="#L-3324"><span class="linenos">3324</span></a> <span class="k">def</span> <span class="nf">distinct</span><span class="p">(</span>
+</span><span id="L-3325"><a href="#L-3325"><span class="linenos">3325</span></a> <span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">ons</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-3326"><a href="#L-3326"><span class="linenos">3326</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-3327"><a href="#L-3327"><span class="linenos">3327</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-3328"><a href="#L-3328"><span class="linenos">3328</span></a><span class="sd"> Set the OFFSET expression.</span>
+</span><span id="L-3329"><a href="#L-3329"><span class="linenos">3329</span></a>
+</span><span id="L-3330"><a href="#L-3330"><span class="linenos">3330</span></a><span class="sd"> Example:</span>
+</span><span id="L-3331"><a href="#L-3331"><span class="linenos">3331</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).distinct().sql()</span>
+</span><span id="L-3332"><a href="#L-3332"><span class="linenos">3332</span></a><span class="sd"> &#39;SELECT DISTINCT x FROM tbl&#39;</span>
</span><span id="L-3333"><a href="#L-3333"><span class="linenos">3333</span></a>
-</span><span id="L-3334"><a href="#L-3334"><span class="linenos">3334</span></a><span class="sd"> Example:</span>
-</span><span id="L-3335"><a href="#L-3335"><span class="linenos">3335</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-3336"><a href="#L-3336"><span class="linenos">3336</span></a><span class="sd"> &#39;CREATE TABLE x AS SELECT * FROM tbl&#39;</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 class="sd"> Args:</span>
-</span><span id="L-3339"><a href="#L-3339"><span class="linenos">3339</span></a><span class="sd"> table: the SQL code string to parse as the table name.</span>
-</span><span id="L-3340"><a href="#L-3340"><span class="linenos">3340</span></a><span class="sd"> If another `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-3341"><a href="#L-3341"><span class="linenos">3341</span></a><span class="sd"> properties: an optional mapping of table properties</span>
-</span><span id="L-3342"><a href="#L-3342"><span class="linenos">3342</span></a><span class="sd"> dialect: the dialect used to parse the input table.</span>
-</span><span id="L-3343"><a href="#L-3343"><span class="linenos">3343</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="L-3344"><a href="#L-3344"><span class="linenos">3344</span></a><span class="sd"> opts: other options to use to parse the input table.</span>
-</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="sd"> Returns:</span>
-</span><span id="L-3347"><a href="#L-3347"><span class="linenos">3347</span></a><span class="sd"> The new Create expression.</span>
-</span><span id="L-3348"><a href="#L-3348"><span class="linenos">3348</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-3349"><a href="#L-3349"><span class="linenos">3349</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-3350"><a href="#L-3350"><span class="linenos">3350</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-3351"><a href="#L-3351"><span class="linenos">3351</span></a> <span class="n">table</span><span class="p">,</span>
-</span><span id="L-3352"><a href="#L-3352"><span class="linenos">3352</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span>
-</span><span id="L-3353"><a href="#L-3353"><span class="linenos">3353</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-3354"><a href="#L-3354"><span class="linenos">3354</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-3355"><a href="#L-3355"><span class="linenos">3355</span></a> <span class="p">)</span>
-</span><span id="L-3356"><a href="#L-3356"><span class="linenos">3356</span></a> <span class="n">properties_expression</span> <span class="o">=</span> <span class="kc">None</span>
-</span><span id="L-3357"><a href="#L-3357"><span class="linenos">3357</span></a> <span class="k">if</span> <span class="n">properties</span><span class="p">:</span>
-</span><span id="L-3358"><a href="#L-3358"><span class="linenos">3358</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-3359"><a href="#L-3359"><span class="linenos">3359</span></a>
-</span><span id="L-3360"><a href="#L-3360"><span class="linenos">3360</span></a> <span class="k">return</span> <span class="n">Create</span><span class="p">(</span>
-</span><span id="L-3361"><a href="#L-3361"><span class="linenos">3361</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-3362"><a href="#L-3362"><span class="linenos">3362</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-3363"><a href="#L-3363"><span class="linenos">3363</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span>
-</span><span id="L-3364"><a href="#L-3364"><span class="linenos">3364</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-3365"><a href="#L-3365"><span class="linenos">3365</span></a> <span class="p">)</span>
-</span><span id="L-3366"><a href="#L-3366"><span class="linenos">3366</span></a>
-</span><span id="L-3367"><a href="#L-3367"><span class="linenos">3367</span></a> <span class="k">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-3368"><a href="#L-3368"><span class="linenos">3368</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-3369"><a href="#L-3369"><span class="linenos">3369</span></a><span class="sd"> Set the locking read mode for this expression.</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 class="sd"> Examples:</span>
-</span><span id="L-3372"><a href="#L-3372"><span class="linenos">3372</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-3373"><a href="#L-3373"><span class="linenos">3373</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR UPDATE&quot;</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 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-3376"><a href="#L-3376"><span class="linenos">3376</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR SHARE&quot;</span>
-</span><span id="L-3377"><a href="#L-3377"><span class="linenos">3377</span></a>
-</span><span id="L-3378"><a href="#L-3378"><span class="linenos">3378</span></a><span class="sd"> Args:</span>
-</span><span id="L-3379"><a href="#L-3379"><span class="linenos">3379</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-3380"><a href="#L-3380"><span class="linenos">3380</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="L-3381"><a href="#L-3381"><span class="linenos">3381</span></a>
-</span><span id="L-3382"><a href="#L-3382"><span class="linenos">3382</span></a><span class="sd"> Returns:</span>
-</span><span id="L-3383"><a href="#L-3383"><span class="linenos">3383</span></a><span class="sd"> The modified expression.</span>
-</span><span id="L-3384"><a href="#L-3384"><span class="linenos">3384</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-3385"><a href="#L-3385"><span class="linenos">3385</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-3386"><a href="#L-3386"><span class="linenos">3386</span></a> <span class="n">inst</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;locks&quot;</span><span class="p">,</span> <span class="p">[</span><span class="n">Lock</span><span class="p">(</span><span class="n">update</span><span class="o">=</span><span class="n">update</span><span class="p">)])</span>
-</span><span id="L-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="k">return</span> <span class="n">inst</span>
-</span><span id="L-3389"><a href="#L-3389"><span class="linenos">3389</span></a>
-</span><span id="L-3390"><a href="#L-3390"><span class="linenos">3390</span></a> <span class="k">def</span> <span class="nf">hint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">hints</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-3391"><a href="#L-3391"><span class="linenos">3391</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-3392"><a href="#L-3392"><span class="linenos">3392</span></a><span class="sd"> Set hints for this expression.</span>
-</span><span id="L-3393"><a href="#L-3393"><span class="linenos">3393</span></a>
-</span><span id="L-3394"><a href="#L-3394"><span class="linenos">3394</span></a><span class="sd"> Examples:</span>
-</span><span id="L-3395"><a href="#L-3395"><span class="linenos">3395</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).hint(&quot;BROADCAST(y)&quot;).sql(dialect=&quot;spark&quot;)</span>
-</span><span id="L-3396"><a href="#L-3396"><span class="linenos">3396</span></a><span class="sd"> &#39;SELECT /*+ BROADCAST(y) */ x FROM tbl&#39;</span>
-</span><span id="L-3397"><a href="#L-3397"><span class="linenos">3397</span></a>
-</span><span id="L-3398"><a href="#L-3398"><span class="linenos">3398</span></a><span class="sd"> Args:</span>
-</span><span id="L-3399"><a href="#L-3399"><span class="linenos">3399</span></a><span class="sd"> hints: The SQL code strings to parse as the hints.</span>
-</span><span id="L-3400"><a href="#L-3400"><span class="linenos">3400</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-3401"><a href="#L-3401"><span class="linenos">3401</span></a><span class="sd"> dialect: The dialect used to parse the hints.</span>
-</span><span id="L-3402"><a href="#L-3402"><span class="linenos">3402</span></a><span class="sd"> copy: If `False`, modify this expression instance in-place.</span>
-</span><span id="L-3403"><a href="#L-3403"><span class="linenos">3403</span></a>
-</span><span id="L-3404"><a href="#L-3404"><span class="linenos">3404</span></a><span class="sd"> Returns:</span>
-</span><span id="L-3405"><a href="#L-3405"><span class="linenos">3405</span></a><span class="sd"> The modified expression.</span>
-</span><span id="L-3406"><a href="#L-3406"><span class="linenos">3406</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-3407"><a href="#L-3407"><span class="linenos">3407</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-3408"><a href="#L-3408"><span class="linenos">3408</span></a> <span class="n">inst</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
-</span><span id="L-3409"><a href="#L-3409"><span class="linenos">3409</span></a> <span class="s2">&quot;hint&quot;</span><span class="p">,</span> <span class="n">Hint</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">h</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span> <span class="k">for</span> <span class="n">h</span> <span class="ow">in</span> <span class="n">hints</span><span class="p">])</span>
-</span><span id="L-3410"><a href="#L-3410"><span class="linenos">3410</span></a> <span class="p">)</span>
+</span><span id="L-3334"><a href="#L-3334"><span class="linenos">3334</span></a><span class="sd"> Args:</span>
+</span><span id="L-3335"><a href="#L-3335"><span class="linenos">3335</span></a><span class="sd"> ons: the expressions to distinct on</span>
+</span><span id="L-3336"><a href="#L-3336"><span class="linenos">3336</span></a><span class="sd"> distinct: whether the Select should be distinct</span>
+</span><span id="L-3337"><a href="#L-3337"><span class="linenos">3337</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-3338"><a href="#L-3338"><span class="linenos">3338</span></a>
+</span><span id="L-3339"><a href="#L-3339"><span class="linenos">3339</span></a><span class="sd"> Returns:</span>
+</span><span id="L-3340"><a href="#L-3340"><span class="linenos">3340</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="L-3341"><a href="#L-3341"><span class="linenos">3341</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-3342"><a href="#L-3342"><span class="linenos">3342</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-3343"><a href="#L-3343"><span class="linenos">3343</span></a> <span class="n">on</span> <span class="o">=</span> <span class="n">Tuple</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">on</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">on</span> <span class="ow">in</span> <span class="n">ons</span> <span class="k">if</span> <span class="n">on</span><span class="p">])</span> <span class="k">if</span> <span class="n">ons</span> <span class="k">else</span> <span class="kc">None</span>
+</span><span id="L-3344"><a href="#L-3344"><span class="linenos">3344</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;distinct&quot;</span><span class="p">,</span> <span class="n">Distinct</span><span class="p">(</span><span class="n">on</span><span class="o">=</span><span class="n">on</span><span class="p">)</span> <span class="k">if</span> <span class="n">distinct</span> <span class="k">else</span> <span class="kc">None</span><span class="p">)</span>
+</span><span id="L-3345"><a href="#L-3345"><span class="linenos">3345</span></a> <span class="k">return</span> <span class="n">instance</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 class="k">def</span> <span class="nf">ctas</span><span class="p">(</span>
+</span><span id="L-3348"><a href="#L-3348"><span class="linenos">3348</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-3349"><a href="#L-3349"><span class="linenos">3349</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-3350"><a href="#L-3350"><span class="linenos">3350</span></a> <span class="n">properties</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-3351"><a href="#L-3351"><span class="linenos">3351</span></a> <span class="n">dialect</span><span 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-3352"><a href="#L-3352"><span class="linenos">3352</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-3353"><a href="#L-3353"><span class="linenos">3353</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-3354"><a href="#L-3354"><span class="linenos">3354</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Create</span><span class="p">:</span>
+</span><span id="L-3355"><a href="#L-3355"><span class="linenos">3355</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-3356"><a href="#L-3356"><span class="linenos">3356</span></a><span class="sd"> Convert this expression to a CREATE TABLE AS statement.</span>
+</span><span id="L-3357"><a href="#L-3357"><span class="linenos">3357</span></a>
+</span><span id="L-3358"><a href="#L-3358"><span class="linenos">3358</span></a><span class="sd"> Example:</span>
+</span><span id="L-3359"><a href="#L-3359"><span class="linenos">3359</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;*&quot;).from_(&quot;tbl&quot;).ctas(&quot;x&quot;).sql()</span>
+</span><span id="L-3360"><a href="#L-3360"><span class="linenos">3360</span></a><span class="sd"> &#39;CREATE TABLE x AS SELECT * FROM tbl&#39;</span>
+</span><span id="L-3361"><a href="#L-3361"><span class="linenos">3361</span></a>
+</span><span id="L-3362"><a href="#L-3362"><span class="linenos">3362</span></a><span class="sd"> Args:</span>
+</span><span id="L-3363"><a href="#L-3363"><span class="linenos">3363</span></a><span class="sd"> table: the SQL code string to parse as the table name.</span>
+</span><span id="L-3364"><a href="#L-3364"><span class="linenos">3364</span></a><span class="sd"> If another `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-3365"><a href="#L-3365"><span class="linenos">3365</span></a><span class="sd"> properties: an optional mapping of table properties</span>
+</span><span id="L-3366"><a href="#L-3366"><span class="linenos">3366</span></a><span class="sd"> dialect: the dialect used to parse the input table.</span>
+</span><span id="L-3367"><a href="#L-3367"><span class="linenos">3367</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-3368"><a href="#L-3368"><span class="linenos">3368</span></a><span class="sd"> opts: other options to use to parse the input table.</span>
+</span><span id="L-3369"><a href="#L-3369"><span class="linenos">3369</span></a>
+</span><span id="L-3370"><a href="#L-3370"><span class="linenos">3370</span></a><span class="sd"> Returns:</span>
+</span><span id="L-3371"><a href="#L-3371"><span class="linenos">3371</span></a><span class="sd"> The new Create expression.</span>
+</span><span id="L-3372"><a href="#L-3372"><span class="linenos">3372</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-3373"><a href="#L-3373"><span class="linenos">3373</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-3374"><a href="#L-3374"><span class="linenos">3374</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-3375"><a href="#L-3375"><span class="linenos">3375</span></a> <span class="n">table</span><span class="p">,</span>
+</span><span id="L-3376"><a href="#L-3376"><span class="linenos">3376</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span>
+</span><span id="L-3377"><a href="#L-3377"><span class="linenos">3377</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-3378"><a href="#L-3378"><span class="linenos">3378</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-3379"><a href="#L-3379"><span class="linenos">3379</span></a> <span class="p">)</span>
+</span><span id="L-3380"><a href="#L-3380"><span class="linenos">3380</span></a> <span class="n">properties_expression</span> <span class="o">=</span> <span class="kc">None</span>
+</span><span id="L-3381"><a href="#L-3381"><span class="linenos">3381</span></a> <span class="k">if</span> <span class="n">properties</span><span class="p">:</span>
+</span><span id="L-3382"><a href="#L-3382"><span class="linenos">3382</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-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 class="k">return</span> <span class="n">Create</span><span class="p">(</span>
+</span><span id="L-3385"><a href="#L-3385"><span class="linenos">3385</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-3386"><a href="#L-3386"><span class="linenos">3386</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-3387"><a href="#L-3387"><span class="linenos">3387</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span>
+</span><span id="L-3388"><a href="#L-3388"><span class="linenos">3388</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-3389"><a href="#L-3389"><span class="linenos">3389</span></a> <span class="p">)</span>
+</span><span id="L-3390"><a href="#L-3390"><span class="linenos">3390</span></a>
+</span><span id="L-3391"><a href="#L-3391"><span class="linenos">3391</span></a> <span class="k">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-3392"><a href="#L-3392"><span class="linenos">3392</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-3393"><a href="#L-3393"><span class="linenos">3393</span></a><span class="sd"> Set the locking read mode for this expression.</span>
+</span><span id="L-3394"><a href="#L-3394"><span class="linenos">3394</span></a>
+</span><span id="L-3395"><a href="#L-3395"><span class="linenos">3395</span></a><span class="sd"> Examples:</span>
+</span><span id="L-3396"><a href="#L-3396"><span class="linenos">3396</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-3397"><a href="#L-3397"><span class="linenos">3397</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR UPDATE&quot;</span>
+</span><span id="L-3398"><a href="#L-3398"><span class="linenos">3398</span></a>
+</span><span id="L-3399"><a href="#L-3399"><span class="linenos">3399</span></a><span class="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-3400"><a href="#L-3400"><span class="linenos">3400</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR SHARE&quot;</span>
+</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="sd"> Args:</span>
+</span><span id="L-3403"><a href="#L-3403"><span class="linenos">3403</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-3404"><a href="#L-3404"><span class="linenos">3404</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-3405"><a href="#L-3405"><span class="linenos">3405</span></a>
+</span><span id="L-3406"><a href="#L-3406"><span class="linenos">3406</span></a><span class="sd"> Returns:</span>
+</span><span id="L-3407"><a href="#L-3407"><span class="linenos">3407</span></a><span class="sd"> The modified expression.</span>
+</span><span id="L-3408"><a href="#L-3408"><span class="linenos">3408</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-3409"><a href="#L-3409"><span class="linenos">3409</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-3410"><a href="#L-3410"><span class="linenos">3410</span></a> <span class="n">inst</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;locks&quot;</span><span class="p">,</span> <span class="p">[</span><span class="n">Lock</span><span class="p">(</span><span class="n">update</span><span class="o">=</span><span class="n">update</span><span class="p">)])</span>
</span><span id="L-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">return</span> <span class="n">inst</span>
</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="nd">@property</span>
-</span><span id="L-3415"><a href="#L-3415"><span class="linenos">3415</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-3416"><a href="#L-3416"><span class="linenos">3416</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-3414"><a href="#L-3414"><span class="linenos">3414</span></a> <span class="k">def</span> <span class="nf">hint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">hints</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-3415"><a href="#L-3415"><span class="linenos">3415</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-3416"><a href="#L-3416"><span class="linenos">3416</span></a><span class="sd"> Set hints for this expression.</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="nd">@property</span>
-</span><span id="L-3419"><a href="#L-3419"><span class="linenos">3419</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-3420"><a href="#L-3420"><span class="linenos">3420</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-3418"><a href="#L-3418"><span class="linenos">3418</span></a><span class="sd"> Examples:</span>
+</span><span id="L-3419"><a href="#L-3419"><span class="linenos">3419</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).hint(&quot;BROADCAST(y)&quot;).sql(dialect=&quot;spark&quot;)</span>
+</span><span id="L-3420"><a href="#L-3420"><span class="linenos">3420</span></a><span class="sd"> &#39;SELECT /*+ BROADCAST(y) */ x FROM tbl&#39;</span>
</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="nd">@property</span>
-</span><span id="L-3423"><a href="#L-3423"><span class="linenos">3423</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-3424"><a href="#L-3424"><span class="linenos">3424</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-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">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-3428"><a href="#L-3428"><span class="linenos">3428</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-3429"><a href="#L-3429"><span class="linenos">3429</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-3430"><a href="#L-3430"><span class="linenos">3430</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-3431"><a href="#L-3431"><span class="linenos">3431</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-3432"><a href="#L-3432"><span class="linenos">3432</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span>
-</span><span id="L-3433"><a href="#L-3433"><span class="linenos">3433</span></a> <span class="p">}</span>
-</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">def</span> <span class="nf">unnest</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-3436"><a href="#L-3436"><span class="linenos">3436</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-3437"><a href="#L-3437"><span class="linenos">3437</span></a><span class="sd"> Returns the first non subquery.</span>
-</span><span id="L-3438"><a href="#L-3438"><span class="linenos">3438</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-3439"><a href="#L-3439"><span class="linenos">3439</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
-</span><span id="L-3440"><a href="#L-3440"><span class="linenos">3440</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-3441"><a href="#L-3441"><span class="linenos">3441</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-3442"><a href="#L-3442"><span class="linenos">3442</span></a> <span class="k">return</span> <span class="n">expression</span>
-</span><span id="L-3443"><a href="#L-3443"><span class="linenos">3443</span></a>
-</span><span id="L-3444"><a href="#L-3444"><span class="linenos">3444</span></a> <span class="k">def</span> <span class="nf">unwrap</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Subquery</span><span class="p">:</span>
-</span><span id="L-3445"><a href="#L-3445"><span class="linenos">3445</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
-</span><span id="L-3446"><a href="#L-3446"><span class="linenos">3446</span></a> <span class="k">while</span> <span class="n">expression</span><span class="o">.</span><span class="n">same_parent</span> <span class="ow">and</span> <span class="n">expression</span><span class="o">.</span><span class="n">is_wrapper</span><span class="p">:</span>
-</span><span id="L-3447"><a href="#L-3447"><span class="linenos">3447</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Subquery</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">parent</span><span class="p">)</span>
-</span><span id="L-3448"><a href="#L-3448"><span class="linenos">3448</span></a> <span class="k">return</span> <span class="n">expression</span>
+</span><span id="L-3422"><a href="#L-3422"><span class="linenos">3422</span></a><span class="sd"> Args:</span>
+</span><span id="L-3423"><a href="#L-3423"><span class="linenos">3423</span></a><span class="sd"> hints: The SQL code strings to parse as the hints.</span>
+</span><span id="L-3424"><a href="#L-3424"><span class="linenos">3424</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-3425"><a href="#L-3425"><span class="linenos">3425</span></a><span class="sd"> dialect: The dialect used to parse the hints.</span>
+</span><span id="L-3426"><a href="#L-3426"><span class="linenos">3426</span></a><span class="sd"> copy: If `False`, modify this expression instance in-place.</span>
+</span><span id="L-3427"><a href="#L-3427"><span class="linenos">3427</span></a>
+</span><span id="L-3428"><a href="#L-3428"><span class="linenos">3428</span></a><span class="sd"> Returns:</span>
+</span><span id="L-3429"><a href="#L-3429"><span class="linenos">3429</span></a><span class="sd"> The modified expression.</span>
+</span><span id="L-3430"><a href="#L-3430"><span class="linenos">3430</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-3431"><a href="#L-3431"><span class="linenos">3431</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-3432"><a href="#L-3432"><span class="linenos">3432</span></a> <span class="n">inst</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
+</span><span id="L-3433"><a href="#L-3433"><span class="linenos">3433</span></a> <span class="s2">&quot;hint&quot;</span><span class="p">,</span> <span class="n">Hint</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">h</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span> <span class="k">for</span> <span class="n">h</span> <span class="ow">in</span> <span class="n">hints</span><span class="p">])</span>
+</span><span id="L-3434"><a href="#L-3434"><span class="linenos">3434</span></a> <span class="p">)</span>
+</span><span id="L-3435"><a href="#L-3435"><span class="linenos">3435</span></a>
+</span><span id="L-3436"><a href="#L-3436"><span class="linenos">3436</span></a> <span class="k">return</span> <span class="n">inst</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 class="nd">@property</span>
+</span><span id="L-3439"><a href="#L-3439"><span class="linenos">3439</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-3440"><a href="#L-3440"><span class="linenos">3440</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-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 class="nd">@property</span>
+</span><span id="L-3443"><a href="#L-3443"><span class="linenos">3443</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-3444"><a href="#L-3444"><span class="linenos">3444</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-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 class="nd">@property</span>
+</span><span id="L-3447"><a href="#L-3447"><span class="linenos">3447</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-3448"><a href="#L-3448"><span class="linenos">3448</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-3449"><a href="#L-3449"><span class="linenos">3449</span></a>
-</span><span id="L-3450"><a href="#L-3450"><span class="linenos">3450</span></a> <span class="nd">@property</span>
-</span><span id="L-3451"><a href="#L-3451"><span class="linenos">3451</span></a> <span class="k">def</span> <span class="nf">is_wrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="L-3452"><a href="#L-3452"><span class="linenos">3452</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-3453"><a href="#L-3453"><span class="linenos">3453</span></a><span class="sd"> Whether this Subquery acts as a simple wrapper around another expression.</span>
-</span><span id="L-3454"><a href="#L-3454"><span class="linenos">3454</span></a>
-</span><span id="L-3455"><a href="#L-3455"><span class="linenos">3455</span></a><span class="sd"> SELECT * FROM (((SELECT * FROM t)))</span>
-</span><span id="L-3456"><a href="#L-3456"><span class="linenos">3456</span></a><span class="sd"> ^</span>
-</span><span id="L-3457"><a href="#L-3457"><span class="linenos">3457</span></a><span class="sd"> This corresponds to a &quot;wrapper&quot; Subquery node</span>
-</span><span id="L-3458"><a href="#L-3458"><span class="linenos">3458</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-3459"><a href="#L-3459"><span class="linenos">3459</span></a> <span class="k">return</span> <span class="nb">all</span><span class="p">(</span><span class="n">v</span> <span class="ow">is</span> <span class="kc">None</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> <span class="k">if</span> <span class="n">k</span> <span class="o">!=</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
-</span><span id="L-3460"><a href="#L-3460"><span class="linenos">3460</span></a>
-</span><span id="L-3461"><a href="#L-3461"><span class="linenos">3461</span></a> <span class="nd">@property</span>
-</span><span id="L-3462"><a href="#L-3462"><span class="linenos">3462</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-3463"><a href="#L-3463"><span class="linenos">3463</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-3464"><a href="#L-3464"><span class="linenos">3464</span></a>
-</span><span id="L-3465"><a href="#L-3465"><span class="linenos">3465</span></a> <span class="nd">@property</span>
-</span><span id="L-3466"><a href="#L-3466"><span class="linenos">3466</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-3467"><a href="#L-3467"><span class="linenos">3467</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-3468"><a href="#L-3468"><span class="linenos">3468</span></a>
-</span><span id="L-3469"><a href="#L-3469"><span class="linenos">3469</span></a>
-</span><span id="L-3470"><a href="#L-3470"><span class="linenos">3470</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-3471"><a href="#L-3471"><span class="linenos">3471</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-3472"><a href="#L-3472"><span class="linenos">3472</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-3473"><a href="#L-3473"><span class="linenos">3473</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-3474"><a href="#L-3474"><span class="linenos">3474</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-3475"><a href="#L-3475"><span class="linenos">3475</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-3476"><a href="#L-3476"><span class="linenos">3476</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-3477"><a href="#L-3477"><span class="linenos">3477</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-3478"><a href="#L-3478"><span class="linenos">3478</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-3479"><a href="#L-3479"><span class="linenos">3479</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-3480"><a href="#L-3480"><span class="linenos">3480</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-3481"><a href="#L-3481"><span class="linenos">3481</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-3482"><a href="#L-3482"><span class="linenos">3482</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-3483"><a href="#L-3483"><span class="linenos">3483</span></a> <span class="p">}</span>
+</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">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-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><span id="L-3453"><a href="#L-3453"><span class="linenos">3453</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-3454"><a href="#L-3454"><span class="linenos">3454</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-3455"><a href="#L-3455"><span class="linenos">3455</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-3456"><a href="#L-3456"><span class="linenos">3456</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span>
+</span><span id="L-3457"><a href="#L-3457"><span class="linenos">3457</span></a> <span class="p">}</span>
+</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">def</span> <span class="nf">unnest</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="L-3460"><a href="#L-3460"><span class="linenos">3460</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-3461"><a href="#L-3461"><span class="linenos">3461</span></a><span class="sd"> Returns the first non subquery.</span>
+</span><span id="L-3462"><a href="#L-3462"><span class="linenos">3462</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-3463"><a href="#L-3463"><span class="linenos">3463</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
+</span><span id="L-3464"><a href="#L-3464"><span class="linenos">3464</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-3465"><a href="#L-3465"><span class="linenos">3465</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-3466"><a href="#L-3466"><span class="linenos">3466</span></a> <span class="k">return</span> <span class="n">expression</span>
+</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">def</span> <span class="nf">unwrap</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Subquery</span><span class="p">:</span>
+</span><span id="L-3469"><a href="#L-3469"><span class="linenos">3469</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
+</span><span id="L-3470"><a href="#L-3470"><span class="linenos">3470</span></a> <span class="k">while</span> <span class="n">expression</span><span class="o">.</span><span class="n">same_parent</span> <span class="ow">and</span> <span class="n">expression</span><span class="o">.</span><span class="n">is_wrapper</span><span class="p">:</span>
+</span><span id="L-3471"><a href="#L-3471"><span class="linenos">3471</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Subquery</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">parent</span><span class="p">)</span>
+</span><span id="L-3472"><a href="#L-3472"><span class="linenos">3472</span></a> <span class="k">return</span> <span class="n">expression</span>
+</span><span id="L-3473"><a href="#L-3473"><span class="linenos">3473</span></a>
+</span><span id="L-3474"><a href="#L-3474"><span class="linenos">3474</span></a> <span class="nd">@property</span>
+</span><span id="L-3475"><a href="#L-3475"><span class="linenos">3475</span></a> <span class="k">def</span> <span class="nf">is_wrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="L-3476"><a href="#L-3476"><span class="linenos">3476</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-3477"><a href="#L-3477"><span class="linenos">3477</span></a><span class="sd"> Whether this Subquery acts as a simple wrapper around another expression.</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 class="sd"> SELECT * FROM (((SELECT * FROM t)))</span>
+</span><span id="L-3480"><a href="#L-3480"><span class="linenos">3480</span></a><span class="sd"> ^</span>
+</span><span id="L-3481"><a href="#L-3481"><span class="linenos">3481</span></a><span class="sd"> This corresponds to a &quot;wrapper&quot; Subquery node</span>
+</span><span id="L-3482"><a href="#L-3482"><span class="linenos">3482</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-3483"><a href="#L-3483"><span class="linenos">3483</span></a> <span class="k">return</span> <span class="nb">all</span><span class="p">(</span><span class="n">v</span> <span class="ow">is</span> <span class="kc">None</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> <span class="k">if</span> <span class="n">k</span> <span class="o">!=</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
</span><span id="L-3484"><a href="#L-3484"><span class="linenos">3484</span></a>
-</span><span id="L-3485"><a href="#L-3485"><span class="linenos">3485</span></a>
-</span><span id="L-3486"><a href="#L-3486"><span class="linenos">3486</span></a><span class="k">class</span> <span class="nc">Tag</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-3487"><a href="#L-3487"><span class="linenos">3487</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-3485"><a href="#L-3485"><span class="linenos">3485</span></a> <span class="nd">@property</span>
+</span><span id="L-3486"><a href="#L-3486"><span class="linenos">3486</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-3487"><a href="#L-3487"><span class="linenos">3487</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-3488"><a href="#L-3488"><span class="linenos">3488</span></a>
-</span><span id="L-3489"><a href="#L-3489"><span class="linenos">3489</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-3490"><a href="#L-3490"><span class="linenos">3490</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-3491"><a href="#L-3491"><span class="linenos">3491</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-3492"><a href="#L-3492"><span class="linenos">3492</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-3493"><a href="#L-3493"><span class="linenos">3493</span></a> <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="c1"># Represents both the standard SQL PIVOT operator and DuckDB&#39;s &quot;simplified&quot; PIVOT syntax</span>
-</span><span id="L-3497"><a href="#L-3497"><span class="linenos">3497</span></a><span class="c1"># https://duckdb.org/docs/sql/statements/pivot</span>
-</span><span id="L-3498"><a href="#L-3498"><span class="linenos">3498</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-3499"><a href="#L-3499"><span class="linenos">3499</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-3500"><a href="#L-3500"><span class="linenos">3500</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-3501"><a href="#L-3501"><span class="linenos">3501</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-3502"><a href="#L-3502"><span class="linenos">3502</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-3503"><a href="#L-3503"><span class="linenos">3503</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-3504"><a href="#L-3504"><span class="linenos">3504</span></a> <span class="s2">&quot;unpivot&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-3505"><a href="#L-3505"><span class="linenos">3505</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-3506"><a href="#L-3506"><span class="linenos">3506</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-3507"><a href="#L-3507"><span class="linenos">3507</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-3508"><a href="#L-3508"><span class="linenos">3508</span></a> <span class="s2">&quot;include_nulls&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-3509"><a href="#L-3509"><span class="linenos">3509</span></a> <span class="p">}</span>
-</span><span id="L-3510"><a href="#L-3510"><span class="linenos">3510</span></a>
+</span><span id="L-3489"><a href="#L-3489"><span class="linenos">3489</span></a> <span class="nd">@property</span>
+</span><span id="L-3490"><a href="#L-3490"><span class="linenos">3490</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-3491"><a href="#L-3491"><span class="linenos">3491</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-3492"><a href="#L-3492"><span class="linenos">3492</span></a>
+</span><span id="L-3493"><a href="#L-3493"><span class="linenos">3493</span></a>
+</span><span id="L-3494"><a href="#L-3494"><span class="linenos">3494</span></a><span class="k">class</span> <span class="nc">TableSample</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-3495"><a href="#L-3495"><span class="linenos">3495</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-3496"><a href="#L-3496"><span class="linenos">3496</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-3497"><a href="#L-3497"><span class="linenos">3497</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-3498"><a href="#L-3498"><span class="linenos">3498</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-3499"><a href="#L-3499"><span class="linenos">3499</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-3500"><a href="#L-3500"><span class="linenos">3500</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-3501"><a href="#L-3501"><span class="linenos">3501</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-3502"><a href="#L-3502"><span class="linenos">3502</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-3503"><a href="#L-3503"><span class="linenos">3503</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-3504"><a href="#L-3504"><span class="linenos">3504</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-3505"><a href="#L-3505"><span class="linenos">3505</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-3506"><a href="#L-3506"><span class="linenos">3506</span></a> <span class="p">}</span>
+</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><span id="L-3509"><a href="#L-3509"><span class="linenos">3509</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-3510"><a href="#L-3510"><span class="linenos">3510</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-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">Window</span><span class="p">(</span><span class="n">Condition</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><span id="L-3514"><a href="#L-3514"><span class="linenos">3514</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-3515"><a href="#L-3515"><span class="linenos">3515</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-3516"><a href="#L-3516"><span class="linenos">3516</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-3517"><a href="#L-3517"><span class="linenos">3517</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-3518"><a href="#L-3518"><span class="linenos">3518</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-3519"><a href="#L-3519"><span class="linenos">3519</span></a> <span class="s2">&quot;over&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-3520"><a href="#L-3520"><span class="linenos">3520</span></a> <span class="s2">&quot;first&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-3521"><a href="#L-3521"><span class="linenos">3521</span></a> <span class="p">}</span>
-</span><span id="L-3522"><a href="#L-3522"><span class="linenos">3522</span></a>
-</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">WindowSpec</span><span class="p">(</span><span class="n">Expression</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><span id="L-3526"><a href="#L-3526"><span class="linenos">3526</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-3527"><a href="#L-3527"><span class="linenos">3527</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-3528"><a href="#L-3528"><span class="linenos">3528</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-3529"><a href="#L-3529"><span class="linenos">3529</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-3530"><a href="#L-3530"><span class="linenos">3530</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-3531"><a href="#L-3531"><span class="linenos">3531</span></a> <span class="p">}</span>
-</span><span id="L-3532"><a href="#L-3532"><span class="linenos">3532</span></a>
+</span><span id="L-3512"><a href="#L-3512"><span class="linenos">3512</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-3513"><a href="#L-3513"><span class="linenos">3513</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-3514"><a href="#L-3514"><span class="linenos">3514</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-3515"><a href="#L-3515"><span class="linenos">3515</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-3516"><a href="#L-3516"><span class="linenos">3516</span></a> <span class="p">}</span>
+</span><span id="L-3517"><a href="#L-3517"><span class="linenos">3517</span></a>
+</span><span id="L-3518"><a href="#L-3518"><span class="linenos">3518</span></a>
+</span><span id="L-3519"><a href="#L-3519"><span class="linenos">3519</span></a><span class="c1"># Represents both the standard SQL PIVOT operator and DuckDB&#39;s &quot;simplified&quot; PIVOT syntax</span>
+</span><span id="L-3520"><a href="#L-3520"><span class="linenos">3520</span></a><span class="c1"># https://duckdb.org/docs/sql/statements/pivot</span>
+</span><span id="L-3521"><a href="#L-3521"><span class="linenos">3521</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-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><span id="L-3523"><a href="#L-3523"><span class="linenos">3523</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-3524"><a href="#L-3524"><span class="linenos">3524</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-3525"><a href="#L-3525"><span class="linenos">3525</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-3526"><a href="#L-3526"><span class="linenos">3526</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-3527"><a href="#L-3527"><span class="linenos">3527</span></a> <span class="s2">&quot;unpivot&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3528"><a href="#L-3528"><span class="linenos">3528</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-3529"><a href="#L-3529"><span class="linenos">3529</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-3530"><a href="#L-3530"><span class="linenos">3530</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-3531"><a href="#L-3531"><span class="linenos">3531</span></a> <span class="s2">&quot;include_nulls&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3532"><a href="#L-3532"><span class="linenos">3532</span></a> <span class="p">}</span>
</span><span id="L-3533"><a href="#L-3533"><span class="linenos">3533</span></a>
-</span><span id="L-3534"><a href="#L-3534"><span class="linenos">3534</span></a><span class="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-3535"><a href="#L-3535"><span class="linenos">3535</span></a> <span class="k">pass</span>
-</span><span id="L-3536"><a href="#L-3536"><span class="linenos">3536</span></a>
+</span><span id="L-3534"><a href="#L-3534"><span class="linenos">3534</span></a> <span class="nd">@property</span>
+</span><span id="L-3535"><a href="#L-3535"><span class="linenos">3535</span></a> <span class="k">def</span> <span class="nf">unpivot</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="L-3536"><a href="#L-3536"><span class="linenos">3536</span></a> <span class="k">return</span> <span class="nb">bool</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;unpivot&quot;</span><span class="p">))</span>
</span><span id="L-3537"><a href="#L-3537"><span class="linenos">3537</span></a>
-</span><span id="L-3538"><a href="#L-3538"><span class="linenos">3538</span></a><span 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-3539"><a href="#L-3539"><span class="linenos">3539</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-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="nd">@property</span>
-</span><span id="L-3542"><a href="#L-3542"><span class="linenos">3542</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-3543"><a href="#L-3543"><span class="linenos">3543</span></a> <span class="k">return</span> <span class="s2">&quot;*&quot;</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="nd">@property</span>
-</span><span id="L-3546"><a href="#L-3546"><span class="linenos">3546</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-3547"><a href="#L-3547"><span class="linenos">3547</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-3548"><a href="#L-3548"><span class="linenos">3548</span></a>
+</span><span id="L-3538"><a href="#L-3538"><span class="linenos">3538</span></a>
+</span><span id="L-3539"><a href="#L-3539"><span class="linenos">3539</span></a><span class="k">class</span> <span class="nc">Window</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
+</span><span id="L-3540"><a href="#L-3540"><span class="linenos">3540</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-3541"><a href="#L-3541"><span class="linenos">3541</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-3542"><a href="#L-3542"><span class="linenos">3542</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-3543"><a href="#L-3543"><span class="linenos">3543</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-3544"><a href="#L-3544"><span class="linenos">3544</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-3545"><a href="#L-3545"><span class="linenos">3545</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-3546"><a href="#L-3546"><span class="linenos">3546</span></a> <span class="s2">&quot;over&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3547"><a href="#L-3547"><span class="linenos">3547</span></a> <span class="s2">&quot;first&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3548"><a href="#L-3548"><span class="linenos">3548</span></a> <span class="p">}</span>
</span><span id="L-3549"><a href="#L-3549"><span class="linenos">3549</span></a>
-</span><span id="L-3550"><a href="#L-3550"><span class="linenos">3550</span></a><span class="k">class</span> <span class="nc">Parameter</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
-</span><span id="L-3551"><a href="#L-3551"><span class="linenos">3551</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-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><span id="L-3554"><a href="#L-3554"><span class="linenos">3554</span></a><span class="k">class</span> <span class="nc">SessionParameter</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
-</span><span id="L-3555"><a href="#L-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;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</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><span id="L-3558"><a href="#L-3558"><span class="linenos">3558</span></a><span class="k">class</span> <span class="nc">Placeholder</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
-</span><span id="L-3559"><a href="#L-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">False</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3550"><a href="#L-3550"><span class="linenos">3550</span></a>
+</span><span id="L-3551"><a href="#L-3551"><span class="linenos">3551</span></a><span class="k">class</span> <span class="nc">WindowSpec</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-3552"><a href="#L-3552"><span class="linenos">3552</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-3553"><a href="#L-3553"><span class="linenos">3553</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-3554"><a href="#L-3554"><span class="linenos">3554</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-3555"><a href="#L-3555"><span class="linenos">3555</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-3556"><a href="#L-3556"><span class="linenos">3556</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-3557"><a href="#L-3557"><span class="linenos">3557</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-3558"><a href="#L-3558"><span class="linenos">3558</span></a> <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><span id="L-3562"><a href="#L-3562"><span class="linenos">3562</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-3563"><a href="#L-3563"><span class="linenos">3563</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-3561"><a href="#L-3561"><span class="linenos">3561</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-3562"><a href="#L-3562"><span class="linenos">3562</span></a> <span class="k">pass</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="nd">@property</span>
-</span><span id="L-3566"><a href="#L-3566"><span class="linenos">3566</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-3567"><a href="#L-3567"><span class="linenos">3567</span></a> <span class="k">return</span> <span class="s2">&quot;NULL&quot;</span>
-</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><span id="L-3570"><a href="#L-3570"><span class="linenos">3570</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-3571"><a href="#L-3571"><span class="linenos">3571</span></a> <span class="k">pass</span>
-</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><span id="L-3574"><a href="#L-3574"><span class="linenos">3574</span></a><span class="k">class</span> <span class="nc">DataTypeParam</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-3575"><a href="#L-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">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">Star</span><span class="p">(</span><span class="n">Expression</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;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-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 class="nd">@property</span>
+</span><span id="L-3569"><a href="#L-3569"><span class="linenos">3569</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-3570"><a href="#L-3570"><span class="linenos">3570</span></a> <span class="k">return</span> <span class="s2">&quot;*&quot;</span>
+</span><span id="L-3571"><a href="#L-3571"><span class="linenos">3571</span></a>
+</span><span id="L-3572"><a href="#L-3572"><span class="linenos">3572</span></a> <span class="nd">@property</span>
+</span><span id="L-3573"><a href="#L-3573"><span class="linenos">3573</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-3574"><a href="#L-3574"><span class="linenos">3574</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-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><span id="L-3578"><a href="#L-3578"><span class="linenos">3578</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-3579"><a href="#L-3579"><span class="linenos">3579</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-3580"><a href="#L-3580"><span class="linenos">3580</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-3581"><a href="#L-3581"><span class="linenos">3581</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-3582"><a href="#L-3582"><span class="linenos">3582</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-3583"><a href="#L-3583"><span class="linenos">3583</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-3584"><a href="#L-3584"><span class="linenos">3584</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-3585"><a href="#L-3585"><span class="linenos">3585</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-3586"><a href="#L-3586"><span class="linenos">3586</span></a> <span class="p">}</span>
+</span><span id="L-3577"><a href="#L-3577"><span class="linenos">3577</span></a><span class="k">class</span> <span class="nc">Parameter</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
+</span><span id="L-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">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">SessionParameter</span><span class="p">(</span><span class="n">Condition</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;kind&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">Placeholder</span><span class="p">(</span><span class="n">Condition</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">False</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-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 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-3589"><a href="#L-3589"><span class="linenos">3589</span></a> <span class="n">ARRAY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3590"><a href="#L-3590"><span class="linenos">3590</span></a> <span class="n">BIGDECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3591"><a href="#L-3591"><span class="linenos">3591</span></a> <span class="n">BIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3592"><a href="#L-3592"><span class="linenos">3592</span></a> <span class="n">BIGSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3593"><a href="#L-3593"><span class="linenos">3593</span></a> <span class="n">BINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3594"><a href="#L-3594"><span class="linenos">3594</span></a> <span class="n">BIT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3595"><a href="#L-3595"><span class="linenos">3595</span></a> <span class="n">BOOLEAN</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3596"><a href="#L-3596"><span class="linenos">3596</span></a> <span class="n">CHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3597"><a href="#L-3597"><span class="linenos">3597</span></a> <span class="n">DATE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3598"><a href="#L-3598"><span class="linenos">3598</span></a> <span class="n">DATEMULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3599"><a href="#L-3599"><span class="linenos">3599</span></a> <span class="n">DATERANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3600"><a href="#L-3600"><span class="linenos">3600</span></a> <span class="n">DATETIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3601"><a href="#L-3601"><span class="linenos">3601</span></a> <span class="n">DATETIME64</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3602"><a href="#L-3602"><span class="linenos">3602</span></a> <span class="n">DECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3603"><a href="#L-3603"><span class="linenos">3603</span></a> <span class="n">DOUBLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3604"><a href="#L-3604"><span class="linenos">3604</span></a> <span class="n">ENUM</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3605"><a href="#L-3605"><span class="linenos">3605</span></a> <span class="n">ENUM8</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3606"><a href="#L-3606"><span class="linenos">3606</span></a> <span class="n">ENUM16</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3607"><a href="#L-3607"><span class="linenos">3607</span></a> <span class="n">FIXEDSTRING</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3608"><a href="#L-3608"><span class="linenos">3608</span></a> <span class="n">FLOAT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3609"><a href="#L-3609"><span class="linenos">3609</span></a> <span class="n">GEOGRAPHY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3610"><a href="#L-3610"><span class="linenos">3610</span></a> <span class="n">GEOMETRY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3611"><a href="#L-3611"><span class="linenos">3611</span></a> <span class="n">HLLSKETCH</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3612"><a href="#L-3612"><span class="linenos">3612</span></a> <span class="n">HSTORE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3613"><a href="#L-3613"><span class="linenos">3613</span></a> <span class="n">IMAGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3614"><a href="#L-3614"><span class="linenos">3614</span></a> <span class="n">INET</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3615"><a href="#L-3615"><span class="linenos">3615</span></a> <span class="n">INT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3616"><a href="#L-3616"><span class="linenos">3616</span></a> <span class="n">INT128</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3617"><a href="#L-3617"><span class="linenos">3617</span></a> <span class="n">INT256</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3618"><a href="#L-3618"><span class="linenos">3618</span></a> <span class="n">INT4MULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3619"><a href="#L-3619"><span class="linenos">3619</span></a> <span class="n">INT4RANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3620"><a href="#L-3620"><span class="linenos">3620</span></a> <span class="n">INT8MULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3621"><a href="#L-3621"><span class="linenos">3621</span></a> <span class="n">INT8RANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3622"><a href="#L-3622"><span class="linenos">3622</span></a> <span class="n">INTERVAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3623"><a href="#L-3623"><span class="linenos">3623</span></a> <span class="n">IPADDRESS</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3624"><a href="#L-3624"><span class="linenos">3624</span></a> <span class="n">IPPREFIX</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3625"><a href="#L-3625"><span class="linenos">3625</span></a> <span class="n">JSON</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3626"><a href="#L-3626"><span class="linenos">3626</span></a> <span class="n">JSONB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3627"><a href="#L-3627"><span class="linenos">3627</span></a> <span class="n">LONGBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3628"><a href="#L-3628"><span class="linenos">3628</span></a> <span class="n">LONGTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3629"><a href="#L-3629"><span class="linenos">3629</span></a> <span class="n">LOWCARDINALITY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3630"><a href="#L-3630"><span class="linenos">3630</span></a> <span class="n">MAP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3631"><a href="#L-3631"><span class="linenos">3631</span></a> <span class="n">MEDIUMBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3632"><a href="#L-3632"><span class="linenos">3632</span></a> <span class="n">MEDIUMINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3633"><a href="#L-3633"><span class="linenos">3633</span></a> <span class="n">MEDIUMTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3634"><a href="#L-3634"><span class="linenos">3634</span></a> <span class="n">MONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3635"><a href="#L-3635"><span class="linenos">3635</span></a> <span class="n">NCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3636"><a href="#L-3636"><span class="linenos">3636</span></a> <span class="n">NESTED</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3637"><a href="#L-3637"><span class="linenos">3637</span></a> <span class="n">NULL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3638"><a href="#L-3638"><span class="linenos">3638</span></a> <span class="n">NULLABLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3639"><a href="#L-3639"><span class="linenos">3639</span></a> <span class="n">NUMMULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3640"><a href="#L-3640"><span class="linenos">3640</span></a> <span class="n">NUMRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3641"><a href="#L-3641"><span class="linenos">3641</span></a> <span class="n">NVARCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3642"><a href="#L-3642"><span class="linenos">3642</span></a> <span class="n">OBJECT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3643"><a href="#L-3643"><span class="linenos">3643</span></a> <span class="n">ROWVERSION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3644"><a href="#L-3644"><span class="linenos">3644</span></a> <span class="n">SERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3645"><a href="#L-3645"><span class="linenos">3645</span></a> <span class="n">SET</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3646"><a href="#L-3646"><span class="linenos">3646</span></a> <span class="n">SMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3647"><a href="#L-3647"><span class="linenos">3647</span></a> <span class="n">SMALLMONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3648"><a href="#L-3648"><span class="linenos">3648</span></a> <span class="n">SMALLSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3649"><a href="#L-3649"><span class="linenos">3649</span></a> <span class="n">STRUCT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3650"><a href="#L-3650"><span class="linenos">3650</span></a> <span class="n">SUPER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3651"><a href="#L-3651"><span class="linenos">3651</span></a> <span class="n">TEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3652"><a href="#L-3652"><span class="linenos">3652</span></a> <span class="n">TINYBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3653"><a href="#L-3653"><span class="linenos">3653</span></a> <span class="n">TINYTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3654"><a href="#L-3654"><span class="linenos">3654</span></a> <span class="n">TIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3655"><a href="#L-3655"><span class="linenos">3655</span></a> <span class="n">TIMETZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3656"><a href="#L-3656"><span class="linenos">3656</span></a> <span class="n">TIMESTAMP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3657"><a href="#L-3657"><span class="linenos">3657</span></a> <span class="n">TIMESTAMPLTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3658"><a href="#L-3658"><span class="linenos">3658</span></a> <span class="n">TIMESTAMPTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3659"><a href="#L-3659"><span class="linenos">3659</span></a> <span class="n">TIMESTAMP_S</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3660"><a href="#L-3660"><span class="linenos">3660</span></a> <span class="n">TIMESTAMP_MS</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3661"><a href="#L-3661"><span class="linenos">3661</span></a> <span class="n">TIMESTAMP_NS</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3662"><a href="#L-3662"><span class="linenos">3662</span></a> <span class="n">TINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3663"><a href="#L-3663"><span class="linenos">3663</span></a> <span class="n">TSMULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3664"><a href="#L-3664"><span class="linenos">3664</span></a> <span class="n">TSRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3665"><a href="#L-3665"><span class="linenos">3665</span></a> <span class="n">TSTZMULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3666"><a href="#L-3666"><span class="linenos">3666</span></a> <span class="n">TSTZRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3667"><a href="#L-3667"><span class="linenos">3667</span></a> <span class="n">UBIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3668"><a href="#L-3668"><span class="linenos">3668</span></a> <span class="n">UINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3669"><a href="#L-3669"><span class="linenos">3669</span></a> <span class="n">UINT128</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3670"><a href="#L-3670"><span class="linenos">3670</span></a> <span class="n">UINT256</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3671"><a href="#L-3671"><span class="linenos">3671</span></a> <span class="n">UMEDIUMINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3672"><a href="#L-3672"><span class="linenos">3672</span></a> <span class="n">UDECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3673"><a href="#L-3673"><span class="linenos">3673</span></a> <span class="n">UNIQUEIDENTIFIER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3674"><a href="#L-3674"><span class="linenos">3674</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-3675"><a href="#L-3675"><span class="linenos">3675</span></a> <span class="n">USERDEFINED</span> <span class="o">=</span> <span class="s2">&quot;USER-DEFINED&quot;</span>
-</span><span id="L-3676"><a href="#L-3676"><span class="linenos">3676</span></a> <span class="n">USMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3677"><a href="#L-3677"><span class="linenos">3677</span></a> <span class="n">UTINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3678"><a href="#L-3678"><span class="linenos">3678</span></a> <span class="n">UUID</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3679"><a href="#L-3679"><span class="linenos">3679</span></a> <span class="n">VARBINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3680"><a href="#L-3680"><span class="linenos">3680</span></a> <span class="n">VARCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3681"><a href="#L-3681"><span class="linenos">3681</span></a> <span class="n">VARIANT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3682"><a href="#L-3682"><span class="linenos">3682</span></a> <span class="n">XML</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3683"><a href="#L-3683"><span class="linenos">3683</span></a> <span class="n">YEAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3684"><a href="#L-3684"><span class="linenos">3684</span></a>
-</span><span id="L-3685"><a href="#L-3685"><span class="linenos">3685</span></a> <span class="n">TEXT_TYPES</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-3686"><a href="#L-3686"><span class="linenos">3686</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">CHAR</span><span class="p">,</span>
-</span><span id="L-3687"><a href="#L-3687"><span class="linenos">3687</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NCHAR</span><span class="p">,</span>
-</span><span id="L-3688"><a href="#L-3688"><span class="linenos">3688</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">VARCHAR</span><span class="p">,</span>
-</span><span id="L-3689"><a href="#L-3689"><span class="linenos">3689</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NVARCHAR</span><span class="p">,</span>
-</span><span id="L-3690"><a href="#L-3690"><span class="linenos">3690</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span>
-</span><span id="L-3691"><a href="#L-3691"><span class="linenos">3691</span></a> <span class="p">}</span>
-</span><span id="L-3692"><a href="#L-3692"><span class="linenos">3692</span></a>
-</span><span id="L-3693"><a href="#L-3693"><span class="linenos">3693</span></a> <span class="n">INTEGER_TYPES</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-3694"><a href="#L-3694"><span class="linenos">3694</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">INT</span><span class="p">,</span>
-</span><span id="L-3695"><a href="#L-3695"><span class="linenos">3695</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TINYINT</span><span class="p">,</span>
-</span><span id="L-3696"><a href="#L-3696"><span class="linenos">3696</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">SMALLINT</span><span class="p">,</span>
-</span><span id="L-3697"><a href="#L-3697"><span class="linenos">3697</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">BIGINT</span><span class="p">,</span>
-</span><span id="L-3698"><a href="#L-3698"><span class="linenos">3698</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">INT128</span><span class="p">,</span>
-</span><span id="L-3699"><a href="#L-3699"><span class="linenos">3699</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">INT256</span><span class="p">,</span>
-</span><span id="L-3700"><a href="#L-3700"><span class="linenos">3700</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">BIT</span><span class="p">,</span>
-</span><span id="L-3701"><a href="#L-3701"><span class="linenos">3701</span></a> <span class="p">}</span>
-</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="n">FLOAT_TYPES</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-3704"><a href="#L-3704"><span class="linenos">3704</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">FLOAT</span><span class="p">,</span>
-</span><span id="L-3705"><a href="#L-3705"><span class="linenos">3705</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DOUBLE</span><span class="p">,</span>
-</span><span id="L-3706"><a href="#L-3706"><span class="linenos">3706</span></a> <span class="p">}</span>
-</span><span id="L-3707"><a href="#L-3707"><span class="linenos">3707</span></a>
-</span><span id="L-3708"><a href="#L-3708"><span class="linenos">3708</span></a> <span class="n">NUMERIC_TYPES</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-3709"><a href="#L-3709"><span class="linenos">3709</span></a> <span class="o">*</span><span class="n">INTEGER_TYPES</span><span class="p">,</span>
-</span><span id="L-3710"><a href="#L-3710"><span class="linenos">3710</span></a> <span class="o">*</span><span class="n">FLOAT_TYPES</span><span class="p">,</span>
-</span><span id="L-3711"><a href="#L-3711"><span class="linenos">3711</span></a> <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 class="n">TEMPORAL_TYPES</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-3714"><a href="#L-3714"><span class="linenos">3714</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIME</span><span class="p">,</span>
-</span><span id="L-3715"><a href="#L-3715"><span class="linenos">3715</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMETZ</span><span class="p">,</span>
-</span><span id="L-3716"><a href="#L-3716"><span class="linenos">3716</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span>
-</span><span id="L-3717"><a href="#L-3717"><span class="linenos">3717</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span>
-</span><span id="L-3718"><a href="#L-3718"><span class="linenos">3718</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPLTZ</span><span class="p">,</span>
-</span><span id="L-3719"><a href="#L-3719"><span class="linenos">3719</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP_S</span><span class="p">,</span>
-</span><span id="L-3720"><a href="#L-3720"><span class="linenos">3720</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP_MS</span><span class="p">,</span>
-</span><span id="L-3721"><a href="#L-3721"><span class="linenos">3721</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP_NS</span><span class="p">,</span>
-</span><span id="L-3722"><a href="#L-3722"><span class="linenos">3722</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATE</span><span class="p">,</span>
-</span><span id="L-3723"><a href="#L-3723"><span class="linenos">3723</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">,</span>
-</span><span id="L-3724"><a href="#L-3724"><span class="linenos">3724</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATETIME64</span><span class="p">,</span>
-</span><span id="L-3725"><a href="#L-3725"><span class="linenos">3725</span></a> <span class="p">}</span>
-</span><span id="L-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 class="nd">@classmethod</span>
-</span><span id="L-3728"><a href="#L-3728"><span class="linenos">3728</span></a> <span class="k">def</span> <span class="nf">build</span><span class="p">(</span>
-</span><span id="L-3729"><a href="#L-3729"><span class="linenos">3729</span></a> <span class="bp">cls</span><span class="p">,</span>
-</span><span id="L-3730"><a href="#L-3730"><span class="linenos">3730</span></a> <span class="n">dtype</span><span class="p">:</span> <span class="n">DATA_TYPE</span><span class="p">,</span>
-</span><span id="L-3731"><a href="#L-3731"><span class="linenos">3731</span></a> <span class="n">dialect</span><span 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-3732"><a href="#L-3732"><span class="linenos">3732</span></a> <span class="n">udt</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-3733"><a href="#L-3733"><span class="linenos">3733</span></a> <span class="o">**</span><span class="n">kwargs</span><span class="p">,</span>
-</span><span id="L-3734"><a href="#L-3734"><span class="linenos">3734</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DataType</span><span class="p">:</span>
-</span><span id="L-3735"><a href="#L-3735"><span class="linenos">3735</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-3736"><a href="#L-3736"><span class="linenos">3736</span></a><span class="sd"> Constructs a DataType object.</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="sd"> Args:</span>
-</span><span id="L-3739"><a href="#L-3739"><span class="linenos">3739</span></a><span class="sd"> dtype: the data type of interest.</span>
-</span><span id="L-3740"><a href="#L-3740"><span class="linenos">3740</span></a><span class="sd"> dialect: the dialect to use for parsing `dtype`, in case it&#39;s a string.</span>
-</span><span id="L-3741"><a href="#L-3741"><span class="linenos">3741</span></a><span class="sd"> udt: when set to True, `dtype` will be used as-is if it can&#39;t be parsed into a</span>
-</span><span id="L-3742"><a href="#L-3742"><span class="linenos">3742</span></a><span class="sd"> DataType, thus creating a user-defined type.</span>
-</span><span id="L-3743"><a href="#L-3743"><span class="linenos">3743</span></a><span class="sd"> kawrgs: additional arguments to pass in the constructor of DataType.</span>
-</span><span id="L-3744"><a href="#L-3744"><span class="linenos">3744</span></a>
-</span><span id="L-3745"><a href="#L-3745"><span class="linenos">3745</span></a><span class="sd"> Returns:</span>
-</span><span id="L-3746"><a href="#L-3746"><span class="linenos">3746</span></a><span class="sd"> The constructed DataType object.</span>
-</span><span id="L-3747"><a href="#L-3747"><span class="linenos">3747</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-3748"><a href="#L-3748"><span class="linenos">3748</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-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">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-3751"><a href="#L-3751"><span class="linenos">3751</span></a> <span class="k">if</span> <span class="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">&quot;UNKNOWN&quot;</span><span class="p">:</span>
-</span><span id="L-3752"><a href="#L-3752"><span class="linenos">3752</span></a> <span class="k">return</span> <span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">UNKNOWN</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+</span><span id="L-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">Null</span><span class="p">(</span><span class="n">Condition</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="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-3591"><a href="#L-3591"><span class="linenos">3591</span></a>
+</span><span id="L-3592"><a href="#L-3592"><span class="linenos">3592</span></a> <span class="nd">@property</span>
+</span><span id="L-3593"><a href="#L-3593"><span class="linenos">3593</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-3594"><a href="#L-3594"><span class="linenos">3594</span></a> <span class="k">return</span> <span class="s2">&quot;NULL&quot;</span>
+</span><span id="L-3595"><a href="#L-3595"><span class="linenos">3595</span></a>
+</span><span id="L-3596"><a href="#L-3596"><span class="linenos">3596</span></a>
+</span><span id="L-3597"><a href="#L-3597"><span class="linenos">3597</span></a><span class="k">class</span> <span class="nc">Boolean</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
+</span><span id="L-3598"><a href="#L-3598"><span class="linenos">3598</span></a> <span class="k">pass</span>
+</span><span id="L-3599"><a href="#L-3599"><span class="linenos">3599</span></a>
+</span><span id="L-3600"><a href="#L-3600"><span class="linenos">3600</span></a>
+</span><span id="L-3601"><a href="#L-3601"><span class="linenos">3601</span></a><span class="k">class</span> <span class="nc">DataTypeParam</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-3602"><a href="#L-3602"><span class="linenos">3602</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3603"><a href="#L-3603"><span class="linenos">3603</span></a>
+</span><span id="L-3604"><a href="#L-3604"><span class="linenos">3604</span></a>
+</span><span id="L-3605"><a href="#L-3605"><span class="linenos">3605</span></a><span class="k">class</span> <span class="nc">DataType</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-3606"><a href="#L-3606"><span class="linenos">3606</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-3607"><a href="#L-3607"><span class="linenos">3607</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-3608"><a href="#L-3608"><span class="linenos">3608</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-3609"><a href="#L-3609"><span class="linenos">3609</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-3610"><a href="#L-3610"><span class="linenos">3610</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-3611"><a href="#L-3611"><span class="linenos">3611</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-3612"><a href="#L-3612"><span class="linenos">3612</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-3613"><a href="#L-3613"><span class="linenos">3613</span></a> <span class="p">}</span>
+</span><span id="L-3614"><a href="#L-3614"><span class="linenos">3614</span></a>
+</span><span id="L-3615"><a href="#L-3615"><span class="linenos">3615</span></a> <span class="k">class</span> <span class="nc">Type</span><span class="p">(</span><span class="n">AutoName</span><span class="p">):</span>
+</span><span id="L-3616"><a href="#L-3616"><span class="linenos">3616</span></a> <span class="n">ARRAY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3617"><a href="#L-3617"><span class="linenos">3617</span></a> <span class="n">BIGDECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3618"><a href="#L-3618"><span class="linenos">3618</span></a> <span class="n">BIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3619"><a href="#L-3619"><span class="linenos">3619</span></a> <span class="n">BIGSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3620"><a href="#L-3620"><span class="linenos">3620</span></a> <span class="n">BINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3621"><a href="#L-3621"><span class="linenos">3621</span></a> <span class="n">BIT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3622"><a href="#L-3622"><span class="linenos">3622</span></a> <span class="n">BOOLEAN</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3623"><a href="#L-3623"><span class="linenos">3623</span></a> <span class="n">CHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3624"><a href="#L-3624"><span class="linenos">3624</span></a> <span class="n">DATE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3625"><a href="#L-3625"><span class="linenos">3625</span></a> <span class="n">DATEMULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3626"><a href="#L-3626"><span class="linenos">3626</span></a> <span class="n">DATERANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3627"><a href="#L-3627"><span class="linenos">3627</span></a> <span class="n">DATETIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3628"><a href="#L-3628"><span class="linenos">3628</span></a> <span class="n">DATETIME64</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3629"><a href="#L-3629"><span class="linenos">3629</span></a> <span class="n">DECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3630"><a href="#L-3630"><span class="linenos">3630</span></a> <span class="n">DOUBLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3631"><a href="#L-3631"><span class="linenos">3631</span></a> <span class="n">ENUM</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3632"><a href="#L-3632"><span class="linenos">3632</span></a> <span class="n">ENUM8</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3633"><a href="#L-3633"><span class="linenos">3633</span></a> <span class="n">ENUM16</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3634"><a href="#L-3634"><span class="linenos">3634</span></a> <span class="n">FIXEDSTRING</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3635"><a href="#L-3635"><span class="linenos">3635</span></a> <span class="n">FLOAT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3636"><a href="#L-3636"><span class="linenos">3636</span></a> <span class="n">GEOGRAPHY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3637"><a href="#L-3637"><span class="linenos">3637</span></a> <span class="n">GEOMETRY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3638"><a href="#L-3638"><span class="linenos">3638</span></a> <span class="n">HLLSKETCH</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3639"><a href="#L-3639"><span class="linenos">3639</span></a> <span class="n">HSTORE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3640"><a href="#L-3640"><span class="linenos">3640</span></a> <span class="n">IMAGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3641"><a href="#L-3641"><span class="linenos">3641</span></a> <span class="n">INET</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3642"><a href="#L-3642"><span class="linenos">3642</span></a> <span class="n">INT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3643"><a href="#L-3643"><span class="linenos">3643</span></a> <span class="n">INT128</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3644"><a href="#L-3644"><span class="linenos">3644</span></a> <span class="n">INT256</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3645"><a href="#L-3645"><span class="linenos">3645</span></a> <span class="n">INT4MULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3646"><a href="#L-3646"><span class="linenos">3646</span></a> <span class="n">INT4RANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3647"><a href="#L-3647"><span class="linenos">3647</span></a> <span class="n">INT8MULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3648"><a href="#L-3648"><span class="linenos">3648</span></a> <span class="n">INT8RANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3649"><a href="#L-3649"><span class="linenos">3649</span></a> <span class="n">INTERVAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3650"><a href="#L-3650"><span class="linenos">3650</span></a> <span class="n">IPADDRESS</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3651"><a href="#L-3651"><span class="linenos">3651</span></a> <span class="n">IPPREFIX</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3652"><a href="#L-3652"><span class="linenos">3652</span></a> <span class="n">JSON</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3653"><a href="#L-3653"><span class="linenos">3653</span></a> <span class="n">JSONB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3654"><a href="#L-3654"><span class="linenos">3654</span></a> <span class="n">LONGBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3655"><a href="#L-3655"><span class="linenos">3655</span></a> <span class="n">LONGTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3656"><a href="#L-3656"><span class="linenos">3656</span></a> <span class="n">LOWCARDINALITY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3657"><a href="#L-3657"><span class="linenos">3657</span></a> <span class="n">MAP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3658"><a href="#L-3658"><span class="linenos">3658</span></a> <span class="n">MEDIUMBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3659"><a href="#L-3659"><span class="linenos">3659</span></a> <span class="n">MEDIUMINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3660"><a href="#L-3660"><span class="linenos">3660</span></a> <span class="n">MEDIUMTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3661"><a href="#L-3661"><span class="linenos">3661</span></a> <span class="n">MONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3662"><a href="#L-3662"><span class="linenos">3662</span></a> <span class="n">NCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3663"><a href="#L-3663"><span class="linenos">3663</span></a> <span class="n">NESTED</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3664"><a href="#L-3664"><span class="linenos">3664</span></a> <span class="n">NULL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3665"><a href="#L-3665"><span class="linenos">3665</span></a> <span class="n">NULLABLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3666"><a href="#L-3666"><span class="linenos">3666</span></a> <span class="n">NUMMULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3667"><a href="#L-3667"><span class="linenos">3667</span></a> <span class="n">NUMRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3668"><a href="#L-3668"><span class="linenos">3668</span></a> <span class="n">NVARCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3669"><a href="#L-3669"><span class="linenos">3669</span></a> <span class="n">OBJECT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3670"><a href="#L-3670"><span class="linenos">3670</span></a> <span class="n">ROWVERSION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3671"><a href="#L-3671"><span class="linenos">3671</span></a> <span class="n">SERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3672"><a href="#L-3672"><span class="linenos">3672</span></a> <span class="n">SET</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3673"><a href="#L-3673"><span class="linenos">3673</span></a> <span class="n">SMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3674"><a href="#L-3674"><span class="linenos">3674</span></a> <span class="n">SMALLMONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3675"><a href="#L-3675"><span class="linenos">3675</span></a> <span class="n">SMALLSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3676"><a href="#L-3676"><span class="linenos">3676</span></a> <span class="n">STRUCT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3677"><a href="#L-3677"><span class="linenos">3677</span></a> <span class="n">SUPER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3678"><a href="#L-3678"><span class="linenos">3678</span></a> <span class="n">TEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3679"><a href="#L-3679"><span class="linenos">3679</span></a> <span class="n">TINYBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3680"><a href="#L-3680"><span class="linenos">3680</span></a> <span class="n">TINYTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3681"><a href="#L-3681"><span class="linenos">3681</span></a> <span class="n">TIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3682"><a href="#L-3682"><span class="linenos">3682</span></a> <span class="n">TIMETZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3683"><a href="#L-3683"><span class="linenos">3683</span></a> <span class="n">TIMESTAMP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3684"><a href="#L-3684"><span class="linenos">3684</span></a> <span class="n">TIMESTAMPLTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3685"><a href="#L-3685"><span class="linenos">3685</span></a> <span class="n">TIMESTAMPTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3686"><a href="#L-3686"><span class="linenos">3686</span></a> <span class="n">TIMESTAMP_S</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3687"><a href="#L-3687"><span class="linenos">3687</span></a> <span class="n">TIMESTAMP_MS</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3688"><a href="#L-3688"><span class="linenos">3688</span></a> <span class="n">TIMESTAMP_NS</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3689"><a href="#L-3689"><span class="linenos">3689</span></a> <span class="n">TINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3690"><a href="#L-3690"><span class="linenos">3690</span></a> <span class="n">TSMULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3691"><a href="#L-3691"><span class="linenos">3691</span></a> <span class="n">TSRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3692"><a href="#L-3692"><span class="linenos">3692</span></a> <span class="n">TSTZMULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3693"><a href="#L-3693"><span class="linenos">3693</span></a> <span class="n">TSTZRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3694"><a href="#L-3694"><span class="linenos">3694</span></a> <span class="n">UBIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3695"><a href="#L-3695"><span class="linenos">3695</span></a> <span class="n">UINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3696"><a href="#L-3696"><span class="linenos">3696</span></a> <span class="n">UINT128</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3697"><a href="#L-3697"><span class="linenos">3697</span></a> <span class="n">UINT256</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3698"><a href="#L-3698"><span class="linenos">3698</span></a> <span class="n">UMEDIUMINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3699"><a href="#L-3699"><span class="linenos">3699</span></a> <span class="n">UDECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3700"><a href="#L-3700"><span class="linenos">3700</span></a> <span class="n">UNIQUEIDENTIFIER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3701"><a href="#L-3701"><span class="linenos">3701</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-3702"><a href="#L-3702"><span class="linenos">3702</span></a> <span class="n">USERDEFINED</span> <span class="o">=</span> <span class="s2">&quot;USER-DEFINED&quot;</span>
+</span><span id="L-3703"><a href="#L-3703"><span class="linenos">3703</span></a> <span class="n">USMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3704"><a href="#L-3704"><span class="linenos">3704</span></a> <span class="n">UTINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3705"><a href="#L-3705"><span class="linenos">3705</span></a> <span class="n">UUID</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3706"><a href="#L-3706"><span class="linenos">3706</span></a> <span class="n">VARBINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3707"><a href="#L-3707"><span class="linenos">3707</span></a> <span class="n">VARCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3708"><a href="#L-3708"><span class="linenos">3708</span></a> <span class="n">VARIANT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3709"><a href="#L-3709"><span class="linenos">3709</span></a> <span class="n">XML</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3710"><a href="#L-3710"><span class="linenos">3710</span></a> <span class="n">YEAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</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="n">TEXT_TYPES</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-3713"><a href="#L-3713"><span class="linenos">3713</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">CHAR</span><span class="p">,</span>
+</span><span id="L-3714"><a href="#L-3714"><span class="linenos">3714</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NCHAR</span><span class="p">,</span>
+</span><span id="L-3715"><a href="#L-3715"><span class="linenos">3715</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">VARCHAR</span><span class="p">,</span>
+</span><span id="L-3716"><a href="#L-3716"><span class="linenos">3716</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NVARCHAR</span><span class="p">,</span>
+</span><span id="L-3717"><a href="#L-3717"><span class="linenos">3717</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span>
+</span><span id="L-3718"><a href="#L-3718"><span class="linenos">3718</span></a> <span class="p">}</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 class="n">INTEGER_TYPES</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-3721"><a href="#L-3721"><span class="linenos">3721</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">INT</span><span class="p">,</span>
+</span><span id="L-3722"><a href="#L-3722"><span class="linenos">3722</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TINYINT</span><span class="p">,</span>
+</span><span id="L-3723"><a href="#L-3723"><span class="linenos">3723</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">SMALLINT</span><span class="p">,</span>
+</span><span id="L-3724"><a href="#L-3724"><span class="linenos">3724</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">BIGINT</span><span class="p">,</span>
+</span><span id="L-3725"><a href="#L-3725"><span class="linenos">3725</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">INT128</span><span class="p">,</span>
+</span><span id="L-3726"><a href="#L-3726"><span class="linenos">3726</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">INT256</span><span class="p">,</span>
+</span><span id="L-3727"><a href="#L-3727"><span class="linenos">3727</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">BIT</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 class="n">FLOAT_TYPES</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-3731"><a href="#L-3731"><span class="linenos">3731</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">FLOAT</span><span class="p">,</span>
+</span><span id="L-3732"><a href="#L-3732"><span class="linenos">3732</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DOUBLE</span><span class="p">,</span>
+</span><span id="L-3733"><a href="#L-3733"><span class="linenos">3733</span></a> <span class="p">}</span>
+</span><span id="L-3734"><a href="#L-3734"><span class="linenos">3734</span></a>
+</span><span id="L-3735"><a href="#L-3735"><span class="linenos">3735</span></a> <span class="n">NUMERIC_TYPES</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-3736"><a href="#L-3736"><span class="linenos">3736</span></a> <span class="o">*</span><span class="n">INTEGER_TYPES</span><span class="p">,</span>
+</span><span id="L-3737"><a href="#L-3737"><span class="linenos">3737</span></a> <span class="o">*</span><span class="n">FLOAT_TYPES</span><span class="p">,</span>
+</span><span id="L-3738"><a href="#L-3738"><span class="linenos">3738</span></a> <span class="p">}</span>
+</span><span id="L-3739"><a href="#L-3739"><span class="linenos">3739</span></a>
+</span><span id="L-3740"><a href="#L-3740"><span class="linenos">3740</span></a> <span class="n">TEMPORAL_TYPES</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-3741"><a href="#L-3741"><span class="linenos">3741</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIME</span><span class="p">,</span>
+</span><span id="L-3742"><a href="#L-3742"><span class="linenos">3742</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMETZ</span><span class="p">,</span>
+</span><span id="L-3743"><a href="#L-3743"><span class="linenos">3743</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span>
+</span><span id="L-3744"><a href="#L-3744"><span class="linenos">3744</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span>
+</span><span id="L-3745"><a href="#L-3745"><span class="linenos">3745</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPLTZ</span><span class="p">,</span>
+</span><span id="L-3746"><a href="#L-3746"><span class="linenos">3746</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP_S</span><span class="p">,</span>
+</span><span id="L-3747"><a href="#L-3747"><span class="linenos">3747</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP_MS</span><span class="p">,</span>
+</span><span id="L-3748"><a href="#L-3748"><span class="linenos">3748</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP_NS</span><span class="p">,</span>
+</span><span id="L-3749"><a href="#L-3749"><span class="linenos">3749</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATE</span><span class="p">,</span>
+</span><span id="L-3750"><a href="#L-3750"><span class="linenos">3750</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">,</span>
+</span><span id="L-3751"><a href="#L-3751"><span class="linenos">3751</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATETIME64</span><span class="p">,</span>
+</span><span id="L-3752"><a href="#L-3752"><span class="linenos">3752</span></a> <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">try</span><span class="p">:</span>
-</span><span id="L-3755"><a href="#L-3755"><span class="linenos">3755</span></a> <span class="n">data_type_exp</span> <span class="o">=</span> <span class="n">parse_one</span><span class="p">(</span>
-</span><span id="L-3756"><a href="#L-3756"><span class="linenos">3756</span></a> <span class="n">dtype</span><span class="p">,</span> <span class="n">read</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">DataType</span><span class="p">,</span> <span class="n">error_level</span><span class="o">=</span><span class="n">ErrorLevel</span><span class="o">.</span><span class="n">IGNORE</span>
-</span><span id="L-3757"><a href="#L-3757"><span class="linenos">3757</span></a> <span class="p">)</span>
-</span><span id="L-3758"><a href="#L-3758"><span class="linenos">3758</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span>
-</span><span id="L-3759"><a href="#L-3759"><span class="linenos">3759</span></a> <span class="k">if</span> <span class="n">udt</span><span class="p">:</span>
-</span><span id="L-3760"><a href="#L-3760"><span class="linenos">3760</span></a> <span class="k">return</span> <span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">USERDEFINED</span><span class="p">,</span> <span class="n">kind</span><span class="o">=</span><span class="n">dtype</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
-</span><span id="L-3761"><a href="#L-3761"><span class="linenos">3761</span></a> <span class="k">raise</span>
-</span><span id="L-3762"><a href="#L-3762"><span class="linenos">3762</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-3763"><a href="#L-3763"><span class="linenos">3763</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-3764"><a href="#L-3764"><span class="linenos">3764</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-3765"><a href="#L-3765"><span class="linenos">3765</span></a> <span class="k">return</span> <span class="n">dtype</span>
-</span><span id="L-3766"><a href="#L-3766"><span class="linenos">3766</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-3767"><a href="#L-3767"><span class="linenos">3767</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-3768"><a href="#L-3768"><span class="linenos">3768</span></a>
-</span><span id="L-3769"><a href="#L-3769"><span class="linenos">3769</span></a> <span 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-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 class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">dtypes</span><span class="p">:</span> <span class="n">DATA_TYPE</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="L-3772"><a href="#L-3772"><span class="linenos">3772</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-3773"><a href="#L-3773"><span class="linenos">3773</span></a><span class="sd"> Checks whether this DataType matches one of the provided data types. Nested types or precision</span>
-</span><span id="L-3774"><a href="#L-3774"><span class="linenos">3774</span></a><span class="sd"> will be compared using &quot;structural equivalence&quot; semantics, so e.g. array&lt;int&gt; != array&lt;float&gt;.</span>
-</span><span id="L-3775"><a href="#L-3775"><span class="linenos">3775</span></a>
-</span><span id="L-3776"><a href="#L-3776"><span class="linenos">3776</span></a><span class="sd"> Args:</span>
-</span><span id="L-3777"><a href="#L-3777"><span class="linenos">3777</span></a><span class="sd"> dtypes: the data types to compare this DataType to.</span>
-</span><span id="L-3778"><a href="#L-3778"><span class="linenos">3778</span></a>
-</span><span id="L-3779"><a href="#L-3779"><span class="linenos">3779</span></a><span class="sd"> Returns:</span>
-</span><span id="L-3780"><a href="#L-3780"><span class="linenos">3780</span></a><span class="sd"> True, if and only if there is a type in `dtypes` which is equal to this DataType.</span>
-</span><span id="L-3781"><a href="#L-3781"><span class="linenos">3781</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-3782"><a href="#L-3782"><span class="linenos">3782</span></a> <span class="k">for</span> <span class="n">dtype</span> <span class="ow">in</span> <span class="n">dtypes</span><span class="p">:</span>
-</span><span id="L-3783"><a href="#L-3783"><span class="linenos">3783</span></a> <span class="n">other</span> <span class="o">=</span> <span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">udt</span><span class="o">=</span><span class="kc">True</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">if</span> <span class="p">(</span>
-</span><span id="L-3786"><a href="#L-3786"><span class="linenos">3786</span></a> <span class="n">other</span><span class="o">.</span><span class="n">expressions</span>
-</span><span id="L-3787"><a href="#L-3787"><span class="linenos">3787</span></a> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">USERDEFINED</span>
-</span><span id="L-3788"><a href="#L-3788"><span class="linenos">3788</span></a> <span class="ow">or</span> <span class="n">other</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">USERDEFINED</span>
-</span><span id="L-3789"><a href="#L-3789"><span class="linenos">3789</span></a> <span class="p">):</span>
-</span><span id="L-3790"><a href="#L-3790"><span class="linenos">3790</span></a> <span class="n">matches</span> <span class="o">=</span> <span class="bp">self</span> <span class="o">==</span> <span class="n">other</span>
-</span><span id="L-3791"><a href="#L-3791"><span class="linenos">3791</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-3792"><a href="#L-3792"><span class="linenos">3792</span></a> <span class="n">matches</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">other</span><span class="o">.</span><span class="n">this</span>
-</span><span id="L-3793"><a href="#L-3793"><span class="linenos">3793</span></a>
-</span><span id="L-3794"><a href="#L-3794"><span class="linenos">3794</span></a> <span class="k">if</span> <span class="n">matches</span><span class="p">:</span>
-</span><span id="L-3795"><a href="#L-3795"><span class="linenos">3795</span></a> <span class="k">return</span> <span class="kc">True</span>
-</span><span id="L-3796"><a href="#L-3796"><span class="linenos">3796</span></a> <span class="k">return</span> <span class="kc">False</span>
+</span><span id="L-3754"><a href="#L-3754"><span class="linenos">3754</span></a> <span class="nd">@classmethod</span>
+</span><span id="L-3755"><a href="#L-3755"><span class="linenos">3755</span></a> <span class="k">def</span> <span class="nf">build</span><span class="p">(</span>
+</span><span id="L-3756"><a href="#L-3756"><span class="linenos">3756</span></a> <span class="bp">cls</span><span class="p">,</span>
+</span><span id="L-3757"><a href="#L-3757"><span class="linenos">3757</span></a> <span class="n">dtype</span><span class="p">:</span> <span class="n">DATA_TYPE</span><span class="p">,</span>
+</span><span id="L-3758"><a href="#L-3758"><span class="linenos">3758</span></a> <span class="n">dialect</span><span 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-3759"><a href="#L-3759"><span class="linenos">3759</span></a> <span class="n">udt</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3760"><a href="#L-3760"><span class="linenos">3760</span></a> <span class="o">**</span><span class="n">kwargs</span><span class="p">,</span>
+</span><span id="L-3761"><a href="#L-3761"><span class="linenos">3761</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DataType</span><span class="p">:</span>
+</span><span id="L-3762"><a href="#L-3762"><span class="linenos">3762</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-3763"><a href="#L-3763"><span class="linenos">3763</span></a><span class="sd"> Constructs a DataType object.</span>
+</span><span id="L-3764"><a href="#L-3764"><span class="linenos">3764</span></a>
+</span><span id="L-3765"><a href="#L-3765"><span class="linenos">3765</span></a><span class="sd"> Args:</span>
+</span><span id="L-3766"><a href="#L-3766"><span class="linenos">3766</span></a><span class="sd"> dtype: the data type of interest.</span>
+</span><span id="L-3767"><a href="#L-3767"><span class="linenos">3767</span></a><span class="sd"> dialect: the dialect to use for parsing `dtype`, in case it&#39;s a string.</span>
+</span><span id="L-3768"><a href="#L-3768"><span class="linenos">3768</span></a><span class="sd"> udt: when set to True, `dtype` will be used as-is if it can&#39;t be parsed into a</span>
+</span><span id="L-3769"><a href="#L-3769"><span class="linenos">3769</span></a><span class="sd"> DataType, thus creating a user-defined type.</span>
+</span><span id="L-3770"><a href="#L-3770"><span class="linenos">3770</span></a><span class="sd"> kawrgs: additional arguments to pass in the constructor of DataType.</span>
+</span><span id="L-3771"><a href="#L-3771"><span class="linenos">3771</span></a>
+</span><span id="L-3772"><a href="#L-3772"><span class="linenos">3772</span></a><span class="sd"> Returns:</span>
+</span><span id="L-3773"><a href="#L-3773"><span class="linenos">3773</span></a><span class="sd"> The constructed DataType object.</span>
+</span><span id="L-3774"><a href="#L-3774"><span class="linenos">3774</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-3775"><a href="#L-3775"><span class="linenos">3775</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-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">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-3778"><a href="#L-3778"><span class="linenos">3778</span></a> <span class="k">if</span> <span class="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">&quot;UNKNOWN&quot;</span><span class="p">:</span>
+</span><span id="L-3779"><a href="#L-3779"><span class="linenos">3779</span></a> <span class="k">return</span> <span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">UNKNOWN</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+</span><span id="L-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">try</span><span class="p">:</span>
+</span><span id="L-3782"><a href="#L-3782"><span class="linenos">3782</span></a> <span class="n">data_type_exp</span> <span class="o">=</span> <span class="n">parse_one</span><span class="p">(</span>
+</span><span id="L-3783"><a href="#L-3783"><span class="linenos">3783</span></a> <span class="n">dtype</span><span class="p">,</span> <span class="n">read</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">DataType</span><span class="p">,</span> <span class="n">error_level</span><span class="o">=</span><span class="n">ErrorLevel</span><span class="o">.</span><span class="n">IGNORE</span>
+</span><span id="L-3784"><a href="#L-3784"><span class="linenos">3784</span></a> <span class="p">)</span>
+</span><span id="L-3785"><a href="#L-3785"><span class="linenos">3785</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span>
+</span><span id="L-3786"><a href="#L-3786"><span class="linenos">3786</span></a> <span class="k">if</span> <span class="n">udt</span><span class="p">:</span>
+</span><span id="L-3787"><a href="#L-3787"><span class="linenos">3787</span></a> <span class="k">return</span> <span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">USERDEFINED</span><span class="p">,</span> <span class="n">kind</span><span class="o">=</span><span class="n">dtype</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+</span><span id="L-3788"><a href="#L-3788"><span class="linenos">3788</span></a> <span class="k">raise</span>
+</span><span id="L-3789"><a href="#L-3789"><span class="linenos">3789</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-3790"><a href="#L-3790"><span class="linenos">3790</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-3791"><a href="#L-3791"><span class="linenos">3791</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-3792"><a href="#L-3792"><span class="linenos">3792</span></a> <span class="k">return</span> <span class="n">dtype</span>
+</span><span id="L-3793"><a href="#L-3793"><span class="linenos">3793</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-3794"><a href="#L-3794"><span class="linenos">3794</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-3795"><a href="#L-3795"><span class="linenos">3795</span></a>
+</span><span id="L-3796"><a href="#L-3796"><span class="linenos">3796</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-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="n">DATA_TYPE</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">DataType</span><span class="p">,</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">]</span>
-</span><span id="L-3800"><a href="#L-3800"><span class="linenos">3800</span></a>
-</span><span id="L-3801"><a href="#L-3801"><span class="linenos">3801</span></a>
-</span><span id="L-3802"><a href="#L-3802"><span class="linenos">3802</span></a><span class="c1"># https://www.postgresql.org/docs/15/datatype-pseudo.html</span>
-</span><span id="L-3803"><a href="#L-3803"><span class="linenos">3803</span></a><span class="k">class</span> <span class="nc">PseudoType</span><span class="p">(</span><span class="n">DataType</span><span class="p">):</span>
-</span><span id="L-3804"><a href="#L-3804"><span class="linenos">3804</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">dtypes</span><span class="p">:</span> <span class="n">DATA_TYPE</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="L-3799"><a href="#L-3799"><span class="linenos">3799</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-3800"><a href="#L-3800"><span class="linenos">3800</span></a><span class="sd"> Checks whether this DataType matches one of the provided data types. Nested types or precision</span>
+</span><span id="L-3801"><a href="#L-3801"><span class="linenos">3801</span></a><span class="sd"> will be compared using &quot;structural equivalence&quot; semantics, so e.g. array&lt;int&gt; != array&lt;float&gt;.</span>
+</span><span id="L-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="sd"> Args:</span>
+</span><span id="L-3804"><a href="#L-3804"><span class="linenos">3804</span></a><span class="sd"> dtypes: the data types to compare this DataType to.</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="c1"># https://www.postgresql.org/docs/15/datatype-oid.html</span>
-</span><span id="L-3808"><a href="#L-3808"><span class="linenos">3808</span></a><span class="k">class</span> <span class="nc">ObjectIdentifier</span><span class="p">(</span><span class="n">DataType</span><span class="p">):</span>
-</span><span id="L-3809"><a href="#L-3809"><span class="linenos">3809</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-3810"><a href="#L-3810"><span class="linenos">3810</span></a>
+</span><span id="L-3806"><a href="#L-3806"><span class="linenos">3806</span></a><span class="sd"> Returns:</span>
+</span><span id="L-3807"><a href="#L-3807"><span class="linenos">3807</span></a><span class="sd"> True, if and only if there is a type in `dtypes` which is equal to this DataType.</span>
+</span><span id="L-3808"><a href="#L-3808"><span class="linenos">3808</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-3809"><a href="#L-3809"><span class="linenos">3809</span></a> <span class="k">for</span> <span class="n">dtype</span> <span class="ow">in</span> <span class="n">dtypes</span><span class="p">:</span>
+</span><span id="L-3810"><a href="#L-3810"><span class="linenos">3810</span></a> <span class="n">other</span> <span class="o">=</span> <span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">udt</span><span class="o">=</span><span class="kc">True</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 class="c1"># WHERE x &lt;OP&gt; EXISTS|ALL|ANY|SOME(SELECT ...)</span>
-</span><span id="L-3813"><a href="#L-3813"><span class="linenos">3813</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-3814"><a href="#L-3814"><span class="linenos">3814</span></a> <span class="k">pass</span>
-</span><span id="L-3815"><a href="#L-3815"><span class="linenos">3815</span></a>
-</span><span id="L-3816"><a href="#L-3816"><span class="linenos">3816</span></a>
-</span><span id="L-3817"><a href="#L-3817"><span class="linenos">3817</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-3818"><a href="#L-3818"><span class="linenos">3818</span></a> <span class="k">pass</span>
-</span><span id="L-3819"><a href="#L-3819"><span class="linenos">3819</span></a>
+</span><span id="L-3812"><a href="#L-3812"><span class="linenos">3812</span></a> <span class="k">if</span> <span class="p">(</span>
+</span><span id="L-3813"><a href="#L-3813"><span class="linenos">3813</span></a> <span class="n">other</span><span class="o">.</span><span class="n">expressions</span>
+</span><span id="L-3814"><a href="#L-3814"><span class="linenos">3814</span></a> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">USERDEFINED</span>
+</span><span id="L-3815"><a href="#L-3815"><span class="linenos">3815</span></a> <span class="ow">or</span> <span class="n">other</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">USERDEFINED</span>
+</span><span id="L-3816"><a href="#L-3816"><span class="linenos">3816</span></a> <span class="p">):</span>
+</span><span id="L-3817"><a href="#L-3817"><span class="linenos">3817</span></a> <span class="n">matches</span> <span class="o">=</span> <span class="bp">self</span> <span class="o">==</span> <span class="n">other</span>
+</span><span id="L-3818"><a href="#L-3818"><span class="linenos">3818</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-3819"><a href="#L-3819"><span class="linenos">3819</span></a> <span class="n">matches</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">other</span><span class="o">.</span><span class="n">this</span>
</span><span id="L-3820"><a href="#L-3820"><span class="linenos">3820</span></a>
-</span><span id="L-3821"><a href="#L-3821"><span class="linenos">3821</span></a><span class="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-3822"><a href="#L-3822"><span class="linenos">3822</span></a> <span class="k">pass</span>
-</span><span id="L-3823"><a href="#L-3823"><span class="linenos">3823</span></a>
+</span><span id="L-3821"><a href="#L-3821"><span class="linenos">3821</span></a> <span class="k">if</span> <span class="n">matches</span><span class="p">:</span>
+</span><span id="L-3822"><a href="#L-3822"><span class="linenos">3822</span></a> <span class="k">return</span> <span class="kc">True</span>
+</span><span id="L-3823"><a href="#L-3823"><span class="linenos">3823</span></a> <span class="k">return</span> <span class="kc">False</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 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-3826"><a href="#L-3826"><span class="linenos">3826</span></a> <span class="k">pass</span>
+</span><span id="L-3825"><a href="#L-3825"><span class="linenos">3825</span></a>
+</span><span id="L-3826"><a href="#L-3826"><span class="linenos">3826</span></a><span class="n">DATA_TYPE</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">DataType</span><span class="p">,</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">]</span>
</span><span id="L-3827"><a href="#L-3827"><span class="linenos">3827</span></a>
</span><span id="L-3828"><a href="#L-3828"><span class="linenos">3828</span></a>
-</span><span id="L-3829"><a href="#L-3829"><span class="linenos">3829</span></a><span class="c1"># Commands to interact with the databases or engines. For most of the command</span>
-</span><span id="L-3830"><a href="#L-3830"><span class="linenos">3830</span></a><span class="c1"># expressions we parse whatever comes after the command&#39;s name as a string.</span>
-</span><span id="L-3831"><a href="#L-3831"><span class="linenos">3831</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-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">False</span><span class="p">}</span>
+</span><span id="L-3829"><a href="#L-3829"><span class="linenos">3829</span></a><span class="c1"># https://www.postgresql.org/docs/15/datatype-pseudo.html</span>
+</span><span id="L-3830"><a href="#L-3830"><span class="linenos">3830</span></a><span class="k">class</span> <span class="nc">PseudoType</span><span class="p">(</span><span class="n">DataType</span><span class="p">):</span>
+</span><span id="L-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><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">Transaction</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-3836"><a href="#L-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">False</span><span class="p">,</span> <span class="s2">&quot;modes&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;mark&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3834"><a href="#L-3834"><span class="linenos">3834</span></a><span class="c1"># https://www.postgresql.org/docs/15/datatype-oid.html</span>
+</span><span id="L-3835"><a href="#L-3835"><span class="linenos">3835</span></a><span class="k">class</span> <span class="nc">ObjectIdentifier</span><span class="p">(</span><span class="n">DataType</span><span class="p">):</span>
+</span><span id="L-3836"><a href="#L-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><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">Commit</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-3840"><a href="#L-3840"><span class="linenos">3840</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;chain&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;durability&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-3841"><a href="#L-3841"><span class="linenos">3841</span></a>
+</span><span id="L-3839"><a href="#L-3839"><span class="linenos">3839</span></a><span class="c1"># WHERE x &lt;OP&gt; EXISTS|ALL|ANY|SOME(SELECT ...)</span>
+</span><span id="L-3840"><a href="#L-3840"><span class="linenos">3840</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-3841"><a href="#L-3841"><span class="linenos">3841</span></a> <span class="k">pass</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">Rollback</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-3844"><a href="#L-3844"><span class="linenos">3844</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;savepoint&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-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">All</span><span class="p">(</span><span class="n">SubqueryPredicate</span><span class="p">):</span>
+</span><span id="L-3845"><a href="#L-3845"><span class="linenos">3845</span></a> <span class="k">pass</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="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-3848"><a href="#L-3848"><span class="linenos">3848</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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 class="s2">&quot;only&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-3849"><a href="#L-3849"><span class="linenos">3849</span></a>
+</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">Any</span><span class="p">(</span><span class="n">SubqueryPredicate</span><span class="p">):</span>
+</span><span id="L-3849"><a href="#L-3849"><span class="linenos">3849</span></a> <span class="k">pass</span>
</span><span id="L-3850"><a href="#L-3850"><span class="linenos">3850</span></a>
-</span><span id="L-3851"><a href="#L-3851"><span class="linenos">3851</span></a><span class="k">class</span> <span class="nc">AddConstraint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-3852"><a href="#L-3852"><span class="linenos">3852</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span 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-3853"><a href="#L-3853"><span class="linenos">3853</span></a>
+</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 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-3853"><a href="#L-3853"><span class="linenos">3853</span></a> <span class="k">pass</span>
</span><span id="L-3854"><a href="#L-3854"><span class="linenos">3854</span></a>
-</span><span id="L-3855"><a href="#L-3855"><span class="linenos">3855</span></a><span class="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-3856"><a href="#L-3856"><span class="linenos">3856</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-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><span id="L-3859"><a href="#L-3859"><span class="linenos">3859</span></a><span class="c1"># Binary expressions like (ADD a b)</span>
-</span><span id="L-3860"><a href="#L-3860"><span class="linenos">3860</span></a><span class="k">class</span> <span class="nc">Binary</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
-</span><span id="L-3861"><a href="#L-3861"><span class="linenos">3861</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3862"><a href="#L-3862"><span class="linenos">3862</span></a>
-</span><span id="L-3863"><a href="#L-3863"><span class="linenos">3863</span></a> <span class="nd">@property</span>
-</span><span id="L-3864"><a href="#L-3864"><span class="linenos">3864</span></a> <span class="k">def</span> <span class="nf">left</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="L-3865"><a href="#L-3865"><span class="linenos">3865</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-3866"><a href="#L-3866"><span class="linenos">3866</span></a>
-</span><span id="L-3867"><a href="#L-3867"><span class="linenos">3867</span></a> <span class="nd">@property</span>
-</span><span id="L-3868"><a href="#L-3868"><span class="linenos">3868</span></a> <span class="k">def</span> <span class="nf">right</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="L-3869"><a href="#L-3869"><span class="linenos">3869</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-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">Add</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="L-3873"><a href="#L-3873"><span class="linenos">3873</span></a> <span class="k">pass</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">Connector</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="L-3877"><a href="#L-3877"><span class="linenos">3877</span></a> <span class="k">pass</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">And</span><span class="p">(</span><span class="n">Connector</span><span class="p">):</span>
-</span><span id="L-3881"><a href="#L-3881"><span class="linenos">3881</span></a> <span class="k">pass</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 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-3885"><a href="#L-3885"><span class="linenos">3885</span></a> <span class="k">pass</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 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-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 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-3893"><a href="#L-3893"><span class="linenos">3893</span></a> <span class="k">pass</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 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-3897"><a href="#L-3897"><span class="linenos">3897</span></a> <span class="k">pass</span>
+</span><span id="L-3855"><a href="#L-3855"><span class="linenos">3855</span></a>
+</span><span id="L-3856"><a href="#L-3856"><span class="linenos">3856</span></a><span class="c1"># Commands to interact with the databases or engines. For most of the command</span>
+</span><span id="L-3857"><a href="#L-3857"><span class="linenos">3857</span></a><span class="c1"># expressions we parse whatever comes after the command&#39;s name as a string.</span>
+</span><span id="L-3858"><a href="#L-3858"><span class="linenos">3858</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-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">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">Transaction</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-3863"><a href="#L-3863"><span class="linenos">3863</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;modes&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;mark&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-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">Commit</span><span class="p">(</span><span class="n">Expression</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;chain&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;durability&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-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="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-3871"><a href="#L-3871"><span class="linenos">3871</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;savepoint&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3872"><a href="#L-3872"><span class="linenos">3872</span></a>
+</span><span id="L-3873"><a href="#L-3873"><span class="linenos">3873</span></a>
+</span><span id="L-3874"><a href="#L-3874"><span class="linenos">3874</span></a><span 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-3875"><a href="#L-3875"><span class="linenos">3875</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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 class="s2">&quot;only&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3876"><a href="#L-3876"><span class="linenos">3876</span></a>
+</span><span id="L-3877"><a href="#L-3877"><span class="linenos">3877</span></a>
+</span><span id="L-3878"><a href="#L-3878"><span class="linenos">3878</span></a><span 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-3879"><a href="#L-3879"><span class="linenos">3879</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-3880"><a href="#L-3880"><span class="linenos">3880</span></a>
+</span><span id="L-3881"><a href="#L-3881"><span class="linenos">3881</span></a>
+</span><span id="L-3882"><a href="#L-3882"><span class="linenos">3882</span></a><span 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-3883"><a href="#L-3883"><span class="linenos">3883</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-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><span id="L-3886"><a href="#L-3886"><span class="linenos">3886</span></a><span class="c1"># Binary expressions like (ADD a b)</span>
+</span><span id="L-3887"><a href="#L-3887"><span class="linenos">3887</span></a><span class="k">class</span> <span class="nc">Binary</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
+</span><span id="L-3888"><a href="#L-3888"><span class="linenos">3888</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3889"><a href="#L-3889"><span class="linenos">3889</span></a>
+</span><span id="L-3890"><a href="#L-3890"><span class="linenos">3890</span></a> <span class="nd">@property</span>
+</span><span id="L-3891"><a href="#L-3891"><span class="linenos">3891</span></a> <span class="k">def</span> <span class="nf">left</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="L-3892"><a href="#L-3892"><span class="linenos">3892</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-3893"><a href="#L-3893"><span class="linenos">3893</span></a>
+</span><span id="L-3894"><a href="#L-3894"><span class="linenos">3894</span></a> <span class="nd">@property</span>
+</span><span id="L-3895"><a href="#L-3895"><span class="linenos">3895</span></a> <span class="k">def</span> <span class="nf">right</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="L-3896"><a href="#L-3896"><span class="linenos">3896</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-3897"><a href="#L-3897"><span class="linenos">3897</span></a>
</span><span id="L-3898"><a href="#L-3898"><span class="linenos">3898</span></a>
-</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 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-3901"><a href="#L-3901"><span class="linenos">3901</span></a> <span class="k">pass</span>
+</span><span id="L-3899"><a href="#L-3899"><span class="linenos">3899</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-3900"><a href="#L-3900"><span class="linenos">3900</span></a> <span class="k">pass</span>
+</span><span id="L-3901"><a href="#L-3901"><span class="linenos">3901</span></a>
</span><span id="L-3902"><a href="#L-3902"><span class="linenos">3902</span></a>
-</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 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-3905"><a href="#L-3905"><span class="linenos">3905</span></a> <span class="k">pass</span>
+</span><span id="L-3903"><a href="#L-3903"><span class="linenos">3903</span></a><span class="k">class</span> <span class="nc">Connector</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="L-3904"><a href="#L-3904"><span class="linenos">3904</span></a> <span class="k">pass</span>
+</span><span id="L-3905"><a href="#L-3905"><span class="linenos">3905</span></a>
</span><span id="L-3906"><a href="#L-3906"><span class="linenos">3906</span></a>
-</span><span id="L-3907"><a href="#L-3907"><span class="linenos">3907</span></a>
-</span><span id="L-3908"><a href="#L-3908"><span class="linenos">3908</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-3909"><a href="#L-3909"><span class="linenos">3909</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;typed&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;safe&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3907"><a href="#L-3907"><span class="linenos">3907</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-3908"><a href="#L-3908"><span class="linenos">3908</span></a> <span class="k">pass</span>
+</span><span id="L-3909"><a href="#L-3909"><span class="linenos">3909</span></a>
</span><span id="L-3910"><a href="#L-3910"><span class="linenos">3910</span></a>
-</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 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-3913"><a href="#L-3913"><span class="linenos">3913</span></a> <span class="k">pass</span>
+</span><span id="L-3911"><a href="#L-3911"><span class="linenos">3911</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-3912"><a href="#L-3912"><span class="linenos">3912</span></a> <span class="k">pass</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><span id="L-3916"><a href="#L-3916"><span class="linenos">3916</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-3917"><a href="#L-3917"><span class="linenos">3917</span></a> <span class="nd">@property</span>
-</span><span id="L-3918"><a href="#L-3918"><span class="linenos">3918</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-3919"><a href="#L-3919"><span class="linenos">3919</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-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="nd">@property</span>
-</span><span id="L-3922"><a href="#L-3922"><span class="linenos">3922</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-3923"><a href="#L-3923"><span class="linenos">3923</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-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="nd">@classmethod</span>
-</span><span id="L-3926"><a href="#L-3926"><span class="linenos">3926</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-3927"><a href="#L-3927"><span class="linenos">3927</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-3928"><a href="#L-3928"><span class="linenos">3928</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-3929"><a href="#L-3929"><span class="linenos">3929</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-3915"><a href="#L-3915"><span class="linenos">3915</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-3916"><a href="#L-3916"><span class="linenos">3916</span></a> <span class="k">pass</span>
+</span><span id="L-3917"><a href="#L-3917"><span class="linenos">3917</span></a>
+</span><span id="L-3918"><a href="#L-3918"><span class="linenos">3918</span></a>
+</span><span id="L-3919"><a href="#L-3919"><span class="linenos">3919</span></a><span class="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-3920"><a href="#L-3920"><span class="linenos">3920</span></a> <span class="k">pass</span>
+</span><span id="L-3921"><a href="#L-3921"><span class="linenos">3921</span></a>
+</span><span id="L-3922"><a href="#L-3922"><span class="linenos">3922</span></a>
+</span><span id="L-3923"><a href="#L-3923"><span class="linenos">3923</span></a><span class="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-3924"><a href="#L-3924"><span class="linenos">3924</span></a> <span class="k">pass</span>
+</span><span id="L-3925"><a href="#L-3925"><span class="linenos">3925</span></a>
+</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 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-3928"><a href="#L-3928"><span class="linenos">3928</span></a> <span class="k">pass</span>
+</span><span id="L-3929"><a href="#L-3929"><span class="linenos">3929</span></a>
</span><span id="L-3930"><a href="#L-3930"><span class="linenos">3930</span></a>
-</span><span id="L-3931"><a href="#L-3931"><span class="linenos">3931</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Dot</span><span class="p">,</span> <span class="n">reduce</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">:</span> <span class="n">Dot</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">x</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">y</span><span class="p">),</span> <span class="n">expressions</span><span class="p">))</span>
-</span><span id="L-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="nd">@property</span>
-</span><span id="L-3934"><a href="#L-3934"><span class="linenos">3934</span></a> <span class="k">def</span> <span class="nf">parts</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
-</span><span id="L-3935"><a href="#L-3935"><span class="linenos">3935</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Return the parts of a table / column in order catalog, db, table.&quot;&quot;&quot;</span>
-</span><span id="L-3936"><a href="#L-3936"><span class="linenos">3936</span></a> <span class="n">this</span><span class="p">,</span> <span class="o">*</span><span class="n">parts</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">flatten</span><span class="p">()</span>
+</span><span id="L-3931"><a href="#L-3931"><span class="linenos">3931</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-3932"><a href="#L-3932"><span class="linenos">3932</span></a> <span class="k">pass</span>
+</span><span id="L-3933"><a href="#L-3933"><span class="linenos">3933</span></a>
+</span><span id="L-3934"><a href="#L-3934"><span class="linenos">3934</span></a>
+</span><span id="L-3935"><a href="#L-3935"><span class="linenos">3935</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-3936"><a href="#L-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">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;typed&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;safe&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-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="n">parts</span><span class="o">.</span><span class="n">reverse</span><span class="p">()</span>
-</span><span id="L-3939"><a href="#L-3939"><span class="linenos">3939</span></a>
-</span><span id="L-3940"><a href="#L-3940"><span class="linenos">3940</span></a> <span class="k">for</span> <span class="n">arg</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;table&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-3941"><a href="#L-3941"><span class="linenos">3941</span></a> <span class="n">part</span> <span class="o">=</span> <span class="n">this</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span>
+</span><span id="L-3938"><a href="#L-3938"><span class="linenos">3938</span></a>
+</span><span id="L-3939"><a href="#L-3939"><span class="linenos">3939</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-3940"><a href="#L-3940"><span class="linenos">3940</span></a> <span class="k">pass</span>
+</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><span id="L-3943"><a href="#L-3943"><span class="linenos">3943</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">part</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-3944"><a href="#L-3944"><span class="linenos">3944</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">part</span><span class="p">)</span>
-</span><span id="L-3945"><a href="#L-3945"><span class="linenos">3945</span></a>
-</span><span id="L-3946"><a href="#L-3946"><span class="linenos">3946</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">reverse</span><span class="p">()</span>
-</span><span id="L-3947"><a href="#L-3947"><span class="linenos">3947</span></a> <span class="k">return</span> <span class="n">parts</span>
-</span><span id="L-3948"><a href="#L-3948"><span class="linenos">3948</span></a>
-</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">DPipe</span><span class="p">(</span><span class="n">Binary</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;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;safe&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-3952"><a href="#L-3952"><span class="linenos">3952</span></a>
-</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">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-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-3943"><a href="#L-3943"><span class="linenos">3943</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-3944"><a href="#L-3944"><span class="linenos">3944</span></a> <span class="nd">@property</span>
+</span><span id="L-3945"><a href="#L-3945"><span class="linenos">3945</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-3946"><a href="#L-3946"><span class="linenos">3946</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-3947"><a href="#L-3947"><span class="linenos">3947</span></a>
+</span><span id="L-3948"><a href="#L-3948"><span class="linenos">3948</span></a> <span class="nd">@property</span>
+</span><span id="L-3949"><a href="#L-3949"><span class="linenos">3949</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-3950"><a href="#L-3950"><span class="linenos">3950</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-3951"><a href="#L-3951"><span class="linenos">3951</span></a>
+</span><span id="L-3952"><a href="#L-3952"><span class="linenos">3952</span></a> <span class="nd">@classmethod</span>
+</span><span id="L-3953"><a href="#L-3953"><span class="linenos">3953</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-3954"><a href="#L-3954"><span class="linenos">3954</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-3955"><a href="#L-3955"><span class="linenos">3955</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-3956"><a href="#L-3956"><span class="linenos">3956</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-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">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-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-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">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-3963"><a href="#L-3963"><span class="linenos">3963</span></a> <span class="k">pass</span>
+</span><span id="L-3958"><a href="#L-3958"><span class="linenos">3958</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Dot</span><span class="p">,</span> <span class="n">reduce</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">:</span> <span class="n">Dot</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">x</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">y</span><span class="p">),</span> <span class="n">expressions</span><span class="p">))</span>
+</span><span id="L-3959"><a href="#L-3959"><span class="linenos">3959</span></a>
+</span><span id="L-3960"><a href="#L-3960"><span class="linenos">3960</span></a> <span class="nd">@property</span>
+</span><span id="L-3961"><a href="#L-3961"><span class="linenos">3961</span></a> <span class="k">def</span> <span class="nf">parts</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="L-3962"><a href="#L-3962"><span class="linenos">3962</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Return the parts of a table / column in order catalog, db, table.&quot;&quot;&quot;</span>
+</span><span id="L-3963"><a href="#L-3963"><span class="linenos">3963</span></a> <span class="n">this</span><span class="p">,</span> <span class="o">*</span><span class="n">parts</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">flatten</span><span class="p">()</span>
</span><span id="L-3964"><a href="#L-3964"><span class="linenos">3964</span></a>
-</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"># Represents e.g. := in DuckDB which is mostly used for setting parameters</span>
-</span><span id="L-3967"><a href="#L-3967"><span class="linenos">3967</span></a><span class="k">class</span> <span class="nc">PropertyEQ</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="L-3968"><a href="#L-3968"><span class="linenos">3968</span></a> <span class="k">pass</span>
+</span><span id="L-3965"><a href="#L-3965"><span class="linenos">3965</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">reverse</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">for</span> <span class="n">arg</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;table&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-3968"><a href="#L-3968"><span class="linenos">3968</span></a> <span class="n">part</span> <span class="o">=</span> <span class="n">this</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span>
</span><span id="L-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="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-3972"><a href="#L-3972"><span class="linenos">3972</span></a> <span class="k">pass</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 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-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 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-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 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-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 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-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 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-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 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-3996"><a href="#L-3996"><span class="linenos">3996</span></a> <span class="k">pass</span>
+</span><span id="L-3970"><a href="#L-3970"><span class="linenos">3970</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">part</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-3971"><a href="#L-3971"><span class="linenos">3971</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">part</span><span class="p">)</span>
+</span><span id="L-3972"><a href="#L-3972"><span class="linenos">3972</span></a>
+</span><span id="L-3973"><a href="#L-3973"><span class="linenos">3973</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">reverse</span><span class="p">()</span>
+</span><span id="L-3974"><a href="#L-3974"><span class="linenos">3974</span></a> <span class="k">return</span> <span class="n">parts</span>
+</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><span id="L-3977"><a href="#L-3977"><span class="linenos">3977</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-3978"><a href="#L-3978"><span class="linenos">3978</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;safe&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-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><span id="L-3981"><a href="#L-3981"><span class="linenos">3981</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-3982"><a href="#L-3982"><span class="linenos">3982</span></a> <span class="k">pass</span>
+</span><span id="L-3983"><a href="#L-3983"><span class="linenos">3983</span></a>
+</span><span id="L-3984"><a href="#L-3984"><span class="linenos">3984</span></a>
+</span><span id="L-3985"><a href="#L-3985"><span class="linenos">3985</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-3986"><a href="#L-3986"><span class="linenos">3986</span></a> <span class="k">pass</span>
+</span><span id="L-3987"><a href="#L-3987"><span class="linenos">3987</span></a>
+</span><span id="L-3988"><a href="#L-3988"><span class="linenos">3988</span></a>
+</span><span id="L-3989"><a href="#L-3989"><span class="linenos">3989</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-3990"><a href="#L-3990"><span class="linenos">3990</span></a> <span class="k">pass</span>
+</span><span id="L-3991"><a href="#L-3991"><span class="linenos">3991</span></a>
+</span><span id="L-3992"><a href="#L-3992"><span class="linenos">3992</span></a>
+</span><span id="L-3993"><a href="#L-3993"><span class="linenos">3993</span></a><span class="c1"># Represents e.g. := in DuckDB which is mostly used for setting parameters</span>
+</span><span id="L-3994"><a href="#L-3994"><span class="linenos">3994</span></a><span class="k">class</span> <span class="nc">PropertyEQ</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="L-3995"><a href="#L-3995"><span class="linenos">3995</span></a> <span class="k">pass</span>
+</span><span id="L-3996"><a href="#L-3996"><span class="linenos">3996</span></a>
</span><span id="L-3997"><a href="#L-3997"><span class="linenos">3997</span></a>
-</span><span id="L-3998"><a href="#L-3998"><span class="linenos">3998</span></a>
-</span><span id="L-3999"><a href="#L-3999"><span class="linenos">3999</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-4000"><a href="#L-4000"><span class="linenos">4000</span></a> <span class="k">pass</span>
+</span><span id="L-3998"><a href="#L-3998"><span class="linenos">3998</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-3999"><a href="#L-3999"><span class="linenos">3999</span></a> <span class="k">pass</span>
+</span><span id="L-4000"><a href="#L-4000"><span class="linenos">4000</span></a>
</span><span id="L-4001"><a href="#L-4001"><span class="linenos">4001</span></a>
-</span><span id="L-4002"><a href="#L-4002"><span class="linenos">4002</span></a>
-</span><span id="L-4003"><a href="#L-4003"><span class="linenos">4003</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-4004"><a href="#L-4004"><span class="linenos">4004</span></a> <span class="k">pass</span>
+</span><span id="L-4002"><a href="#L-4002"><span class="linenos">4002</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-4003"><a href="#L-4003"><span class="linenos">4003</span></a> <span class="k">pass</span>
+</span><span id="L-4004"><a href="#L-4004"><span class="linenos">4004</span></a>
</span><span id="L-4005"><a href="#L-4005"><span class="linenos">4005</span></a>
-</span><span id="L-4006"><a href="#L-4006"><span class="linenos">4006</span></a>
-</span><span id="L-4007"><a href="#L-4007"><span class="linenos">4007</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-4008"><a href="#L-4008"><span class="linenos">4008</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-4006"><a href="#L-4006"><span class="linenos">4006</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-4007"><a href="#L-4007"><span class="linenos">4007</span></a> <span class="k">pass</span>
+</span><span id="L-4008"><a href="#L-4008"><span class="linenos">4008</span></a>
</span><span id="L-4009"><a href="#L-4009"><span class="linenos">4009</span></a>
-</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 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-4012"><a href="#L-4012"><span class="linenos">4012</span></a> <span class="k">pass</span>
+</span><span id="L-4010"><a href="#L-4010"><span class="linenos">4010</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-4011"><a href="#L-4011"><span class="linenos">4011</span></a> <span class="k">pass</span>
+</span><span id="L-4012"><a href="#L-4012"><span class="linenos">4012</span></a>
</span><span id="L-4013"><a href="#L-4013"><span class="linenos">4013</span></a>
-</span><span id="L-4014"><a href="#L-4014"><span class="linenos">4014</span></a>
-</span><span id="L-4015"><a href="#L-4015"><span class="linenos">4015</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-4016"><a href="#L-4016"><span class="linenos">4016</span></a> <span class="k">pass</span>
+</span><span id="L-4014"><a href="#L-4014"><span class="linenos">4014</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-4015"><a href="#L-4015"><span class="linenos">4015</span></a> <span class="k">pass</span>
+</span><span id="L-4016"><a href="#L-4016"><span class="linenos">4016</span></a>
</span><span id="L-4017"><a href="#L-4017"><span class="linenos">4017</span></a>
-</span><span id="L-4018"><a href="#L-4018"><span class="linenos">4018</span></a>
-</span><span id="L-4019"><a href="#L-4019"><span class="linenos">4019</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-4020"><a href="#L-4020"><span class="linenos">4020</span></a> <span class="k">pass</span>
+</span><span id="L-4018"><a href="#L-4018"><span class="linenos">4018</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-4019"><a href="#L-4019"><span class="linenos">4019</span></a> <span class="k">pass</span>
+</span><span id="L-4020"><a href="#L-4020"><span class="linenos">4020</span></a>
</span><span id="L-4021"><a href="#L-4021"><span class="linenos">4021</span></a>
-</span><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="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-4024"><a href="#L-4024"><span class="linenos">4024</span></a> <span class="k">pass</span>
+</span><span id="L-4022"><a href="#L-4022"><span class="linenos">4022</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-4023"><a href="#L-4023"><span class="linenos">4023</span></a> <span class="k">pass</span>
+</span><span id="L-4024"><a href="#L-4024"><span class="linenos">4024</span></a>
</span><span id="L-4025"><a href="#L-4025"><span class="linenos">4025</span></a>
-</span><span id="L-4026"><a href="#L-4026"><span class="linenos">4026</span></a>
-</span><span id="L-4027"><a href="#L-4027"><span class="linenos">4027</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-4028"><a href="#L-4028"><span class="linenos">4028</span></a> <span class="k">pass</span>
+</span><span id="L-4026"><a href="#L-4026"><span class="linenos">4026</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-4027"><a href="#L-4027"><span class="linenos">4027</span></a> <span class="k">pass</span>
+</span><span id="L-4028"><a href="#L-4028"><span class="linenos">4028</span></a>
</span><span id="L-4029"><a href="#L-4029"><span class="linenos">4029</span></a>
-</span><span id="L-4030"><a href="#L-4030"><span class="linenos">4030</span></a>
-</span><span id="L-4031"><a href="#L-4031"><span class="linenos">4031</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-4032"><a href="#L-4032"><span class="linenos">4032</span></a> <span class="k">pass</span>
+</span><span id="L-4030"><a href="#L-4030"><span class="linenos">4030</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-4031"><a href="#L-4031"><span class="linenos">4031</span></a> <span class="k">pass</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><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="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-4036"><a href="#L-4036"><span class="linenos">4036</span></a> <span class="k">pass</span>
+</span><span id="L-4034"><a href="#L-4034"><span class="linenos">4034</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-4035"><a href="#L-4035"><span class="linenos">4035</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-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><span id="L-4039"><a href="#L-4039"><span class="linenos">4039</span></a><span class="c1"># https://www.postgresql.org/docs/current/ddl-schemas.html#DDL-SCHEMAS-PATH</span>
-</span><span id="L-4040"><a href="#L-4040"><span class="linenos">4040</span></a><span class="k">class</span> <span class="nc">Operator</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="L-4041"><a href="#L-4041"><span class="linenos">4041</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;operator&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-4042"><a href="#L-4042"><span class="linenos">4042</span></a>
-</span><span id="L-4043"><a href="#L-4043"><span class="linenos">4043</span></a>
-</span><span id="L-4044"><a href="#L-4044"><span class="linenos">4044</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-4045"><a href="#L-4045"><span class="linenos">4045</span></a> <span class="k">pass</span>
-</span><span id="L-4046"><a href="#L-4046"><span class="linenos">4046</span></a>
-</span><span id="L-4047"><a href="#L-4047"><span class="linenos">4047</span></a>
-</span><span id="L-4048"><a href="#L-4048"><span class="linenos">4048</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-4049"><a href="#L-4049"><span class="linenos">4049</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-4050"><a href="#L-4050"><span class="linenos">4050</span></a>
-</span><span id="L-4051"><a href="#L-4051"><span class="linenos">4051</span></a>
-</span><span id="L-4052"><a href="#L-4052"><span class="linenos">4052</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-4053"><a href="#L-4053"><span class="linenos">4053</span></a> <span class="k">pass</span>
-</span><span id="L-4054"><a href="#L-4054"><span class="linenos">4054</span></a>
-</span><span id="L-4055"><a href="#L-4055"><span class="linenos">4055</span></a>
-</span><span id="L-4056"><a href="#L-4056"><span class="linenos">4056</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-4057"><a href="#L-4057"><span class="linenos">4057</span></a> <span class="k">pass</span>
-</span><span id="L-4058"><a href="#L-4058"><span class="linenos">4058</span></a>
-</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="c1"># Unary Expressions</span>
-</span><span id="L-4061"><a href="#L-4061"><span class="linenos">4061</span></a><span class="c1"># (NOT a)</span>
-</span><span id="L-4062"><a href="#L-4062"><span class="linenos">4062</span></a><span class="k">class</span> <span class="nc">Unary</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
+</span><span id="L-4038"><a href="#L-4038"><span class="linenos">4038</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-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><span id="L-4042"><a href="#L-4042"><span class="linenos">4042</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-4043"><a href="#L-4043"><span class="linenos">4043</span></a> <span class="k">pass</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">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-4047"><a href="#L-4047"><span class="linenos">4047</span></a> <span class="k">pass</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">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-4051"><a href="#L-4051"><span class="linenos">4051</span></a> <span class="k">pass</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">Mod</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="L-4055"><a href="#L-4055"><span class="linenos">4055</span></a> <span class="k">pass</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">Mul</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="L-4059"><a href="#L-4059"><span class="linenos">4059</span></a> <span class="k">pass</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="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-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">BitwiseNot</span><span class="p">(</span><span class="n">Unary</span><span class="p">):</span>
-</span><span id="L-4067"><a href="#L-4067"><span class="linenos">4067</span></a> <span class="k">pass</span>
-</span><span id="L-4068"><a href="#L-4068"><span class="linenos">4068</span></a>
+</span><span id="L-4066"><a href="#L-4066"><span class="linenos">4066</span></a><span class="c1"># https://www.postgresql.org/docs/current/ddl-schemas.html#DDL-SCHEMAS-PATH</span>
+</span><span id="L-4067"><a href="#L-4067"><span class="linenos">4067</span></a><span class="k">class</span> <span class="nc">Operator</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="L-4068"><a href="#L-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;operator&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-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">Not</span><span class="p">(</span><span class="n">Unary</span><span class="p">):</span>
-</span><span id="L-4071"><a href="#L-4071"><span class="linenos">4071</span></a> <span class="k">pass</span>
-</span><span id="L-4072"><a href="#L-4072"><span class="linenos">4072</span></a>
+</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 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-4072"><a href="#L-4072"><span class="linenos">4072</span></a> <span class="k">pass</span>
</span><span id="L-4073"><a href="#L-4073"><span class="linenos">4073</span></a>
-</span><span id="L-4074"><a href="#L-4074"><span class="linenos">4074</span></a><span class="k">class</span> <span class="nc">Paren</span><span class="p">(</span><span class="n">Unary</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;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-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 class="nd">@property</span>
-</span><span id="L-4078"><a href="#L-4078"><span class="linenos">4078</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-4079"><a href="#L-4079"><span class="linenos">4079</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-4080"><a href="#L-4080"><span class="linenos">4080</span></a>
+</span><span id="L-4074"><a href="#L-4074"><span class="linenos">4074</span></a>
+</span><span id="L-4075"><a href="#L-4075"><span class="linenos">4075</span></a><span class="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-4076"><a href="#L-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;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-4077"><a href="#L-4077"><span class="linenos">4077</span></a>
+</span><span id="L-4078"><a href="#L-4078"><span class="linenos">4078</span></a>
+</span><span id="L-4079"><a href="#L-4079"><span class="linenos">4079</span></a><span class="k">class</span> <span class="nc">Sub</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="L-4080"><a href="#L-4080"><span class="linenos">4080</span></a> <span class="k">pass</span>
</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="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-4083"><a href="#L-4083"><span class="linenos">4083</span></a> <span class="k">pass</span>
-</span><span id="L-4084"><a href="#L-4084"><span class="linenos">4084</span></a>
+</span><span id="L-4082"><a href="#L-4082"><span class="linenos">4082</span></a>
+</span><span id="L-4083"><a href="#L-4083"><span class="linenos">4083</span></a><span class="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-4084"><a href="#L-4084"><span class="linenos">4084</span></a> <span class="k">pass</span>
</span><span id="L-4085"><a href="#L-4085"><span class="linenos">4085</span></a>
-</span><span id="L-4086"><a href="#L-4086"><span class="linenos">4086</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-4087"><a href="#L-4087"><span class="linenos">4087</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4088"><a href="#L-4088"><span class="linenos">4088</span></a>
-</span><span id="L-4089"><a href="#L-4089"><span class="linenos">4089</span></a> <span class="nd">@property</span>
-</span><span id="L-4090"><a href="#L-4090"><span class="linenos">4090</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-4091"><a href="#L-4091"><span class="linenos">4091</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-4086"><a href="#L-4086"><span class="linenos">4086</span></a>
+</span><span id="L-4087"><a href="#L-4087"><span class="linenos">4087</span></a><span class="c1"># Unary Expressions</span>
+</span><span id="L-4088"><a href="#L-4088"><span class="linenos">4088</span></a><span class="c1"># (NOT a)</span>
+</span><span id="L-4089"><a href="#L-4089"><span class="linenos">4089</span></a><span class="k">class</span> <span class="nc">Unary</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
+</span><span id="L-4090"><a href="#L-4090"><span class="linenos">4090</span></a> <span class="k">pass</span>
+</span><span id="L-4091"><a href="#L-4091"><span class="linenos">4091</span></a>
</span><span id="L-4092"><a href="#L-4092"><span class="linenos">4092</span></a>
-</span><span id="L-4093"><a href="#L-4093"><span class="linenos">4093</span></a>
-</span><span id="L-4094"><a href="#L-4094"><span class="linenos">4094</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-4095"><a href="#L-4095"><span class="linenos">4095</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4093"><a href="#L-4093"><span class="linenos">4093</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-4094"><a href="#L-4094"><span class="linenos">4094</span></a> <span class="k">pass</span>
+</span><span id="L-4095"><a href="#L-4095"><span class="linenos">4095</span></a>
</span><span id="L-4096"><a href="#L-4096"><span class="linenos">4096</span></a>
-</span><span id="L-4097"><a href="#L-4097"><span class="linenos">4097</span></a> <span class="nd">@property</span>
-</span><span id="L-4098"><a href="#L-4098"><span class="linenos">4098</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-4099"><a href="#L-4099"><span class="linenos">4099</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-4097"><a href="#L-4097"><span class="linenos">4097</span></a><span class="k">class</span> <span class="nc">Not</span><span class="p">(</span><span class="n">Unary</span><span class="p">):</span>
+</span><span id="L-4098"><a href="#L-4098"><span class="linenos">4098</span></a> <span class="k">pass</span>
+</span><span id="L-4099"><a href="#L-4099"><span class="linenos">4099</span></a>
</span><span id="L-4100"><a href="#L-4100"><span class="linenos">4100</span></a>
-</span><span id="L-4101"><a href="#L-4101"><span class="linenos">4101</span></a>
-</span><span id="L-4102"><a href="#L-4102"><span class="linenos">4102</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-4103"><a href="#L-4103"><span class="linenos">4103</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4104"><a href="#L-4104"><span class="linenos">4104</span></a>
-</span><span id="L-4105"><a href="#L-4105"><span class="linenos">4105</span></a>
-</span><span id="L-4106"><a href="#L-4106"><span class="linenos">4106</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-4107"><a href="#L-4107"><span class="linenos">4107</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4101"><a href="#L-4101"><span class="linenos">4101</span></a><span class="k">class</span> <span class="nc">Paren</span><span class="p">(</span><span class="n">Unary</span><span class="p">):</span>
+</span><span id="L-4102"><a href="#L-4102"><span class="linenos">4102</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4103"><a href="#L-4103"><span class="linenos">4103</span></a>
+</span><span id="L-4104"><a href="#L-4104"><span class="linenos">4104</span></a> <span class="nd">@property</span>
+</span><span id="L-4105"><a href="#L-4105"><span class="linenos">4105</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-4106"><a href="#L-4106"><span class="linenos">4106</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-4107"><a href="#L-4107"><span class="linenos">4107</span></a>
</span><span id="L-4108"><a href="#L-4108"><span class="linenos">4108</span></a>
-</span><span id="L-4109"><a href="#L-4109"><span class="linenos">4109</span></a>
-</span><span id="L-4110"><a href="#L-4110"><span class="linenos">4110</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-4111"><a href="#L-4111"><span class="linenos">4111</span></a> <span class="c1"># https://cloud.google.com/bigquery/docs/reference/standard-sql/operators#array_subscript_operator</span>
-</span><span id="L-4112"><a href="#L-4112"><span class="linenos">4112</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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;offset&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;safe&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-4113"><a href="#L-4113"><span class="linenos">4113</span></a>
-</span><span id="L-4114"><a href="#L-4114"><span class="linenos">4114</span></a> <span class="nd">@property</span>
-</span><span id="L-4115"><a href="#L-4115"><span class="linenos">4115</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-4116"><a href="#L-4116"><span class="linenos">4116</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
-</span><span id="L-4117"><a href="#L-4117"><span class="linenos">4117</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">output_name</span>
-</span><span id="L-4118"><a href="#L-4118"><span class="linenos">4118</span></a>
-</span><span id="L-4119"><a href="#L-4119"><span class="linenos">4119</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">output_name</span>
+</span><span id="L-4109"><a href="#L-4109"><span class="linenos">4109</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-4110"><a href="#L-4110"><span class="linenos">4110</span></a> <span class="k">pass</span>
+</span><span id="L-4111"><a href="#L-4111"><span class="linenos">4111</span></a>
+</span><span id="L-4112"><a href="#L-4112"><span class="linenos">4112</span></a>
+</span><span id="L-4113"><a href="#L-4113"><span class="linenos">4113</span></a><span class="k">class</span> <span class="nc">Alias</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-4114"><a href="#L-4114"><span class="linenos">4114</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4115"><a href="#L-4115"><span class="linenos">4115</span></a>
+</span><span id="L-4116"><a href="#L-4116"><span class="linenos">4116</span></a> <span class="nd">@property</span>
+</span><span id="L-4117"><a href="#L-4117"><span class="linenos">4117</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-4118"><a href="#L-4118"><span class="linenos">4118</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-4119"><a href="#L-4119"><span class="linenos">4119</span></a>
</span><span id="L-4120"><a href="#L-4120"><span class="linenos">4120</span></a>
-</span><span id="L-4121"><a href="#L-4121"><span class="linenos">4121</span></a>
-</span><span id="L-4122"><a href="#L-4122"><span class="linenos">4122</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-4123"><a href="#L-4123"><span class="linenos">4123</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-4124"><a href="#L-4124"><span class="linenos">4124</span></a>
+</span><span id="L-4121"><a href="#L-4121"><span class="linenos">4121</span></a><span class="c1"># BigQuery requires the UNPIVOT column list aliases to be either strings or ints, but</span>
+</span><span id="L-4122"><a href="#L-4122"><span class="linenos">4122</span></a><span class="c1"># other dialects require identifiers. This enables us to transpile between them easily.</span>
+</span><span id="L-4123"><a href="#L-4123"><span class="linenos">4123</span></a><span class="k">class</span> <span class="nc">PivotAlias</span><span class="p">(</span><span class="n">Alias</span><span class="p">):</span>
+</span><span id="L-4124"><a href="#L-4124"><span class="linenos">4124</span></a> <span class="k">pass</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="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-4127"><a href="#L-4127"><span class="linenos">4127</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-4128"><a href="#L-4128"><span class="linenos">4128</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-4129"><a href="#L-4129"><span class="linenos">4129</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-4130"><a href="#L-4130"><span class="linenos">4130</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-4131"><a href="#L-4131"><span class="linenos">4131</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-4132"><a href="#L-4132"><span class="linenos">4132</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-4133"><a href="#L-4133"><span class="linenos">4133</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-4134"><a href="#L-4134"><span class="linenos">4134</span></a> <span class="p">}</span>
-</span><span id="L-4135"><a href="#L-4135"><span class="linenos">4135</span></a>
-</span><span id="L-4136"><a href="#L-4136"><span class="linenos">4136</span></a>
-</span><span id="L-4137"><a href="#L-4137"><span class="linenos">4137</span></a><span class="c1"># https://cloud.google.com/bigquery/docs/reference/standard-sql/procedural-language#for-in</span>
-</span><span id="L-4138"><a href="#L-4138"><span class="linenos">4138</span></a><span class="k">class</span> <span class="nc">ForIn</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-4139"><a href="#L-4139"><span class="linenos">4139</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-4140"><a href="#L-4140"><span class="linenos">4140</span></a>
-</span><span id="L-4141"><a href="#L-4141"><span class="linenos">4141</span></a>
-</span><span id="L-4142"><a href="#L-4142"><span class="linenos">4142</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-4143"><a href="#L-4143"><span class="linenos">4143</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-4144"><a href="#L-4144"><span class="linenos">4144</span></a>
-</span><span id="L-4145"><a href="#L-4145"><span class="linenos">4145</span></a> <span class="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-4126"><a href="#L-4126"><span class="linenos">4126</span></a>
+</span><span id="L-4127"><a href="#L-4127"><span class="linenos">4127</span></a><span class="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-4128"><a href="#L-4128"><span class="linenos">4128</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-4129"><a href="#L-4129"><span class="linenos">4129</span></a>
+</span><span id="L-4130"><a href="#L-4130"><span class="linenos">4130</span></a> <span class="nd">@property</span>
+</span><span id="L-4131"><a href="#L-4131"><span class="linenos">4131</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-4132"><a href="#L-4132"><span class="linenos">4132</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-4133"><a href="#L-4133"><span class="linenos">4133</span></a>
+</span><span id="L-4134"><a href="#L-4134"><span class="linenos">4134</span></a>
+</span><span id="L-4135"><a href="#L-4135"><span class="linenos">4135</span></a><span class="c1"># https://docs.aws.amazon.com/redshift/latest/dg/query-super.html</span>
+</span><span id="L-4136"><a href="#L-4136"><span class="linenos">4136</span></a><span class="k">class</span> <span class="nc">AtIndex</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-4137"><a href="#L-4137"><span class="linenos">4137</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-4138"><a href="#L-4138"><span class="linenos">4138</span></a>
+</span><span id="L-4139"><a href="#L-4139"><span class="linenos">4139</span></a>
+</span><span id="L-4140"><a href="#L-4140"><span class="linenos">4140</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-4141"><a href="#L-4141"><span class="linenos">4141</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-4142"><a href="#L-4142"><span class="linenos">4142</span></a>
+</span><span id="L-4143"><a href="#L-4143"><span class="linenos">4143</span></a>
+</span><span id="L-4144"><a href="#L-4144"><span class="linenos">4144</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-4145"><a href="#L-4145"><span class="linenos">4145</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4146"><a href="#L-4146"><span class="linenos">4146</span></a>
-</span><span id="L-4147"><a href="#L-4147"><span class="linenos">4147</span></a> <span class="n">UNABBREVIATED_UNIT_NAME</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-4148"><a href="#L-4148"><span class="linenos">4148</span></a> <span class="s2">&quot;d&quot;</span><span class="p">:</span> <span class="s2">&quot;day&quot;</span><span class="p">,</span>
-</span><span id="L-4149"><a href="#L-4149"><span class="linenos">4149</span></a> <span class="s2">&quot;h&quot;</span><span class="p">:</span> <span class="s2">&quot;hour&quot;</span><span class="p">,</span>
-</span><span id="L-4150"><a href="#L-4150"><span class="linenos">4150</span></a> <span class="s2">&quot;m&quot;</span><span class="p">:</span> <span class="s2">&quot;minute&quot;</span><span class="p">,</span>
-</span><span id="L-4151"><a href="#L-4151"><span class="linenos">4151</span></a> <span class="s2">&quot;ms&quot;</span><span class="p">:</span> <span class="s2">&quot;millisecond&quot;</span><span class="p">,</span>
-</span><span id="L-4152"><a href="#L-4152"><span class="linenos">4152</span></a> <span class="s2">&quot;ns&quot;</span><span class="p">:</span> <span class="s2">&quot;nanosecond&quot;</span><span class="p">,</span>
-</span><span id="L-4153"><a href="#L-4153"><span class="linenos">4153</span></a> <span class="s2">&quot;q&quot;</span><span class="p">:</span> <span class="s2">&quot;quarter&quot;</span><span class="p">,</span>
-</span><span id="L-4154"><a href="#L-4154"><span class="linenos">4154</span></a> <span class="s2">&quot;s&quot;</span><span class="p">:</span> <span class="s2">&quot;second&quot;</span><span class="p">,</span>
-</span><span id="L-4155"><a href="#L-4155"><span class="linenos">4155</span></a> <span class="s2">&quot;us&quot;</span><span class="p">:</span> <span class="s2">&quot;microsecond&quot;</span><span class="p">,</span>
-</span><span id="L-4156"><a href="#L-4156"><span class="linenos">4156</span></a> <span class="s2">&quot;w&quot;</span><span class="p">:</span> <span class="s2">&quot;week&quot;</span><span class="p">,</span>
-</span><span id="L-4157"><a href="#L-4157"><span class="linenos">4157</span></a> <span class="s2">&quot;y&quot;</span><span class="p">:</span> <span class="s2">&quot;year&quot;</span><span class="p">,</span>
-</span><span id="L-4158"><a href="#L-4158"><span class="linenos">4158</span></a> <span class="p">}</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="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-4149"><a href="#L-4149"><span class="linenos">4149</span></a> <span class="c1"># https://cloud.google.com/bigquery/docs/reference/standard-sql/operators#array_subscript_operator</span>
+</span><span id="L-4150"><a href="#L-4150"><span class="linenos">4150</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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;offset&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;safe&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4151"><a href="#L-4151"><span class="linenos">4151</span></a>
+</span><span id="L-4152"><a href="#L-4152"><span class="linenos">4152</span></a> <span class="nd">@property</span>
+</span><span id="L-4153"><a href="#L-4153"><span class="linenos">4153</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-4154"><a href="#L-4154"><span class="linenos">4154</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
+</span><span id="L-4155"><a href="#L-4155"><span class="linenos">4155</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">output_name</span>
+</span><span id="L-4156"><a href="#L-4156"><span class="linenos">4156</span></a>
+</span><span id="L-4157"><a href="#L-4157"><span class="linenos">4157</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">output_name</span>
+</span><span id="L-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="n">VAR_LIKE</span> <span class="o">=</span> <span class="p">(</span><span class="n">Column</span><span class="p">,</span> <span class="n">Literal</span><span class="p">,</span> <span class="n">Var</span><span class="p">)</span>
-</span><span id="L-4161"><a href="#L-4161"><span class="linenos">4161</span></a>
-</span><span id="L-4162"><a href="#L-4162"><span class="linenos">4162</span></a> <span 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-4163"><a href="#L-4163"><span class="linenos">4163</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-4164"><a href="#L-4164"><span class="linenos">4164</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">unit</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">VAR_LIKE</span><span class="p">):</span>
-</span><span id="L-4165"><a href="#L-4165"><span class="linenos">4165</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="bp">self</span><span class="o">.</span><span class="n">UNABBREVIATED_UNIT_NAME</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> <span class="ow">or</span> <span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
-</span><span id="L-4166"><a href="#L-4166"><span class="linenos">4166</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-4167"><a href="#L-4167"><span class="linenos">4167</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-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="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-4170"><a href="#L-4170"><span class="linenos">4170</span></a>
-</span><span id="L-4171"><a href="#L-4171"><span class="linenos">4171</span></a> <span class="nd">@property</span>
-</span><span id="L-4172"><a href="#L-4172"><span class="linenos">4172</span></a> <span class="k">def</span> <span class="nf">unit</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Var</span><span class="p">]:</span>
-</span><span id="L-4173"><a href="#L-4173"><span class="linenos">4173</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;unit&quot;</span><span class="p">)</span>
+</span><span id="L-4160"><a href="#L-4160"><span class="linenos">4160</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-4161"><a href="#L-4161"><span class="linenos">4161</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-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">class</span> <span class="nc">In</span><span class="p">(</span><span class="n">Predicate</span><span class="p">):</span>
+</span><span id="L-4165"><a href="#L-4165"><span class="linenos">4165</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-4166"><a href="#L-4166"><span class="linenos">4166</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-4167"><a href="#L-4167"><span class="linenos">4167</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-4168"><a href="#L-4168"><span class="linenos">4168</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-4169"><a href="#L-4169"><span class="linenos">4169</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-4170"><a href="#L-4170"><span class="linenos">4170</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-4171"><a href="#L-4171"><span class="linenos">4171</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-4172"><a href="#L-4172"><span class="linenos">4172</span></a> <span class="p">}</span>
+</span><span id="L-4173"><a href="#L-4173"><span class="linenos">4173</span></a>
</span><span id="L-4174"><a href="#L-4174"><span class="linenos">4174</span></a>
-</span><span id="L-4175"><a href="#L-4175"><span class="linenos">4175</span></a>
-</span><span id="L-4176"><a href="#L-4176"><span class="linenos">4176</span></a><span class="k">class</span> <span class="nc">IntervalOp</span><span class="p">(</span><span class="n">TimeUnit</span><span class="p">):</span>
-</span><span id="L-4177"><a href="#L-4177"><span class="linenos">4177</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-4175"><a href="#L-4175"><span class="linenos">4175</span></a><span class="c1"># https://cloud.google.com/bigquery/docs/reference/standard-sql/procedural-language#for-in</span>
+</span><span id="L-4176"><a href="#L-4176"><span class="linenos">4176</span></a><span class="k">class</span> <span class="nc">ForIn</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-4177"><a href="#L-4177"><span class="linenos">4177</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-4178"><a href="#L-4178"><span class="linenos">4178</span></a>
-</span><span id="L-4179"><a href="#L-4179"><span class="linenos">4179</span></a> <span class="k">def</span> <span class="nf">interval</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-4180"><a href="#L-4180"><span class="linenos">4180</span></a> <span class="k">return</span> <span class="n">Interval</span><span class="p">(</span>
-</span><span id="L-4181"><a href="#L-4181"><span class="linenos">4181</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span>
-</span><span id="L-4182"><a href="#L-4182"><span class="linenos">4182</span></a> <span class="n">unit</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">unit</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span>
-</span><span id="L-4183"><a href="#L-4183"><span class="linenos">4183</span></a> <span class="p">)</span>
+</span><span id="L-4179"><a href="#L-4179"><span class="linenos">4179</span></a>
+</span><span id="L-4180"><a href="#L-4180"><span class="linenos">4180</span></a><span 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-4181"><a href="#L-4181"><span class="linenos">4181</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-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">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-4184"><a href="#L-4184"><span class="linenos">4184</span></a>
-</span><span id="L-4185"><a href="#L-4185"><span class="linenos">4185</span></a>
-</span><span id="L-4186"><a href="#L-4186"><span class="linenos">4186</span></a><span class="c1"># https://www.oracletutorial.com/oracle-basics/oracle-interval/</span>
-</span><span id="L-4187"><a href="#L-4187"><span class="linenos">4187</span></a><span class="c1"># https://trino.io/docs/current/language/types.html#interval-day-to-second</span>
-</span><span id="L-4188"><a href="#L-4188"><span class="linenos">4188</span></a><span class="c1"># https://docs.databricks.com/en/sql/language-manual/data-types/interval-type.html</span>
-</span><span id="L-4189"><a href="#L-4189"><span class="linenos">4189</span></a><span class="k">class</span> <span class="nc">IntervalSpan</span><span class="p">(</span><span class="n">DataType</span><span class="p">):</span>
-</span><span id="L-4190"><a href="#L-4190"><span class="linenos">4190</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-4191"><a href="#L-4191"><span class="linenos">4191</span></a>
-</span><span id="L-4192"><a href="#L-4192"><span class="linenos">4192</span></a>
-</span><span id="L-4193"><a href="#L-4193"><span class="linenos">4193</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-4194"><a href="#L-4194"><span class="linenos">4194</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-4195"><a href="#L-4195"><span class="linenos">4195</span></a>
-</span><span id="L-4196"><a href="#L-4196"><span class="linenos">4196</span></a>
-</span><span id="L-4197"><a href="#L-4197"><span class="linenos">4197</span></a><span class="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-4198"><a href="#L-4198"><span class="linenos">4198</span></a> <span class="k">pass</span>
+</span><span id="L-4185"><a href="#L-4185"><span class="linenos">4185</span></a> <span class="n">UNABBREVIATED_UNIT_NAME</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-4186"><a href="#L-4186"><span class="linenos">4186</span></a> <span class="s2">&quot;D&quot;</span><span class="p">:</span> <span class="s2">&quot;DAY&quot;</span><span class="p">,</span>
+</span><span id="L-4187"><a href="#L-4187"><span class="linenos">4187</span></a> <span class="s2">&quot;H&quot;</span><span class="p">:</span> <span class="s2">&quot;HOUR&quot;</span><span class="p">,</span>
+</span><span id="L-4188"><a href="#L-4188"><span class="linenos">4188</span></a> <span class="s2">&quot;M&quot;</span><span class="p">:</span> <span class="s2">&quot;MINUTE&quot;</span><span class="p">,</span>
+</span><span id="L-4189"><a href="#L-4189"><span class="linenos">4189</span></a> <span class="s2">&quot;MS&quot;</span><span class="p">:</span> <span class="s2">&quot;MILLISECOND&quot;</span><span class="p">,</span>
+</span><span id="L-4190"><a href="#L-4190"><span class="linenos">4190</span></a> <span class="s2">&quot;NS&quot;</span><span class="p">:</span> <span class="s2">&quot;NANOSECOND&quot;</span><span class="p">,</span>
+</span><span id="L-4191"><a href="#L-4191"><span class="linenos">4191</span></a> <span class="s2">&quot;Q&quot;</span><span class="p">:</span> <span class="s2">&quot;QUARTER&quot;</span><span class="p">,</span>
+</span><span id="L-4192"><a href="#L-4192"><span class="linenos">4192</span></a> <span class="s2">&quot;S&quot;</span><span class="p">:</span> <span class="s2">&quot;SECOND&quot;</span><span class="p">,</span>
+</span><span id="L-4193"><a href="#L-4193"><span class="linenos">4193</span></a> <span class="s2">&quot;US&quot;</span><span class="p">:</span> <span class="s2">&quot;MICROSECOND&quot;</span><span class="p">,</span>
+</span><span id="L-4194"><a href="#L-4194"><span class="linenos">4194</span></a> <span class="s2">&quot;W&quot;</span><span class="p">:</span> <span class="s2">&quot;WEEK&quot;</span><span class="p">,</span>
+</span><span id="L-4195"><a href="#L-4195"><span class="linenos">4195</span></a> <span class="s2">&quot;Y&quot;</span><span class="p">:</span> <span class="s2">&quot;YEAR&quot;</span><span class="p">,</span>
+</span><span id="L-4196"><a href="#L-4196"><span class="linenos">4196</span></a> <span class="p">}</span>
+</span><span id="L-4197"><a href="#L-4197"><span class="linenos">4197</span></a>
+</span><span id="L-4198"><a href="#L-4198"><span class="linenos">4198</span></a> <span class="n">VAR_LIKE</span> <span class="o">=</span> <span class="p">(</span><span class="n">Column</span><span class="p">,</span> <span class="n">Literal</span><span class="p">,</span> <span class="n">Var</span><span class="p">)</span>
</span><span id="L-4199"><a href="#L-4199"><span class="linenos">4199</span></a>
-</span><span id="L-4200"><a href="#L-4200"><span class="linenos">4200</span></a>
-</span><span id="L-4201"><a href="#L-4201"><span class="linenos">4201</span></a><span 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-4202"><a href="#L-4202"><span class="linenos">4202</span></a> <span class="k">pass</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="c1"># Functions</span>
-</span><span id="L-4206"><a href="#L-4206"><span class="linenos">4206</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-4207"><a href="#L-4207"><span class="linenos">4207</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4208"><a href="#L-4208"><span class="linenos">4208</span></a><span class="sd"> The base class for all function expressions.</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 class="sd"> Attributes:</span>
-</span><span id="L-4211"><a href="#L-4211"><span class="linenos">4211</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-4212"><a href="#L-4212"><span class="linenos">4212</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-4213"><a href="#L-4213"><span class="linenos">4213</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-4214"><a href="#L-4214"><span class="linenos">4214</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-4215"><a href="#L-4215"><span class="linenos">4215</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-4216"><a href="#L-4216"><span class="linenos">4216</span></a><span class="sd"> name is set to the expression&#39;s class name transformed to snake case.</span>
-</span><span id="L-4217"><a href="#L-4217"><span class="linenos">4217</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4200"><a href="#L-4200"><span class="linenos">4200</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-4201"><a href="#L-4201"><span class="linenos">4201</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-4202"><a href="#L-4202"><span class="linenos">4202</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">unit</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">VAR_LIKE</span><span class="p">):</span>
+</span><span id="L-4203"><a href="#L-4203"><span class="linenos">4203</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">&quot;unit&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">Var</span><span class="p">(</span>
+</span><span id="L-4204"><a href="#L-4204"><span class="linenos">4204</span></a> <span class="n">this</span><span class="o">=</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">UNABBREVIATED_UNIT_NAME</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> <span class="ow">or</span> <span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
+</span><span id="L-4205"><a href="#L-4205"><span class="linenos">4205</span></a> <span class="p">)</span>
+</span><span id="L-4206"><a href="#L-4206"><span class="linenos">4206</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-4207"><a href="#L-4207"><span class="linenos">4207</span></a> <span class="n">unit</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;this&quot;</span><span class="p">,</span> <span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">unit</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()))</span>
+</span><span id="L-4208"><a href="#L-4208"><span class="linenos">4208</span></a>
+</span><span id="L-4209"><a href="#L-4209"><span class="linenos">4209</span></a> <span 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-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="nd">@property</span>
+</span><span id="L-4212"><a href="#L-4212"><span class="linenos">4212</span></a> <span class="k">def</span> <span class="nf">unit</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Var</span><span class="p">]:</span>
+</span><span id="L-4213"><a href="#L-4213"><span class="linenos">4213</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;unit&quot;</span><span class="p">)</span>
+</span><span id="L-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><span id="L-4216"><a href="#L-4216"><span class="linenos">4216</span></a><span class="k">class</span> <span class="nc">IntervalOp</span><span class="p">(</span><span class="n">TimeUnit</span><span class="p">):</span>
+</span><span id="L-4217"><a href="#L-4217"><span class="linenos">4217</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-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="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">False</span>
-</span><span id="L-4220"><a href="#L-4220"><span class="linenos">4220</span></a>
-</span><span id="L-4221"><a href="#L-4221"><span class="linenos">4221</span></a> <span class="nd">@classmethod</span>
-</span><span id="L-4222"><a href="#L-4222"><span class="linenos">4222</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-4223"><a href="#L-4223"><span class="linenos">4223</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-4224"><a href="#L-4224"><span class="linenos">4224</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-4225"><a href="#L-4225"><span class="linenos">4225</span></a> <span class="c1"># If this function supports variable length argument treat the last argument as such.</span>
-</span><span id="L-4226"><a href="#L-4226"><span class="linenos">4226</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-4227"><a href="#L-4227"><span class="linenos">4227</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-4228"><a href="#L-4228"><span class="linenos">4228</span></a>
-</span><span id="L-4229"><a href="#L-4229"><span class="linenos">4229</span></a> <span 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-4230"><a href="#L-4230"><span class="linenos">4230</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-4231"><a href="#L-4231"><span class="linenos">4231</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-4232"><a href="#L-4232"><span class="linenos">4232</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-4233"><a href="#L-4233"><span class="linenos">4233</span></a>
-</span><span id="L-4234"><a href="#L-4234"><span class="linenos">4234</span></a> <span class="k">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-4219"><a href="#L-4219"><span class="linenos">4219</span></a> <span class="k">def</span> <span class="nf">interval</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="L-4220"><a href="#L-4220"><span class="linenos">4220</span></a> <span class="k">return</span> <span class="n">Interval</span><span class="p">(</span>
+</span><span id="L-4221"><a href="#L-4221"><span class="linenos">4221</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span>
+</span><span id="L-4222"><a href="#L-4222"><span class="linenos">4222</span></a> <span class="n">unit</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">unit</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span>
+</span><span id="L-4223"><a href="#L-4223"><span class="linenos">4223</span></a> <span class="p">)</span>
+</span><span id="L-4224"><a href="#L-4224"><span class="linenos">4224</span></a>
+</span><span id="L-4225"><a href="#L-4225"><span class="linenos">4225</span></a>
+</span><span id="L-4226"><a href="#L-4226"><span class="linenos">4226</span></a><span class="c1"># https://www.oracletutorial.com/oracle-basics/oracle-interval/</span>
+</span><span id="L-4227"><a href="#L-4227"><span class="linenos">4227</span></a><span class="c1"># https://trino.io/docs/current/language/types.html#interval-day-to-second</span>
+</span><span id="L-4228"><a href="#L-4228"><span class="linenos">4228</span></a><span class="c1"># https://docs.databricks.com/en/sql/language-manual/data-types/interval-type.html</span>
+</span><span id="L-4229"><a href="#L-4229"><span class="linenos">4229</span></a><span class="k">class</span> <span class="nc">IntervalSpan</span><span class="p">(</span><span class="n">DataType</span><span class="p">):</span>
+</span><span id="L-4230"><a href="#L-4230"><span class="linenos">4230</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-4231"><a href="#L-4231"><span class="linenos">4231</span></a>
+</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">class</span> <span class="nc">Interval</span><span class="p">(</span><span class="n">TimeUnit</span><span class="p">):</span>
+</span><span id="L-4234"><a href="#L-4234"><span class="linenos">4234</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-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="nd">@classmethod</span>
-</span><span id="L-4237"><a href="#L-4237"><span class="linenos">4237</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-4238"><a href="#L-4238"><span class="linenos">4238</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-4239"><a href="#L-4239"><span class="linenos">4239</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span>
-</span><span id="L-4240"><a href="#L-4240"><span class="linenos">4240</span></a> <span class="s2">&quot;SQL name is only supported by concrete function implementations&quot;</span>
-</span><span id="L-4241"><a href="#L-4241"><span class="linenos">4241</span></a> <span class="p">)</span>
-</span><span id="L-4242"><a href="#L-4242"><span class="linenos">4242</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-4243"><a href="#L-4243"><span class="linenos">4243</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-4244"><a href="#L-4244"><span class="linenos">4244</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-4245"><a href="#L-4245"><span class="linenos">4245</span></a>
-</span><span id="L-4246"><a href="#L-4246"><span class="linenos">4246</span></a> <span class="nd">@classmethod</span>
-</span><span id="L-4247"><a href="#L-4247"><span class="linenos">4247</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-4248"><a href="#L-4248"><span class="linenos">4248</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-4236"><a href="#L-4236"><span class="linenos">4236</span></a>
+</span><span id="L-4237"><a href="#L-4237"><span class="linenos">4237</span></a><span class="k">class</span> <span class="nc">IgnoreNulls</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-4238"><a href="#L-4238"><span class="linenos">4238</span></a> <span class="k">pass</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><span id="L-4241"><a href="#L-4241"><span class="linenos">4241</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-4242"><a href="#L-4242"><span class="linenos">4242</span></a> <span class="k">pass</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><span id="L-4245"><a href="#L-4245"><span class="linenos">4245</span></a><span class="c1"># Functions</span>
+</span><span id="L-4246"><a href="#L-4246"><span class="linenos">4246</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-4247"><a href="#L-4247"><span class="linenos">4247</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-4248"><a href="#L-4248"><span class="linenos">4248</span></a><span class="sd"> The base class for all function expressions.</span>
</span><span id="L-4249"><a href="#L-4249"><span class="linenos">4249</span></a>
-</span><span id="L-4250"><a href="#L-4250"><span class="linenos">4250</span></a> <span class="nd">@classmethod</span>
-</span><span id="L-4251"><a href="#L-4251"><span class="linenos">4251</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-4252"><a href="#L-4252"><span class="linenos">4252</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-4253"><a href="#L-4253"><span class="linenos">4253</span></a>
-</span><span id="L-4254"><a href="#L-4254"><span class="linenos">4254</span></a>
-</span><span id="L-4255"><a href="#L-4255"><span class="linenos">4255</span></a><span 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-4256"><a href="#L-4256"><span class="linenos">4256</span></a> <span class="k">pass</span>
-</span><span id="L-4257"><a href="#L-4257"><span class="linenos">4257</span></a>
+</span><span id="L-4250"><a href="#L-4250"><span class="linenos">4250</span></a><span class="sd"> Attributes:</span>
+</span><span id="L-4251"><a href="#L-4251"><span class="linenos">4251</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-4252"><a href="#L-4252"><span class="linenos">4252</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-4253"><a href="#L-4253"><span class="linenos">4253</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-4254"><a href="#L-4254"><span class="linenos">4254</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-4255"><a href="#L-4255"><span class="linenos">4255</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-4256"><a href="#L-4256"><span class="linenos">4256</span></a><span class="sd"> name is set to the expression&#39;s class name transformed to snake case.</span>
+</span><span id="L-4257"><a href="#L-4257"><span class="linenos">4257</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-4258"><a href="#L-4258"><span class="linenos">4258</span></a>
-</span><span id="L-4259"><a href="#L-4259"><span class="linenos">4259</span></a><span class="k">class</span> <span class="nc">ParameterizedAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-4260"><a href="#L-4260"><span class="linenos">4260</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;params&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-4261"><a href="#L-4261"><span class="linenos">4261</span></a>
-</span><span id="L-4262"><a href="#L-4262"><span class="linenos">4262</span></a>
-</span><span id="L-4263"><a href="#L-4263"><span class="linenos">4263</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-4264"><a href="#L-4264"><span class="linenos">4264</span></a> <span class="k">pass</span>
-</span><span id="L-4265"><a href="#L-4265"><span class="linenos">4265</span></a>
-</span><span id="L-4266"><a href="#L-4266"><span class="linenos">4266</span></a>
-</span><span id="L-4267"><a href="#L-4267"><span class="linenos">4267</span></a><span class="k">class</span> <span class="nc">ArgMax</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-4268"><a href="#L-4268"><span class="linenos">4268</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;count&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-4269"><a href="#L-4269"><span class="linenos">4269</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;ARG_MAX&quot;</span><span class="p">,</span> <span class="s2">&quot;ARGMAX&quot;</span><span class="p">,</span> <span class="s2">&quot;MAX_BY&quot;</span><span class="p">]</span>
-</span><span id="L-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><span id="L-4272"><a href="#L-4272"><span class="linenos">4272</span></a><span class="k">class</span> <span class="nc">ArgMin</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-4273"><a href="#L-4273"><span class="linenos">4273</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;count&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-4274"><a href="#L-4274"><span class="linenos">4274</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;ARG_MIN&quot;</span><span class="p">,</span> <span class="s2">&quot;ARGMIN&quot;</span><span class="p">,</span> <span class="s2">&quot;MIN_BY&quot;</span><span class="p">]</span>
+</span><span id="L-4259"><a href="#L-4259"><span class="linenos">4259</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">False</span>
+</span><span id="L-4260"><a href="#L-4260"><span class="linenos">4260</span></a>
+</span><span id="L-4261"><a href="#L-4261"><span class="linenos">4261</span></a> <span class="nd">@classmethod</span>
+</span><span id="L-4262"><a href="#L-4262"><span class="linenos">4262</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-4263"><a href="#L-4263"><span class="linenos">4263</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-4264"><a href="#L-4264"><span class="linenos">4264</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-4265"><a href="#L-4265"><span class="linenos">4265</span></a> <span class="c1"># If this function supports variable length argument treat the last argument as such.</span>
+</span><span id="L-4266"><a href="#L-4266"><span class="linenos">4266</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-4267"><a href="#L-4267"><span class="linenos">4267</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-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="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-4270"><a href="#L-4270"><span class="linenos">4270</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-4271"><a href="#L-4271"><span class="linenos">4271</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-4272"><a href="#L-4272"><span class="linenos">4272</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-4273"><a href="#L-4273"><span class="linenos">4273</span></a>
+</span><span id="L-4274"><a href="#L-4274"><span class="linenos">4274</span></a> <span class="k">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-4275"><a href="#L-4275"><span class="linenos">4275</span></a>
-</span><span id="L-4276"><a href="#L-4276"><span class="linenos">4276</span></a>
-</span><span id="L-4277"><a href="#L-4277"><span class="linenos">4277</span></a><span class="k">class</span> <span class="nc">ApproxTopK</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-4278"><a href="#L-4278"><span class="linenos">4278</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;counters&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-4279"><a href="#L-4279"><span class="linenos">4279</span></a>
-</span><span id="L-4280"><a href="#L-4280"><span class="linenos">4280</span></a>
-</span><span id="L-4281"><a href="#L-4281"><span class="linenos">4281</span></a><span class="k">class</span> <span class="nc">Flatten</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4282"><a href="#L-4282"><span class="linenos">4282</span></a> <span class="k">pass</span>
-</span><span id="L-4283"><a href="#L-4283"><span class="linenos">4283</span></a>
-</span><span id="L-4284"><a href="#L-4284"><span class="linenos">4284</span></a>
-</span><span id="L-4285"><a href="#L-4285"><span class="linenos">4285</span></a><span class="c1"># https://spark.apache.org/docs/latest/api/sql/index.html#transform</span>
-</span><span id="L-4286"><a href="#L-4286"><span class="linenos">4286</span></a><span class="k">class</span> <span class="nc">Transform</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4287"><a href="#L-4287"><span class="linenos">4287</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-4288"><a href="#L-4288"><span class="linenos">4288</span></a>
+</span><span id="L-4276"><a href="#L-4276"><span class="linenos">4276</span></a> <span class="nd">@classmethod</span>
+</span><span id="L-4277"><a href="#L-4277"><span class="linenos">4277</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-4278"><a href="#L-4278"><span class="linenos">4278</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-4279"><a href="#L-4279"><span class="linenos">4279</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span>
+</span><span id="L-4280"><a href="#L-4280"><span class="linenos">4280</span></a> <span class="s2">&quot;SQL name is only supported by concrete function implementations&quot;</span>
+</span><span id="L-4281"><a href="#L-4281"><span class="linenos">4281</span></a> <span class="p">)</span>
+</span><span id="L-4282"><a href="#L-4282"><span class="linenos">4282</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-4283"><a href="#L-4283"><span class="linenos">4283</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-4284"><a href="#L-4284"><span class="linenos">4284</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-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="nd">@classmethod</span>
+</span><span id="L-4287"><a href="#L-4287"><span class="linenos">4287</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-4288"><a href="#L-4288"><span class="linenos">4288</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-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="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-4291"><a href="#L-4291"><span class="linenos">4291</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4292"><a href="#L-4292"><span class="linenos">4292</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-4290"><a href="#L-4290"><span class="linenos">4290</span></a> <span class="nd">@classmethod</span>
+</span><span id="L-4291"><a href="#L-4291"><span class="linenos">4291</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-4292"><a href="#L-4292"><span class="linenos">4292</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-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><span id="L-4295"><a href="#L-4295"><span class="linenos">4295</span></a><span class="c1"># https://docs.snowflake.com/en/sql-reference/functions/hll</span>
-</span><span id="L-4296"><a href="#L-4296"><span class="linenos">4296</span></a><span class="c1"># https://docs.aws.amazon.com/redshift/latest/dg/r_HLL_function.html</span>
-</span><span id="L-4297"><a href="#L-4297"><span class="linenos">4297</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-4298"><a href="#L-4298"><span class="linenos">4298</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4299"><a href="#L-4299"><span class="linenos">4299</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-4300"><a href="#L-4300"><span class="linenos">4300</span></a>
+</span><span id="L-4295"><a href="#L-4295"><span class="linenos">4295</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-4296"><a href="#L-4296"><span class="linenos">4296</span></a> <span class="k">pass</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">class</span> <span class="nc">ParameterizedAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-4300"><a href="#L-4300"><span class="linenos">4300</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;params&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-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="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-4303"><a href="#L-4303"><span class="linenos">4303</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4304"><a href="#L-4304"><span class="linenos">4304</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;APPROX_DISTINCT&quot;</span><span class="p">,</span> <span class="s2">&quot;APPROX_COUNT_DISTINCT&quot;</span><span class="p">]</span>
+</span><span id="L-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="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-4304"><a href="#L-4304"><span class="linenos">4304</span></a> <span class="k">pass</span>
</span><span id="L-4305"><a href="#L-4305"><span class="linenos">4305</span></a>
</span><span id="L-4306"><a href="#L-4306"><span class="linenos">4306</span></a>
-</span><span id="L-4307"><a href="#L-4307"><span class="linenos">4307</span></a><span class="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-4308"><a href="#L-4308"><span class="linenos">4308</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-4309"><a href="#L-4309"><span class="linenos">4309</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-4307"><a href="#L-4307"><span class="linenos">4307</span></a><span class="k">class</span> <span class="nc">ArgMax</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-4308"><a href="#L-4308"><span class="linenos">4308</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;count&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4309"><a href="#L-4309"><span class="linenos">4309</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;ARG_MAX&quot;</span><span class="p">,</span> <span class="s2">&quot;ARGMAX&quot;</span><span class="p">,</span> <span class="s2">&quot;MAX_BY&quot;</span><span class="p">]</span>
</span><span id="L-4310"><a href="#L-4310"><span class="linenos">4310</span></a>
</span><span id="L-4311"><a href="#L-4311"><span class="linenos">4311</span></a>
-</span><span id="L-4312"><a href="#L-4312"><span class="linenos">4312</span></a><span class="c1"># https://docs.snowflake.com/en/sql-reference/functions/to_char</span>
-</span><span id="L-4313"><a href="#L-4313"><span class="linenos">4313</span></a><span class="c1"># https://docs.oracle.com/en/database/oracle/oracle-database/23/sqlrf/TO_CHAR-number.html</span>
-</span><span id="L-4314"><a href="#L-4314"><span class="linenos">4314</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-4315"><a href="#L-4315"><span class="linenos">4315</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;nlsparam&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4312"><a href="#L-4312"><span class="linenos">4312</span></a><span class="k">class</span> <span class="nc">ArgMin</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-4313"><a href="#L-4313"><span class="linenos">4313</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;count&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4314"><a href="#L-4314"><span class="linenos">4314</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;ARG_MIN&quot;</span><span class="p">,</span> <span class="s2">&quot;ARGMIN&quot;</span><span class="p">,</span> <span class="s2">&quot;MIN_BY&quot;</span><span class="p">]</span>
+</span><span id="L-4315"><a href="#L-4315"><span class="linenos">4315</span></a>
</span><span id="L-4316"><a href="#L-4316"><span class="linenos">4316</span></a>
-</span><span id="L-4317"><a href="#L-4317"><span class="linenos">4317</span></a>
-</span><span id="L-4318"><a href="#L-4318"><span class="linenos">4318</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-4319"><a href="#L-4319"><span class="linenos">4319</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-4317"><a href="#L-4317"><span class="linenos">4317</span></a><span class="k">class</span> <span class="nc">ApproxTopK</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-4318"><a href="#L-4318"><span class="linenos">4318</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;counters&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4319"><a href="#L-4319"><span class="linenos">4319</span></a>
</span><span id="L-4320"><a href="#L-4320"><span class="linenos">4320</span></a>
-</span><span id="L-4321"><a href="#L-4321"><span class="linenos">4321</span></a>
-</span><span id="L-4322"><a href="#L-4322"><span class="linenos">4322</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-4323"><a href="#L-4323"><span class="linenos">4323</span></a> <span class="k">pass</span>
+</span><span id="L-4321"><a href="#L-4321"><span class="linenos">4321</span></a><span class="k">class</span> <span class="nc">Flatten</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4322"><a href="#L-4322"><span class="linenos">4322</span></a> <span class="k">pass</span>
+</span><span id="L-4323"><a href="#L-4323"><span class="linenos">4323</span></a>
</span><span id="L-4324"><a href="#L-4324"><span class="linenos">4324</span></a>
-</span><span id="L-4325"><a href="#L-4325"><span class="linenos">4325</span></a>
-</span><span id="L-4326"><a href="#L-4326"><span class="linenos">4326</span></a><span class="k">class</span> <span class="nc">ArrayUniqueAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-4327"><a href="#L-4327"><span class="linenos">4327</span></a> <span class="k">pass</span>
+</span><span id="L-4325"><a href="#L-4325"><span class="linenos">4325</span></a><span class="c1"># https://spark.apache.org/docs/latest/api/sql/index.html#transform</span>
+</span><span id="L-4326"><a href="#L-4326"><span class="linenos">4326</span></a><span class="k">class</span> <span class="nc">Transform</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4327"><a href="#L-4327"><span class="linenos">4327</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-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">class</span> <span class="nc">ArrayAll</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4331"><a href="#L-4331"><span class="linenos">4331</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-4332"><a href="#L-4332"><span class="linenos">4332</span></a>
+</span><span id="L-4330"><a href="#L-4330"><span class="linenos">4330</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-4331"><a href="#L-4331"><span class="linenos">4331</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4332"><a href="#L-4332"><span class="linenos">4332</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="L-4333"><a href="#L-4333"><span class="linenos">4333</span></a>
-</span><span id="L-4334"><a href="#L-4334"><span class="linenos">4334</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-4335"><a href="#L-4335"><span class="linenos">4335</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-4336"><a href="#L-4336"><span class="linenos">4336</span></a>
-</span><span id="L-4337"><a href="#L-4337"><span class="linenos">4337</span></a>
-</span><span id="L-4338"><a href="#L-4338"><span class="linenos">4338</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-4339"><a href="#L-4339"><span class="linenos">4339</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;ARRAY_CONCAT&quot;</span><span class="p">,</span> <span class="s2">&quot;ARRAY_CAT&quot;</span><span class="p">]</span>
-</span><span id="L-4340"><a href="#L-4340"><span class="linenos">4340</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4341"><a href="#L-4341"><span class="linenos">4341</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-4342"><a href="#L-4342"><span class="linenos">4342</span></a>
+</span><span id="L-4334"><a href="#L-4334"><span class="linenos">4334</span></a>
+</span><span id="L-4335"><a href="#L-4335"><span class="linenos">4335</span></a><span class="k">class</span> <span class="nc">AnonymousAggFunc</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-4336"><a href="#L-4336"><span class="linenos">4336</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4337"><a href="#L-4337"><span class="linenos">4337</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-4338"><a href="#L-4338"><span class="linenos">4338</span></a>
+</span><span id="L-4339"><a href="#L-4339"><span class="linenos">4339</span></a>
+</span><span id="L-4340"><a href="#L-4340"><span class="linenos">4340</span></a><span class="c1"># https://clickhouse.com/docs/en/sql-reference/aggregate-functions/combinators</span>
+</span><span id="L-4341"><a href="#L-4341"><span class="linenos">4341</span></a><span class="k">class</span> <span class="nc">CombinedAggFunc</span><span class="p">(</span><span class="n">AnonymousAggFunc</span><span class="p">):</span>
+</span><span id="L-4342"><a href="#L-4342"><span class="linenos">4342</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;parts&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-4343"><a href="#L-4343"><span class="linenos">4343</span></a>
-</span><span id="L-4344"><a href="#L-4344"><span class="linenos">4344</span></a><span class="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-4345"><a href="#L-4345"><span class="linenos">4345</span></a> <span class="k">pass</span>
-</span><span id="L-4346"><a href="#L-4346"><span class="linenos">4346</span></a>
+</span><span id="L-4344"><a href="#L-4344"><span class="linenos">4344</span></a>
+</span><span id="L-4345"><a href="#L-4345"><span class="linenos">4345</span></a><span class="k">class</span> <span class="nc">CombinedParameterizedAgg</span><span class="p">(</span><span class="n">ParameterizedAgg</span><span class="p">):</span>
+</span><span id="L-4346"><a href="#L-4346"><span class="linenos">4346</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;params&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;parts&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-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 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-4349"><a href="#L-4349"><span class="linenos">4349</span></a> <span class="k">pass</span>
-</span><span id="L-4350"><a href="#L-4350"><span class="linenos">4350</span></a>
-</span><span id="L-4351"><a href="#L-4351"><span class="linenos">4351</span></a>
-</span><span id="L-4352"><a href="#L-4352"><span class="linenos">4352</span></a><span class="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-4353"><a href="#L-4353"><span class="linenos">4353</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-4354"><a href="#L-4354"><span class="linenos">4354</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-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="c1"># https://docs.snowflake.com/en/sql-reference/functions/hll</span>
+</span><span id="L-4350"><a href="#L-4350"><span class="linenos">4350</span></a><span class="c1"># https://docs.aws.amazon.com/redshift/latest/dg/r_HLL_function.html</span>
+</span><span id="L-4351"><a href="#L-4351"><span class="linenos">4351</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-4352"><a href="#L-4352"><span class="linenos">4352</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4353"><a href="#L-4353"><span class="linenos">4353</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-4354"><a href="#L-4354"><span class="linenos">4354</span></a>
</span><span id="L-4355"><a href="#L-4355"><span class="linenos">4355</span></a>
-</span><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="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-4358"><a href="#L-4358"><span class="linenos">4358</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-4356"><a href="#L-4356"><span class="linenos">4356</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-4357"><a href="#L-4357"><span class="linenos">4357</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4358"><a href="#L-4358"><span class="linenos">4358</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;APPROX_DISTINCT&quot;</span><span class="p">,</span> <span class="s2">&quot;APPROX_COUNT_DISTINCT&quot;</span><span class="p">]</span>
</span><span id="L-4359"><a href="#L-4359"><span class="linenos">4359</span></a>
</span><span id="L-4360"><a href="#L-4360"><span class="linenos">4360</span></a>
-</span><span id="L-4361"><a href="#L-4361"><span class="linenos">4361</span></a><span 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-4362"><a href="#L-4362"><span class="linenos">4362</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-4363"><a href="#L-4363"><span class="linenos">4363</span></a>
+</span><span id="L-4361"><a href="#L-4361"><span class="linenos">4361</span></a><span class="k">class</span> <span class="nc">Array</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4362"><a href="#L-4362"><span class="linenos">4362</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-4363"><a href="#L-4363"><span class="linenos">4363</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="L-4364"><a href="#L-4364"><span class="linenos">4364</span></a>
-</span><span id="L-4365"><a href="#L-4365"><span class="linenos">4365</span></a><span 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-4366"><a href="#L-4366"><span class="linenos">4366</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-4367"><a href="#L-4367"><span class="linenos">4367</span></a>
-</span><span id="L-4368"><a href="#L-4368"><span class="linenos">4368</span></a>
-</span><span id="L-4369"><a href="#L-4369"><span class="linenos">4369</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-4370"><a href="#L-4370"><span class="linenos">4370</span></a> <span class="k">pass</span>
-</span><span id="L-4371"><a href="#L-4371"><span class="linenos">4371</span></a>
-</span><span id="L-4372"><a href="#L-4372"><span class="linenos">4372</span></a>
-</span><span id="L-4373"><a href="#L-4373"><span class="linenos">4373</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-4374"><a href="#L-4374"><span class="linenos">4374</span></a> <span class="k">pass</span>
+</span><span id="L-4365"><a href="#L-4365"><span class="linenos">4365</span></a>
+</span><span id="L-4366"><a href="#L-4366"><span class="linenos">4366</span></a><span class="c1"># https://docs.snowflake.com/en/sql-reference/functions/to_array</span>
+</span><span id="L-4367"><a href="#L-4367"><span class="linenos">4367</span></a><span class="k">class</span> <span class="nc">ToArray</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4368"><a href="#L-4368"><span class="linenos">4368</span></a> <span class="k">pass</span>
+</span><span id="L-4369"><a href="#L-4369"><span class="linenos">4369</span></a>
+</span><span id="L-4370"><a href="#L-4370"><span class="linenos">4370</span></a>
+</span><span id="L-4371"><a href="#L-4371"><span class="linenos">4371</span></a><span class="c1"># https://docs.snowflake.com/en/sql-reference/functions/to_char</span>
+</span><span id="L-4372"><a href="#L-4372"><span class="linenos">4372</span></a><span class="c1"># https://docs.oracle.com/en/database/oracle/oracle-database/23/sqlrf/TO_CHAR-number.html</span>
+</span><span id="L-4373"><a href="#L-4373"><span class="linenos">4373</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-4374"><a href="#L-4374"><span class="linenos">4374</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;nlsparam&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4375"><a href="#L-4375"><span class="linenos">4375</span></a>
</span><span id="L-4376"><a href="#L-4376"><span class="linenos">4376</span></a>
-</span><span id="L-4377"><a href="#L-4377"><span class="linenos">4377</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-4378"><a href="#L-4378"><span class="linenos">4378</span></a> <span class="k">pass</span>
+</span><span id="L-4377"><a href="#L-4377"><span class="linenos">4377</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-4378"><a href="#L-4378"><span class="linenos">4378</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-4379"><a href="#L-4379"><span class="linenos">4379</span></a>
</span><span id="L-4380"><a href="#L-4380"><span class="linenos">4380</span></a>
-</span><span id="L-4381"><a href="#L-4381"><span class="linenos">4381</span></a><span 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-4382"><a href="#L-4382"><span class="linenos">4382</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;having&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;max&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;ignore_nulls&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4381"><a href="#L-4381"><span class="linenos">4381</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-4382"><a href="#L-4382"><span class="linenos">4382</span></a> <span class="k">pass</span>
</span><span id="L-4383"><a href="#L-4383"><span class="linenos">4383</span></a>
</span><span id="L-4384"><a href="#L-4384"><span class="linenos">4384</span></a>
-</span><span id="L-4385"><a href="#L-4385"><span class="linenos">4385</span></a><span class="k">class</span> <span class="nc">First</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4386"><a href="#L-4386"><span class="linenos">4386</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;ignore_nulls&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4385"><a href="#L-4385"><span class="linenos">4385</span></a><span class="k">class</span> <span class="nc">ArrayUniqueAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-4386"><a href="#L-4386"><span class="linenos">4386</span></a> <span class="k">pass</span>
</span><span id="L-4387"><a href="#L-4387"><span class="linenos">4387</span></a>
</span><span id="L-4388"><a href="#L-4388"><span class="linenos">4388</span></a>
-</span><span id="L-4389"><a href="#L-4389"><span class="linenos">4389</span></a><span class="k">class</span> <span class="nc">Last</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4390"><a href="#L-4390"><span class="linenos">4390</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;ignore_nulls&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4389"><a href="#L-4389"><span class="linenos">4389</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-4390"><a href="#L-4390"><span class="linenos">4390</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-4391"><a href="#L-4391"><span class="linenos">4391</span></a>
</span><span id="L-4392"><a href="#L-4392"><span class="linenos">4392</span></a>
-</span><span id="L-4393"><a href="#L-4393"><span class="linenos">4393</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-4394"><a href="#L-4394"><span class="linenos">4394</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-4393"><a href="#L-4393"><span class="linenos">4393</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-4394"><a href="#L-4394"><span class="linenos">4394</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-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">when</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">condition</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">then</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Case</span><span class="p">:</span>
-</span><span id="L-4397"><a href="#L-4397"><span class="linenos">4397</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-4398"><a href="#L-4398"><span class="linenos">4398</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
-</span><span id="L-4399"><a href="#L-4399"><span class="linenos">4399</span></a> <span class="s2">&quot;ifs&quot;</span><span class="p">,</span>
-</span><span id="L-4400"><a href="#L-4400"><span class="linenos">4400</span></a> <span class="n">If</span><span class="p">(</span>
-</span><span id="L-4401"><a href="#L-4401"><span class="linenos">4401</span></a> <span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">condition</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
-</span><span id="L-4402"><a href="#L-4402"><span class="linenos">4402</span></a> <span class="n">true</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">then</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
-</span><span id="L-4403"><a href="#L-4403"><span class="linenos">4403</span></a> <span class="p">),</span>
-</span><span id="L-4404"><a href="#L-4404"><span class="linenos">4404</span></a> <span class="p">)</span>
-</span><span id="L-4405"><a href="#L-4405"><span class="linenos">4405</span></a> <span class="k">return</span> <span class="n">instance</span>
+</span><span id="L-4396"><a href="#L-4396"><span class="linenos">4396</span></a>
+</span><span id="L-4397"><a href="#L-4397"><span class="linenos">4397</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-4398"><a href="#L-4398"><span class="linenos">4398</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;ARRAY_CONCAT&quot;</span><span class="p">,</span> <span class="s2">&quot;ARRAY_CAT&quot;</span><span class="p">]</span>
+</span><span id="L-4399"><a href="#L-4399"><span class="linenos">4399</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4400"><a href="#L-4400"><span class="linenos">4400</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-4401"><a href="#L-4401"><span class="linenos">4401</span></a>
+</span><span id="L-4402"><a href="#L-4402"><span class="linenos">4402</span></a>
+</span><span id="L-4403"><a href="#L-4403"><span class="linenos">4403</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-4404"><a href="#L-4404"><span class="linenos">4404</span></a> <span class="k">pass</span>
+</span><span id="L-4405"><a href="#L-4405"><span class="linenos">4405</span></a>
</span><span id="L-4406"><a href="#L-4406"><span class="linenos">4406</span></a>
-</span><span id="L-4407"><a href="#L-4407"><span class="linenos">4407</span></a> <span class="k">def</span> <span class="nf">else_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">condition</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Case</span><span class="p">:</span>
-</span><span id="L-4408"><a href="#L-4408"><span class="linenos">4408</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-4409"><a href="#L-4409"><span class="linenos">4409</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;default&quot;</span><span class="p">,</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">condition</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
-</span><span id="L-4410"><a href="#L-4410"><span class="linenos">4410</span></a> <span class="k">return</span> <span class="n">instance</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><span id="L-4413"><a href="#L-4413"><span class="linenos">4413</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-4414"><a href="#L-4414"><span class="linenos">4414</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;to&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;safe&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4407"><a href="#L-4407"><span class="linenos">4407</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-4408"><a href="#L-4408"><span class="linenos">4408</span></a> <span class="k">pass</span>
+</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><span id="L-4411"><a href="#L-4411"><span class="linenos">4411</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-4412"><a href="#L-4412"><span class="linenos">4412</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-4413"><a href="#L-4413"><span class="linenos">4413</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-4414"><a href="#L-4414"><span class="linenos">4414</span></a>
</span><span id="L-4415"><a href="#L-4415"><span class="linenos">4415</span></a>
-</span><span id="L-4416"><a href="#L-4416"><span class="linenos">4416</span></a> <span class="nd">@property</span>
-</span><span id="L-4417"><a href="#L-4417"><span class="linenos">4417</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-4418"><a href="#L-4418"><span class="linenos">4418</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-4416"><a href="#L-4416"><span class="linenos">4416</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-4417"><a href="#L-4417"><span class="linenos">4417</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-4418"><a href="#L-4418"><span class="linenos">4418</span></a>
</span><span id="L-4419"><a href="#L-4419"><span class="linenos">4419</span></a>
-</span><span id="L-4420"><a href="#L-4420"><span class="linenos">4420</span></a> <span class="nd">@property</span>
-</span><span id="L-4421"><a href="#L-4421"><span class="linenos">4421</span></a> <span class="k">def</span> <span class="nf">to</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DataType</span><span class="p">:</span>
-</span><span id="L-4422"><a href="#L-4422"><span class="linenos">4422</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-4420"><a href="#L-4420"><span class="linenos">4420</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-4421"><a href="#L-4421"><span class="linenos">4421</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-4422"><a href="#L-4422"><span class="linenos">4422</span></a>
</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="nd">@property</span>
-</span><span id="L-4425"><a href="#L-4425"><span class="linenos">4425</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-4426"><a href="#L-4426"><span class="linenos">4426</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-4424"><a href="#L-4424"><span class="linenos">4424</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-4425"><a href="#L-4425"><span class="linenos">4425</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-4426"><a href="#L-4426"><span class="linenos">4426</span></a>
</span><span id="L-4427"><a href="#L-4427"><span class="linenos">4427</span></a>
-</span><span id="L-4428"><a href="#L-4428"><span class="linenos">4428</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">dtypes</span><span class="p">:</span> <span class="n">DATA_TYPE</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="L-4429"><a href="#L-4429"><span class="linenos">4429</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4430"><a href="#L-4430"><span class="linenos">4430</span></a><span class="sd"> Checks whether this Cast&#39;s DataType matches one of the provided data types. Nested types</span>
-</span><span id="L-4431"><a href="#L-4431"><span class="linenos">4431</span></a><span class="sd"> like arrays or structs will be compared using &quot;structural equivalence&quot; semantics, so e.g.</span>
-</span><span id="L-4432"><a href="#L-4432"><span class="linenos">4432</span></a><span class="sd"> array&lt;int&gt; != array&lt;float&gt;.</span>
-</span><span id="L-4433"><a href="#L-4433"><span class="linenos">4433</span></a>
-</span><span id="L-4434"><a href="#L-4434"><span class="linenos">4434</span></a><span class="sd"> Args:</span>
-</span><span id="L-4435"><a href="#L-4435"><span class="linenos">4435</span></a><span class="sd"> dtypes: the data types to compare this Cast&#39;s DataType to.</span>
-</span><span id="L-4436"><a href="#L-4436"><span class="linenos">4436</span></a>
-</span><span id="L-4437"><a href="#L-4437"><span class="linenos">4437</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4438"><a href="#L-4438"><span class="linenos">4438</span></a><span class="sd"> True, if and only if there is a type in `dtypes` which is equal to this Cast&#39;s DataType.</span>
-</span><span id="L-4439"><a href="#L-4439"><span class="linenos">4439</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4440"><a href="#L-4440"><span class="linenos">4440</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">to</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="o">*</span><span class="n">dtypes</span><span class="p">)</span>
-</span><span id="L-4441"><a href="#L-4441"><span class="linenos">4441</span></a>
+</span><span id="L-4428"><a href="#L-4428"><span class="linenos">4428</span></a><span class="k">class</span> <span class="nc">ArraySum</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4429"><a href="#L-4429"><span class="linenos">4429</span></a> <span class="k">pass</span>
+</span><span id="L-4430"><a href="#L-4430"><span class="linenos">4430</span></a>
+</span><span id="L-4431"><a href="#L-4431"><span class="linenos">4431</span></a>
+</span><span id="L-4432"><a href="#L-4432"><span class="linenos">4432</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-4433"><a href="#L-4433"><span class="linenos">4433</span></a> <span class="k">pass</span>
+</span><span id="L-4434"><a href="#L-4434"><span class="linenos">4434</span></a>
+</span><span id="L-4435"><a href="#L-4435"><span class="linenos">4435</span></a>
+</span><span id="L-4436"><a href="#L-4436"><span class="linenos">4436</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-4437"><a href="#L-4437"><span class="linenos">4437</span></a> <span class="k">pass</span>
+</span><span id="L-4438"><a href="#L-4438"><span class="linenos">4438</span></a>
+</span><span id="L-4439"><a href="#L-4439"><span class="linenos">4439</span></a>
+</span><span id="L-4440"><a href="#L-4440"><span class="linenos">4440</span></a><span class="k">class</span> <span class="nc">AnyValue</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-4441"><a href="#L-4441"><span class="linenos">4441</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;having&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;max&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;ignore_nulls&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4442"><a href="#L-4442"><span class="linenos">4442</span></a>
-</span><span id="L-4443"><a href="#L-4443"><span class="linenos">4443</span></a><span class="k">class</span> <span class="nc">TryCast</span><span class="p">(</span><span class="n">Cast</span><span class="p">):</span>
-</span><span id="L-4444"><a href="#L-4444"><span class="linenos">4444</span></a> <span class="k">pass</span>
-</span><span id="L-4445"><a href="#L-4445"><span class="linenos">4445</span></a>
+</span><span id="L-4443"><a href="#L-4443"><span class="linenos">4443</span></a>
+</span><span id="L-4444"><a href="#L-4444"><span class="linenos">4444</span></a><span class="k">class</span> <span class="nc">First</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4445"><a href="#L-4445"><span class="linenos">4445</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;ignore_nulls&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</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="k">class</span> <span class="nc">CastToStrType</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4448"><a href="#L-4448"><span class="linenos">4448</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span 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-4449"><a href="#L-4449"><span class="linenos">4449</span></a>
+</span><span id="L-4447"><a href="#L-4447"><span class="linenos">4447</span></a>
+</span><span id="L-4448"><a href="#L-4448"><span class="linenos">4448</span></a><span class="k">class</span> <span class="nc">Last</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4449"><a href="#L-4449"><span class="linenos">4449</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;ignore_nulls&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</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="k">class</span> <span class="nc">Collate</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4452"><a href="#L-4452"><span class="linenos">4452</span></a> <span class="k">pass</span>
-</span><span id="L-4453"><a href="#L-4453"><span class="linenos">4453</span></a>
+</span><span id="L-4451"><a href="#L-4451"><span class="linenos">4451</span></a>
+</span><span id="L-4452"><a href="#L-4452"><span class="linenos">4452</span></a><span class="k">class</span> <span class="nc">Case</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4453"><a href="#L-4453"><span class="linenos">4453</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-4454"><a href="#L-4454"><span class="linenos">4454</span></a>
-</span><span id="L-4455"><a href="#L-4455"><span class="linenos">4455</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-4456"><a href="#L-4456"><span class="linenos">4456</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4457"><a href="#L-4457"><span class="linenos">4457</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-4458"><a href="#L-4458"><span class="linenos">4458</span></a>
-</span><span id="L-4459"><a href="#L-4459"><span class="linenos">4459</span></a>
-</span><span id="L-4460"><a href="#L-4460"><span class="linenos">4460</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-4461"><a href="#L-4461"><span class="linenos">4461</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-4462"><a href="#L-4462"><span class="linenos">4462</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-4463"><a href="#L-4463"><span class="linenos">4463</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;COALESCE&quot;</span><span class="p">,</span> <span class="s2">&quot;IFNULL&quot;</span><span class="p">,</span> <span class="s2">&quot;NVL&quot;</span><span class="p">]</span>
-</span><span id="L-4464"><a href="#L-4464"><span class="linenos">4464</span></a>
+</span><span id="L-4455"><a href="#L-4455"><span class="linenos">4455</span></a> <span class="k">def</span> <span class="nf">when</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">condition</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">then</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Case</span><span class="p">:</span>
+</span><span id="L-4456"><a href="#L-4456"><span class="linenos">4456</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-4457"><a href="#L-4457"><span class="linenos">4457</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
+</span><span id="L-4458"><a href="#L-4458"><span class="linenos">4458</span></a> <span class="s2">&quot;ifs&quot;</span><span class="p">,</span>
+</span><span id="L-4459"><a href="#L-4459"><span class="linenos">4459</span></a> <span class="n">If</span><span class="p">(</span>
+</span><span id="L-4460"><a href="#L-4460"><span class="linenos">4460</span></a> <span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">condition</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
+</span><span id="L-4461"><a href="#L-4461"><span class="linenos">4461</span></a> <span class="n">true</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">then</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
+</span><span id="L-4462"><a href="#L-4462"><span class="linenos">4462</span></a> <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">instance</span>
</span><span id="L-4465"><a href="#L-4465"><span class="linenos">4465</span></a>
-</span><span id="L-4466"><a href="#L-4466"><span class="linenos">4466</span></a><span class="k">class</span> <span class="nc">Chr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4467"><a href="#L-4467"><span class="linenos">4467</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;charset&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-4468"><a href="#L-4468"><span class="linenos">4468</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-4469"><a href="#L-4469"><span class="linenos">4469</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;CHR&quot;</span><span class="p">,</span> <span class="s2">&quot;CHAR&quot;</span><span class="p">]</span>
+</span><span id="L-4466"><a href="#L-4466"><span class="linenos">4466</span></a> <span class="k">def</span> <span class="nf">else_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">condition</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Case</span><span class="p">:</span>
+</span><span id="L-4467"><a href="#L-4467"><span class="linenos">4467</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-4468"><a href="#L-4468"><span class="linenos">4468</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;default&quot;</span><span class="p">,</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">condition</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
+</span><span id="L-4469"><a href="#L-4469"><span class="linenos">4469</span></a> <span class="k">return</span> <span class="n">instance</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><span id="L-4472"><a href="#L-4472"><span class="linenos">4472</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-4473"><a href="#L-4473"><span class="linenos">4473</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;safe&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;coalesce&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-4474"><a href="#L-4474"><span class="linenos">4474</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-4475"><a href="#L-4475"><span class="linenos">4475</span></a>
-</span><span id="L-4476"><a href="#L-4476"><span class="linenos">4476</span></a>
-</span><span id="L-4477"><a href="#L-4477"><span class="linenos">4477</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-4478"><a href="#L-4478"><span class="linenos">4478</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-4479"><a href="#L-4479"><span class="linenos">4479</span></a>
-</span><span id="L-4480"><a href="#L-4480"><span class="linenos">4480</span></a>
-</span><span id="L-4481"><a href="#L-4481"><span class="linenos">4481</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-4482"><a href="#L-4482"><span class="linenos">4482</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-4483"><a href="#L-4483"><span class="linenos">4483</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-4484"><a href="#L-4484"><span class="linenos">4484</span></a>
-</span><span id="L-4485"><a href="#L-4485"><span class="linenos">4485</span></a>
-</span><span id="L-4486"><a href="#L-4486"><span class="linenos">4486</span></a><span class="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-4487"><a href="#L-4487"><span class="linenos">4487</span></a> <span class="k">pass</span>
-</span><span id="L-4488"><a href="#L-4488"><span class="linenos">4488</span></a>
-</span><span id="L-4489"><a href="#L-4489"><span class="linenos">4489</span></a>
-</span><span id="L-4490"><a href="#L-4490"><span class="linenos">4490</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-4491"><a href="#L-4491"><span class="linenos">4491</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-4472"><a href="#L-4472"><span class="linenos">4472</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-4473"><a href="#L-4473"><span class="linenos">4473</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;to&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;safe&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4474"><a href="#L-4474"><span class="linenos">4474</span></a>
+</span><span id="L-4475"><a href="#L-4475"><span class="linenos">4475</span></a> <span class="nd">@property</span>
+</span><span id="L-4476"><a href="#L-4476"><span class="linenos">4476</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-4477"><a href="#L-4477"><span class="linenos">4477</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-4478"><a href="#L-4478"><span class="linenos">4478</span></a>
+</span><span id="L-4479"><a href="#L-4479"><span class="linenos">4479</span></a> <span class="nd">@property</span>
+</span><span id="L-4480"><a href="#L-4480"><span class="linenos">4480</span></a> <span class="k">def</span> <span class="nf">to</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DataType</span><span class="p">:</span>
+</span><span id="L-4481"><a href="#L-4481"><span class="linenos">4481</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-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="nd">@property</span>
+</span><span id="L-4484"><a href="#L-4484"><span class="linenos">4484</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-4485"><a href="#L-4485"><span class="linenos">4485</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-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="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">dtypes</span><span class="p">:</span> <span class="n">DATA_TYPE</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="L-4488"><a href="#L-4488"><span class="linenos">4488</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-4489"><a href="#L-4489"><span class="linenos">4489</span></a><span class="sd"> Checks whether this Cast&#39;s DataType matches one of the provided data types. Nested types</span>
+</span><span id="L-4490"><a href="#L-4490"><span class="linenos">4490</span></a><span class="sd"> like arrays or structs will be compared using &quot;structural equivalence&quot; semantics, so e.g.</span>
+</span><span id="L-4491"><a href="#L-4491"><span class="linenos">4491</span></a><span class="sd"> array&lt;int&gt; != array&lt;float&gt;.</span>
</span><span id="L-4492"><a href="#L-4492"><span class="linenos">4492</span></a>
-</span><span id="L-4493"><a href="#L-4493"><span class="linenos">4493</span></a>
-</span><span id="L-4494"><a href="#L-4494"><span class="linenos">4494</span></a><span class="k">class</span> <span class="nc">CurrentDatetime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4495"><a href="#L-4495"><span class="linenos">4495</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</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><span id="L-4498"><a href="#L-4498"><span class="linenos">4498</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-4499"><a href="#L-4499"><span class="linenos">4499</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-4493"><a href="#L-4493"><span class="linenos">4493</span></a><span class="sd"> Args:</span>
+</span><span id="L-4494"><a href="#L-4494"><span class="linenos">4494</span></a><span class="sd"> dtypes: the data types to compare this Cast&#39;s DataType to.</span>
+</span><span id="L-4495"><a href="#L-4495"><span class="linenos">4495</span></a>
+</span><span id="L-4496"><a href="#L-4496"><span class="linenos">4496</span></a><span class="sd"> Returns:</span>
+</span><span id="L-4497"><a href="#L-4497"><span class="linenos">4497</span></a><span class="sd"> True, if and only if there is a type in `dtypes` which is equal to this Cast&#39;s DataType.</span>
+</span><span id="L-4498"><a href="#L-4498"><span class="linenos">4498</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4499"><a href="#L-4499"><span class="linenos">4499</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">to</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="o">*</span><span class="n">dtypes</span><span class="p">)</span>
</span><span id="L-4500"><a href="#L-4500"><span class="linenos">4500</span></a>
</span><span id="L-4501"><a href="#L-4501"><span class="linenos">4501</span></a>
-</span><span id="L-4502"><a href="#L-4502"><span class="linenos">4502</span></a><span class="k">class</span> <span class="nc">CurrentTimestamp</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4503"><a href="#L-4503"><span class="linenos">4503</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-4502"><a href="#L-4502"><span class="linenos">4502</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-4503"><a href="#L-4503"><span class="linenos">4503</span></a> <span class="k">pass</span>
</span><span id="L-4504"><a href="#L-4504"><span class="linenos">4504</span></a>
</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="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-4507"><a href="#L-4507"><span class="linenos">4507</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-4506"><a href="#L-4506"><span class="linenos">4506</span></a><span class="k">class</span> <span class="nc">CastToStrType</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4507"><a href="#L-4507"><span class="linenos">4507</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4508"><a href="#L-4508"><span class="linenos">4508</span></a>
</span><span id="L-4509"><a href="#L-4509"><span class="linenos">4509</span></a>
-</span><span id="L-4510"><a href="#L-4510"><span class="linenos">4510</span></a><span class="k">class</span> <span class="nc">DateAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">IntervalOp</span><span class="p">):</span>
-</span><span id="L-4511"><a href="#L-4511"><span class="linenos">4511</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-4510"><a href="#L-4510"><span class="linenos">4510</span></a><span class="k">class</span> <span class="nc">Collate</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4511"><a href="#L-4511"><span class="linenos">4511</span></a> <span class="k">pass</span>
</span><span id="L-4512"><a href="#L-4512"><span class="linenos">4512</span></a>
</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 class="k">class</span> <span class="nc">DateSub</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">IntervalOp</span><span class="p">):</span>
-</span><span id="L-4515"><a href="#L-4515"><span class="linenos">4515</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-4516"><a href="#L-4516"><span class="linenos">4516</span></a>
+</span><span id="L-4514"><a href="#L-4514"><span class="linenos">4514</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-4515"><a href="#L-4515"><span class="linenos">4515</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4516"><a href="#L-4516"><span class="linenos">4516</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-4517"><a href="#L-4517"><span class="linenos">4517</span></a>
-</span><span id="L-4518"><a href="#L-4518"><span class="linenos">4518</span></a><span class="k">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-4519"><a href="#L-4519"><span class="linenos">4519</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-4520"><a href="#L-4520"><span class="linenos">4520</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-4521"><a href="#L-4521"><span class="linenos">4521</span></a>
-</span><span id="L-4522"><a href="#L-4522"><span class="linenos">4522</span></a>
-</span><span id="L-4523"><a href="#L-4523"><span class="linenos">4523</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-4524"><a href="#L-4524"><span class="linenos">4524</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-4525"><a href="#L-4525"><span class="linenos">4525</span></a>
-</span><span id="L-4526"><a href="#L-4526"><span class="linenos">4526</span></a> <span class="nd">@property</span>
-</span><span id="L-4527"><a href="#L-4527"><span class="linenos">4527</span></a> <span class="k">def</span> <span class="nf">unit</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="L-4528"><a href="#L-4528"><span class="linenos">4528</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;unit&quot;</span><span class="p">]</span>
+</span><span id="L-4518"><a href="#L-4518"><span class="linenos">4518</span></a>
+</span><span id="L-4519"><a href="#L-4519"><span class="linenos">4519</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-4520"><a href="#L-4520"><span class="linenos">4520</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4521"><a href="#L-4521"><span class="linenos">4521</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-4522"><a href="#L-4522"><span class="linenos">4522</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;COALESCE&quot;</span><span class="p">,</span> <span class="s2">&quot;IFNULL&quot;</span><span class="p">,</span> <span class="s2">&quot;NVL&quot;</span><span class="p">]</span>
+</span><span id="L-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">class</span> <span class="nc">Chr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4526"><a href="#L-4526"><span class="linenos">4526</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;charset&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4527"><a href="#L-4527"><span class="linenos">4527</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-4528"><a href="#L-4528"><span class="linenos">4528</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;CHR&quot;</span><span class="p">,</span> <span class="s2">&quot;CHAR&quot;</span><span class="p">]</span>
</span><span id="L-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">class</span> <span class="nc">DatetimeAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">IntervalOp</span><span class="p">):</span>
-</span><span id="L-4532"><a href="#L-4532"><span class="linenos">4532</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-4533"><a href="#L-4533"><span class="linenos">4533</span></a>
+</span><span id="L-4531"><a href="#L-4531"><span class="linenos">4531</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-4532"><a href="#L-4532"><span class="linenos">4532</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;safe&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;coalesce&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4533"><a href="#L-4533"><span class="linenos">4533</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</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="k">class</span> <span class="nc">DatetimeSub</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">IntervalOp</span><span class="p">):</span>
-</span><span id="L-4536"><a href="#L-4536"><span class="linenos">4536</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-4537"><a href="#L-4537"><span class="linenos">4537</span></a>
+</span><span id="L-4535"><a href="#L-4535"><span class="linenos">4535</span></a>
+</span><span id="L-4536"><a href="#L-4536"><span class="linenos">4536</span></a><span class="k">class</span> <span class="nc">ConcatWs</span><span class="p">(</span><span class="n">Concat</span><span class="p">):</span>
+</span><span id="L-4537"><a href="#L-4537"><span class="linenos">4537</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-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">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-4540"><a href="#L-4540"><span class="linenos">4540</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-4541"><a href="#L-4541"><span class="linenos">4541</span></a>
-</span><span id="L-4542"><a href="#L-4542"><span class="linenos">4542</span></a>
-</span><span id="L-4543"><a href="#L-4543"><span class="linenos">4543</span></a><span 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-4544"><a href="#L-4544"><span class="linenos">4544</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4545"><a href="#L-4545"><span class="linenos">4545</span></a>
-</span><span id="L-4546"><a href="#L-4546"><span class="linenos">4546</span></a>
-</span><span id="L-4547"><a href="#L-4547"><span class="linenos">4547</span></a><span class="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-4548"><a href="#L-4548"><span class="linenos">4548</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-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="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-4552"><a href="#L-4552"><span class="linenos">4552</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-4553"><a href="#L-4553"><span class="linenos">4553</span></a>
-</span><span id="L-4554"><a href="#L-4554"><span class="linenos">4554</span></a>
-</span><span id="L-4555"><a href="#L-4555"><span class="linenos">4555</span></a><span class="k">class</span> <span class="nc">DayOfYear</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4556"><a href="#L-4556"><span class="linenos">4556</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-4557"><a href="#L-4557"><span class="linenos">4557</span></a>
-</span><span id="L-4558"><a href="#L-4558"><span class="linenos">4558</span></a>
-</span><span id="L-4559"><a href="#L-4559"><span class="linenos">4559</span></a><span class="k">class</span> <span class="nc">ToDays</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4560"><a href="#L-4560"><span class="linenos">4560</span></a> <span class="k">pass</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><span id="L-4563"><a href="#L-4563"><span class="linenos">4563</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-4564"><a href="#L-4564"><span class="linenos">4564</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-4565"><a href="#L-4565"><span class="linenos">4565</span></a>
-</span><span id="L-4566"><a href="#L-4566"><span class="linenos">4566</span></a>
-</span><span id="L-4567"><a href="#L-4567"><span class="linenos">4567</span></a><span class="k">class</span> <span class="nc">MonthsBetween</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4568"><a href="#L-4568"><span class="linenos">4568</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;roundoff&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-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">class</span> <span class="nc">LastDateOfMonth</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4572"><a href="#L-4572"><span class="linenos">4572</span></a> <span class="k">pass</span>
-</span><span id="L-4573"><a href="#L-4573"><span class="linenos">4573</span></a>
-</span><span id="L-4574"><a href="#L-4574"><span class="linenos">4574</span></a>
-</span><span id="L-4575"><a href="#L-4575"><span class="linenos">4575</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-4576"><a href="#L-4576"><span class="linenos">4576</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-4577"><a href="#L-4577"><span class="linenos">4577</span></a>
-</span><span id="L-4578"><a href="#L-4578"><span class="linenos">4578</span></a>
-</span><span id="L-4579"><a href="#L-4579"><span class="linenos">4579</span></a><span class="k">class</span> <span class="nc">Timestamp</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4580"><a href="#L-4580"><span class="linenos">4580</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4539"><a href="#L-4539"><span class="linenos">4539</span></a>
+</span><span id="L-4540"><a href="#L-4540"><span class="linenos">4540</span></a><span 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-4541"><a href="#L-4541"><span class="linenos">4541</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">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-4542"><a href="#L-4542"><span class="linenos">4542</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-4543"><a href="#L-4543"><span class="linenos">4543</span></a>
+</span><span id="L-4544"><a href="#L-4544"><span class="linenos">4544</span></a>
+</span><span id="L-4545"><a href="#L-4545"><span class="linenos">4545</span></a><span class="k">class</span> <span class="nc">CountIf</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-4546"><a href="#L-4546"><span class="linenos">4546</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;COUNT_IF&quot;</span><span class="p">,</span> <span class="s2">&quot;COUNTIF&quot;</span><span class="p">]</span>
+</span><span id="L-4547"><a href="#L-4547"><span class="linenos">4547</span></a>
+</span><span id="L-4548"><a href="#L-4548"><span class="linenos">4548</span></a>
+</span><span id="L-4549"><a href="#L-4549"><span class="linenos">4549</span></a><span class="k">class</span> <span class="nc">CurrentDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4550"><a href="#L-4550"><span class="linenos">4550</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-4551"><a href="#L-4551"><span class="linenos">4551</span></a>
+</span><span id="L-4552"><a href="#L-4552"><span class="linenos">4552</span></a>
+</span><span id="L-4553"><a href="#L-4553"><span class="linenos">4553</span></a><span class="k">class</span> <span class="nc">CurrentDatetime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4554"><a href="#L-4554"><span class="linenos">4554</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4555"><a href="#L-4555"><span class="linenos">4555</span></a>
+</span><span id="L-4556"><a href="#L-4556"><span class="linenos">4556</span></a>
+</span><span id="L-4557"><a href="#L-4557"><span class="linenos">4557</span></a><span 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-4558"><a href="#L-4558"><span class="linenos">4558</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4559"><a href="#L-4559"><span class="linenos">4559</span></a>
+</span><span id="L-4560"><a href="#L-4560"><span class="linenos">4560</span></a>
+</span><span id="L-4561"><a href="#L-4561"><span class="linenos">4561</span></a><span class="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-4562"><a href="#L-4562"><span class="linenos">4562</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-4563"><a href="#L-4563"><span class="linenos">4563</span></a>
+</span><span id="L-4564"><a href="#L-4564"><span class="linenos">4564</span></a>
+</span><span id="L-4565"><a href="#L-4565"><span class="linenos">4565</span></a><span 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-4566"><a href="#L-4566"><span class="linenos">4566</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4567"><a href="#L-4567"><span class="linenos">4567</span></a>
+</span><span id="L-4568"><a href="#L-4568"><span class="linenos">4568</span></a>
+</span><span id="L-4569"><a href="#L-4569"><span class="linenos">4569</span></a><span class="k">class</span> <span class="nc">DateAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">IntervalOp</span><span class="p">):</span>
+</span><span id="L-4570"><a href="#L-4570"><span class="linenos">4570</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-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="k">class</span> <span class="nc">DateSub</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">IntervalOp</span><span class="p">):</span>
+</span><span id="L-4574"><a href="#L-4574"><span class="linenos">4574</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-4575"><a href="#L-4575"><span class="linenos">4575</span></a>
+</span><span id="L-4576"><a href="#L-4576"><span class="linenos">4576</span></a>
+</span><span id="L-4577"><a href="#L-4577"><span class="linenos">4577</span></a><span class="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-4578"><a href="#L-4578"><span class="linenos">4578</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-4579"><a href="#L-4579"><span class="linenos">4579</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-4580"><a href="#L-4580"><span class="linenos">4580</span></a>
</span><span id="L-4581"><a href="#L-4581"><span class="linenos">4581</span></a>
-</span><span id="L-4582"><a href="#L-4582"><span class="linenos">4582</span></a>
-</span><span id="L-4583"><a href="#L-4583"><span class="linenos">4583</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-4584"><a href="#L-4584"><span class="linenos">4584</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-4585"><a href="#L-4585"><span class="linenos">4585</span></a>
-</span><span id="L-4586"><a href="#L-4586"><span class="linenos">4586</span></a>
-</span><span id="L-4587"><a href="#L-4587"><span class="linenos">4587</span></a><span class="k">class</span> <span class="nc">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-4588"><a href="#L-4588"><span class="linenos">4588</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-4589"><a href="#L-4589"><span class="linenos">4589</span></a>
-</span><span id="L-4590"><a href="#L-4590"><span class="linenos">4590</span></a>
-</span><span id="L-4591"><a href="#L-4591"><span class="linenos">4591</span></a><span class="k">class</span> <span class="nc">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-4592"><a href="#L-4592"><span class="linenos">4592</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-4582"><a href="#L-4582"><span class="linenos">4582</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-4583"><a href="#L-4583"><span class="linenos">4583</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-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="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-4586"><a href="#L-4586"><span class="linenos">4586</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-4587"><a href="#L-4587"><span class="linenos">4587</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">unit</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="o">.</span><span class="n">VAR_LIKE</span><span class="p">):</span>
+</span><span id="L-4588"><a href="#L-4588"><span class="linenos">4588</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">&quot;unit&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span>
+</span><span id="L-4589"><a href="#L-4589"><span class="linenos">4589</span></a> <span class="p">(</span><span class="n">TimeUnit</span><span class="o">.</span><span class="n">UNABBREVIATED_UNIT_NAME</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> <span class="ow">or</span> <span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
+</span><span id="L-4590"><a href="#L-4590"><span class="linenos">4590</span></a> <span class="p">)</span>
+</span><span id="L-4591"><a href="#L-4591"><span class="linenos">4591</span></a> <span class="k">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-4592"><a href="#L-4592"><span class="linenos">4592</span></a> <span class="n">unit</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;this&quot;</span><span class="p">,</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="n">unit</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()))</span>
</span><span id="L-4593"><a href="#L-4593"><span class="linenos">4593</span></a>
-</span><span id="L-4594"><a href="#L-4594"><span class="linenos">4594</span></a>
-</span><span id="L-4595"><a href="#L-4595"><span class="linenos">4595</span></a><span class="k">class</span> <span class="nc">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-4596"><a href="#L-4596"><span class="linenos">4596</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-4597"><a href="#L-4597"><span class="linenos">4597</span></a>
-</span><span id="L-4598"><a href="#L-4598"><span class="linenos">4598</span></a>
-</span><span id="L-4599"><a href="#L-4599"><span class="linenos">4599</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-4600"><a href="#L-4600"><span class="linenos">4600</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">False</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">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-4604"><a href="#L-4604"><span class="linenos">4604</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-4605"><a href="#L-4605"><span class="linenos">4605</span></a>
-</span><span id="L-4606"><a href="#L-4606"><span class="linenos">4606</span></a>
-</span><span id="L-4607"><a href="#L-4607"><span class="linenos">4607</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-4608"><a href="#L-4608"><span class="linenos">4608</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-4609"><a href="#L-4609"><span class="linenos">4609</span></a>
-</span><span id="L-4610"><a href="#L-4610"><span class="linenos">4610</span></a>
-</span><span id="L-4611"><a href="#L-4611"><span class="linenos">4611</span></a><span class="k">class</span> <span class="nc">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-4612"><a href="#L-4612"><span class="linenos">4612</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span 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-4613"><a href="#L-4613"><span class="linenos">4613</span></a>
-</span><span id="L-4614"><a href="#L-4614"><span class="linenos">4614</span></a>
-</span><span id="L-4615"><a href="#L-4615"><span class="linenos">4615</span></a><span class="k">class</span> <span class="nc">DateFromParts</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4616"><a href="#L-4616"><span class="linenos">4616</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-4617"><a href="#L-4617"><span class="linenos">4617</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-4618"><a href="#L-4618"><span class="linenos">4618</span></a>
+</span><span id="L-4594"><a href="#L-4594"><span class="linenos">4594</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-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="nd">@property</span>
+</span><span id="L-4597"><a href="#L-4597"><span class="linenos">4597</span></a> <span class="k">def</span> <span class="nf">unit</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="L-4598"><a href="#L-4598"><span class="linenos">4598</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;unit&quot;</span><span class="p">]</span>
+</span><span id="L-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><span id="L-4601"><a href="#L-4601"><span class="linenos">4601</span></a><span class="k">class</span> <span class="nc">DatetimeAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">IntervalOp</span><span class="p">):</span>
+</span><span id="L-4602"><a href="#L-4602"><span class="linenos">4602</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-4603"><a href="#L-4603"><span class="linenos">4603</span></a>
+</span><span id="L-4604"><a href="#L-4604"><span class="linenos">4604</span></a>
+</span><span id="L-4605"><a href="#L-4605"><span class="linenos">4605</span></a><span class="k">class</span> <span class="nc">DatetimeSub</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">IntervalOp</span><span class="p">):</span>
+</span><span id="L-4606"><a href="#L-4606"><span class="linenos">4606</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">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-4607"><a href="#L-4607"><span class="linenos">4607</span></a>
+</span><span id="L-4608"><a href="#L-4608"><span class="linenos">4608</span></a>
+</span><span id="L-4609"><a href="#L-4609"><span class="linenos">4609</span></a><span class="k">class</span> <span class="nc">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-4610"><a href="#L-4610"><span class="linenos">4610</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-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">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-4614"><a href="#L-4614"><span class="linenos">4614</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span 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-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><span id="L-4617"><a href="#L-4617"><span class="linenos">4617</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-4618"><a href="#L-4618"><span class="linenos">4618</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-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 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-4621"><a href="#L-4621"><span class="linenos">4621</span></a> <span class="k">pass</span>
-</span><span id="L-4622"><a href="#L-4622"><span class="linenos">4622</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">class</span> <span class="nc">DayOfMonth</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4622"><a href="#L-4622"><span class="linenos">4622</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-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">class</span> <span class="nc">DateToDateStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4625"><a href="#L-4625"><span class="linenos">4625</span></a> <span class="k">pass</span>
-</span><span id="L-4626"><a href="#L-4626"><span class="linenos">4626</span></a>
+</span><span id="L-4624"><a href="#L-4624"><span class="linenos">4624</span></a>
+</span><span id="L-4625"><a href="#L-4625"><span class="linenos">4625</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-4626"><a href="#L-4626"><span class="linenos">4626</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;DAY_OF_YEAR&quot;</span><span class="p">,</span> <span class="s2">&quot;DAYOFYEAR&quot;</span><span class="p">]</span>
</span><span id="L-4627"><a href="#L-4627"><span class="linenos">4627</span></a>
-</span><span id="L-4628"><a href="#L-4628"><span class="linenos">4628</span></a><span class="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-4629"><a href="#L-4629"><span class="linenos">4629</span></a> <span class="k">pass</span>
-</span><span id="L-4630"><a href="#L-4630"><span class="linenos">4630</span></a>
+</span><span id="L-4628"><a href="#L-4628"><span class="linenos">4628</span></a>
+</span><span id="L-4629"><a href="#L-4629"><span class="linenos">4629</span></a><span class="k">class</span> <span class="nc">ToDays</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4630"><a href="#L-4630"><span class="linenos">4630</span></a> <span class="k">pass</span>
</span><span id="L-4631"><a href="#L-4631"><span class="linenos">4631</span></a>
-</span><span id="L-4632"><a href="#L-4632"><span class="linenos">4632</span></a><span class="c1"># https://cloud.google.com/bigquery/docs/reference/standard-sql/date_functions#date</span>
-</span><span id="L-4633"><a href="#L-4633"><span class="linenos">4633</span></a><span class="k">class</span> <span class="nc">Date</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4634"><a href="#L-4634"><span class="linenos">4634</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-4635"><a href="#L-4635"><span class="linenos">4635</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-4632"><a href="#L-4632"><span class="linenos">4632</span></a>
+</span><span id="L-4633"><a href="#L-4633"><span class="linenos">4633</span></a><span class="k">class</span> <span class="nc">WeekOfYear</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4634"><a href="#L-4634"><span class="linenos">4634</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-4635"><a href="#L-4635"><span class="linenos">4635</span></a>
</span><span id="L-4636"><a href="#L-4636"><span class="linenos">4636</span></a>
-</span><span id="L-4637"><a href="#L-4637"><span class="linenos">4637</span></a>
-</span><span id="L-4638"><a href="#L-4638"><span class="linenos">4638</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-4639"><a href="#L-4639"><span class="linenos">4639</span></a> <span class="k">pass</span>
+</span><span id="L-4637"><a href="#L-4637"><span class="linenos">4637</span></a><span class="k">class</span> <span class="nc">MonthsBetween</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4638"><a href="#L-4638"><span class="linenos">4638</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;roundoff&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4639"><a href="#L-4639"><span class="linenos">4639</span></a>
</span><span id="L-4640"><a href="#L-4640"><span class="linenos">4640</span></a>
-</span><span id="L-4641"><a href="#L-4641"><span class="linenos">4641</span></a>
-</span><span id="L-4642"><a href="#L-4642"><span class="linenos">4642</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-4643"><a href="#L-4643"><span class="linenos">4643</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-4641"><a href="#L-4641"><span class="linenos">4641</span></a><span class="k">class</span> <span class="nc">LastDay</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
+</span><span id="L-4642"><a href="#L-4642"><span class="linenos">4642</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;LAST_DAY&quot;</span><span class="p">,</span> <span class="s2">&quot;LAST_DAY_OF_MONTH&quot;</span><span class="p">]</span>
+</span><span id="L-4643"><a href="#L-4643"><span class="linenos">4643</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4644"><a href="#L-4644"><span class="linenos">4644</span></a>
</span><span id="L-4645"><a href="#L-4645"><span class="linenos">4645</span></a>
-</span><span id="L-4646"><a href="#L-4646"><span class="linenos">4646</span></a><span class="k">class</span> <span class="nc">DiToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4647"><a href="#L-4647"><span class="linenos">4647</span></a> <span class="k">pass</span>
+</span><span id="L-4646"><a href="#L-4646"><span class="linenos">4646</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-4647"><a href="#L-4647"><span class="linenos">4647</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-4648"><a href="#L-4648"><span class="linenos">4648</span></a>
</span><span id="L-4649"><a href="#L-4649"><span class="linenos">4649</span></a>
-</span><span id="L-4650"><a href="#L-4650"><span class="linenos">4650</span></a><span class="k">class</span> <span class="nc">Encode</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4651"><a href="#L-4651"><span class="linenos">4651</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4650"><a href="#L-4650"><span class="linenos">4650</span></a><span class="k">class</span> <span class="nc">Timestamp</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4651"><a href="#L-4651"><span class="linenos">4651</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-4652"><a href="#L-4652"><span class="linenos">4652</span></a>
</span><span id="L-4653"><a href="#L-4653"><span class="linenos">4653</span></a>
-</span><span id="L-4654"><a href="#L-4654"><span class="linenos">4654</span></a><span class="k">class</span> <span class="nc">Exp</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4655"><a href="#L-4655"><span class="linenos">4655</span></a> <span class="k">pass</span>
+</span><span id="L-4654"><a href="#L-4654"><span class="linenos">4654</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-4655"><a href="#L-4655"><span class="linenos">4655</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-4656"><a href="#L-4656"><span class="linenos">4656</span></a>
</span><span id="L-4657"><a href="#L-4657"><span class="linenos">4657</span></a>
-</span><span id="L-4658"><a href="#L-4658"><span class="linenos">4658</span></a><span class="c1"># https://docs.snowflake.com/en/sql-reference/functions/flatten</span>
-</span><span id="L-4659"><a href="#L-4659"><span class="linenos">4659</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-4660"><a href="#L-4660"><span class="linenos">4660</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-4661"><a href="#L-4661"><span class="linenos">4661</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-4662"><a href="#L-4662"><span class="linenos">4662</span></a>
-</span><span id="L-4663"><a href="#L-4663"><span class="linenos">4663</span></a>
-</span><span id="L-4664"><a href="#L-4664"><span class="linenos">4664</span></a><span class="k">class</span> <span class="nc">ExplodeOuter</span><span class="p">(</span><span class="n">Explode</span><span class="p">):</span>
-</span><span id="L-4665"><a href="#L-4665"><span class="linenos">4665</span></a> <span class="k">pass</span>
-</span><span id="L-4666"><a href="#L-4666"><span class="linenos">4666</span></a>
-</span><span id="L-4667"><a href="#L-4667"><span class="linenos">4667</span></a>
-</span><span id="L-4668"><a href="#L-4668"><span class="linenos">4668</span></a><span class="k">class</span> <span class="nc">Posexplode</span><span class="p">(</span><span class="n">Explode</span><span class="p">):</span>
-</span><span id="L-4669"><a href="#L-4669"><span class="linenos">4669</span></a> <span class="k">pass</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><span id="L-4672"><a href="#L-4672"><span class="linenos">4672</span></a><span class="k">class</span> <span class="nc">PosexplodeOuter</span><span class="p">(</span><span class="n">Posexplode</span><span class="p">):</span>
-</span><span id="L-4673"><a href="#L-4673"><span class="linenos">4673</span></a> <span class="k">pass</span>
-</span><span id="L-4674"><a href="#L-4674"><span class="linenos">4674</span></a>
-</span><span id="L-4675"><a href="#L-4675"><span class="linenos">4675</span></a>
-</span><span id="L-4676"><a href="#L-4676"><span class="linenos">4676</span></a><span class="k">class</span> <span class="nc">Floor</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4677"><a href="#L-4677"><span class="linenos">4677</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-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><span id="L-4680"><a href="#L-4680"><span class="linenos">4680</span></a><span class="k">class</span> <span class="nc">FromBase64</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4681"><a href="#L-4681"><span class="linenos">4681</span></a> <span class="k">pass</span>
-</span><span id="L-4682"><a href="#L-4682"><span class="linenos">4682</span></a>
-</span><span id="L-4683"><a href="#L-4683"><span class="linenos">4683</span></a>
-</span><span id="L-4684"><a href="#L-4684"><span class="linenos">4684</span></a><span class="k">class</span> <span class="nc">ToBase64</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4685"><a href="#L-4685"><span class="linenos">4685</span></a> <span class="k">pass</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><span id="L-4688"><a href="#L-4688"><span class="linenos">4688</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-4689"><a href="#L-4689"><span class="linenos">4689</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4690"><a href="#L-4690"><span class="linenos">4690</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</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><span id="L-4693"><a href="#L-4693"><span class="linenos">4693</span></a><span class="k">class</span> <span class="nc">GroupConcat</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-4694"><a href="#L-4694"><span class="linenos">4694</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;separator&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-4695"><a href="#L-4695"><span class="linenos">4695</span></a>
-</span><span id="L-4696"><a href="#L-4696"><span class="linenos">4696</span></a>
-</span><span id="L-4697"><a href="#L-4697"><span class="linenos">4697</span></a><span 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-4698"><a href="#L-4698"><span class="linenos">4698</span></a> <span class="k">pass</span>
-</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><span id="L-4701"><a href="#L-4701"><span class="linenos">4701</span></a><span class="k">class</span> <span class="nc">Xor</span><span class="p">(</span><span class="n">Connector</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4702"><a href="#L-4702"><span class="linenos">4702</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-4703"><a href="#L-4703"><span class="linenos">4703</span></a>
-</span><span id="L-4704"><a href="#L-4704"><span class="linenos">4704</span></a>
-</span><span id="L-4705"><a href="#L-4705"><span class="linenos">4705</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-4706"><a href="#L-4706"><span class="linenos">4706</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-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">class</span> <span class="nc">Nullif</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4710"><a href="#L-4710"><span class="linenos">4710</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-4711"><a href="#L-4711"><span class="linenos">4711</span></a>
-</span><span id="L-4712"><a href="#L-4712"><span class="linenos">4712</span></a>
-</span><span id="L-4713"><a href="#L-4713"><span class="linenos">4713</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-4714"><a href="#L-4714"><span class="linenos">4714</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-4715"><a href="#L-4715"><span class="linenos">4715</span></a>
-</span><span id="L-4716"><a href="#L-4716"><span class="linenos">4716</span></a>
-</span><span id="L-4717"><a href="#L-4717"><span class="linenos">4717</span></a><span class="k">class</span> <span class="nc">IsNan</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4718"><a href="#L-4718"><span class="linenos">4718</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;IS_NAN&quot;</span><span class="p">,</span> <span class="s2">&quot;ISNAN&quot;</span><span class="p">]</span>
+</span><span id="L-4658"><a href="#L-4658"><span class="linenos">4658</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-4659"><a href="#L-4659"><span class="linenos">4659</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-4660"><a href="#L-4660"><span class="linenos">4660</span></a>
+</span><span id="L-4661"><a href="#L-4661"><span class="linenos">4661</span></a>
+</span><span id="L-4662"><a href="#L-4662"><span class="linenos">4662</span></a><span class="k">class</span> <span class="nc">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-4663"><a href="#L-4663"><span class="linenos">4663</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-4664"><a href="#L-4664"><span class="linenos">4664</span></a>
+</span><span id="L-4665"><a href="#L-4665"><span class="linenos">4665</span></a>
+</span><span id="L-4666"><a href="#L-4666"><span class="linenos">4666</span></a><span class="k">class</span> <span class="nc">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-4667"><a href="#L-4667"><span class="linenos">4667</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">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-4668"><a href="#L-4668"><span class="linenos">4668</span></a>
+</span><span id="L-4669"><a href="#L-4669"><span class="linenos">4669</span></a>
+</span><span id="L-4670"><a href="#L-4670"><span class="linenos">4670</span></a><span class="k">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-4671"><a href="#L-4671"><span class="linenos">4671</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-4672"><a href="#L-4672"><span class="linenos">4672</span></a>
+</span><span id="L-4673"><a href="#L-4673"><span class="linenos">4673</span></a>
+</span><span id="L-4674"><a href="#L-4674"><span class="linenos">4674</span></a><span class="k">class</span> <span class="nc">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-4675"><a href="#L-4675"><span class="linenos">4675</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-4676"><a href="#L-4676"><span class="linenos">4676</span></a>
+</span><span id="L-4677"><a href="#L-4677"><span class="linenos">4677</span></a>
+</span><span id="L-4678"><a href="#L-4678"><span class="linenos">4678</span></a><span class="k">class</span> <span class="nc">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-4679"><a href="#L-4679"><span class="linenos">4679</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-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><span id="L-4682"><a href="#L-4682"><span class="linenos">4682</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-4683"><a href="#L-4683"><span class="linenos">4683</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-4684"><a href="#L-4684"><span class="linenos">4684</span></a>
+</span><span id="L-4685"><a href="#L-4685"><span class="linenos">4685</span></a>
+</span><span id="L-4686"><a href="#L-4686"><span class="linenos">4686</span></a><span class="k">class</span> <span class="nc">DateFromParts</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4687"><a href="#L-4687"><span class="linenos">4687</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;DATE_FROM_PARTS&quot;</span><span class="p">,</span> <span class="s2">&quot;DATEFROMPARTS&quot;</span><span class="p">]</span>
+</span><span id="L-4688"><a href="#L-4688"><span class="linenos">4688</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-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">class</span> <span class="nc">TimeFromParts</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4692"><a href="#L-4692"><span class="linenos">4692</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;TIME_FROM_PARTS&quot;</span><span class="p">,</span> <span class="s2">&quot;TIMEFROMPARTS&quot;</span><span class="p">]</span>
+</span><span id="L-4693"><a href="#L-4693"><span class="linenos">4693</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-4694"><a href="#L-4694"><span class="linenos">4694</span></a> <span class="s2">&quot;hour&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-4695"><a href="#L-4695"><span class="linenos">4695</span></a> <span class="s2">&quot;min&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-4696"><a href="#L-4696"><span class="linenos">4696</span></a> <span class="s2">&quot;sec&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-4697"><a href="#L-4697"><span class="linenos">4697</span></a> <span class="s2">&quot;nano&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-4698"><a href="#L-4698"><span class="linenos">4698</span></a> <span class="s2">&quot;fractions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-4699"><a href="#L-4699"><span class="linenos">4699</span></a> <span class="s2">&quot;precision&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-4700"><a href="#L-4700"><span class="linenos">4700</span></a> <span class="p">}</span>
+</span><span id="L-4701"><a href="#L-4701"><span class="linenos">4701</span></a>
+</span><span id="L-4702"><a href="#L-4702"><span class="linenos">4702</span></a>
+</span><span id="L-4703"><a href="#L-4703"><span class="linenos">4703</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-4704"><a href="#L-4704"><span class="linenos">4704</span></a> <span class="k">pass</span>
+</span><span id="L-4705"><a href="#L-4705"><span class="linenos">4705</span></a>
+</span><span id="L-4706"><a href="#L-4706"><span class="linenos">4706</span></a>
+</span><span id="L-4707"><a href="#L-4707"><span class="linenos">4707</span></a><span class="k">class</span> <span class="nc">DateToDateStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4708"><a href="#L-4708"><span class="linenos">4708</span></a> <span class="k">pass</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><span id="L-4711"><a href="#L-4711"><span class="linenos">4711</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-4712"><a href="#L-4712"><span class="linenos">4712</span></a> <span class="k">pass</span>
+</span><span id="L-4713"><a href="#L-4713"><span class="linenos">4713</span></a>
+</span><span id="L-4714"><a href="#L-4714"><span class="linenos">4714</span></a>
+</span><span id="L-4715"><a href="#L-4715"><span class="linenos">4715</span></a><span class="c1"># https://cloud.google.com/bigquery/docs/reference/standard-sql/date_functions#date</span>
+</span><span id="L-4716"><a href="#L-4716"><span class="linenos">4716</span></a><span class="k">class</span> <span class="nc">Date</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4717"><a href="#L-4717"><span class="linenos">4717</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4718"><a href="#L-4718"><span class="linenos">4718</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="L-4719"><a href="#L-4719"><span class="linenos">4719</span></a>
</span><span id="L-4720"><a href="#L-4720"><span class="linenos">4720</span></a>
-</span><span id="L-4721"><a href="#L-4721"><span class="linenos">4721</span></a><span class="k">class</span> <span class="nc">IsInf</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4722"><a href="#L-4722"><span class="linenos">4722</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;IS_INF&quot;</span><span class="p">,</span> <span class="s2">&quot;ISINF&quot;</span><span class="p">]</span>
+</span><span id="L-4721"><a href="#L-4721"><span class="linenos">4721</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-4722"><a href="#L-4722"><span class="linenos">4722</span></a> <span class="k">pass</span>
</span><span id="L-4723"><a href="#L-4723"><span class="linenos">4723</span></a>
</span><span id="L-4724"><a href="#L-4724"><span class="linenos">4724</span></a>
-</span><span id="L-4725"><a href="#L-4725"><span class="linenos">4725</span></a><span class="k">class</span> <span class="nc">FormatJson</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-4726"><a href="#L-4726"><span class="linenos">4726</span></a> <span class="k">pass</span>
+</span><span id="L-4725"><a href="#L-4725"><span class="linenos">4725</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-4726"><a href="#L-4726"><span class="linenos">4726</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4727"><a href="#L-4727"><span class="linenos">4727</span></a>
</span><span id="L-4728"><a href="#L-4728"><span class="linenos">4728</span></a>
-</span><span id="L-4729"><a href="#L-4729"><span class="linenos">4729</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-4730"><a href="#L-4730"><span class="linenos">4730</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-4729"><a href="#L-4729"><span class="linenos">4729</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-4730"><a href="#L-4730"><span class="linenos">4730</span></a> <span class="k">pass</span>
</span><span id="L-4731"><a href="#L-4731"><span class="linenos">4731</span></a>
</span><span id="L-4732"><a href="#L-4732"><span class="linenos">4732</span></a>
-</span><span id="L-4733"><a href="#L-4733"><span class="linenos">4733</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-4734"><a href="#L-4734"><span class="linenos">4734</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-4735"><a href="#L-4735"><span class="linenos">4735</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-4736"><a href="#L-4736"><span class="linenos">4736</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-4737"><a href="#L-4737"><span class="linenos">4737</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-4738"><a href="#L-4738"><span class="linenos">4738</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-4739"><a href="#L-4739"><span class="linenos">4739</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-4740"><a href="#L-4740"><span class="linenos">4740</span></a> <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><span id="L-4743"><a href="#L-4743"><span class="linenos">4743</span></a><span class="c1"># https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/JSON_ARRAY.html</span>
-</span><span id="L-4744"><a href="#L-4744"><span class="linenos">4744</span></a><span class="k">class</span> <span class="nc">JSONArray</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4745"><a href="#L-4745"><span class="linenos">4745</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-4746"><a href="#L-4746"><span class="linenos">4746</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-4747"><a href="#L-4747"><span class="linenos">4747</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-4748"><a href="#L-4748"><span class="linenos">4748</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-4749"><a href="#L-4749"><span class="linenos">4749</span></a> <span class="s2">&quot;strict&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-4750"><a href="#L-4750"><span class="linenos">4750</span></a> <span class="p">}</span>
-</span><span id="L-4751"><a href="#L-4751"><span class="linenos">4751</span></a>
-</span><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="c1"># https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/JSON_ARRAYAGG.html</span>
-</span><span id="L-4754"><a href="#L-4754"><span class="linenos">4754</span></a><span class="k">class</span> <span class="nc">JSONArrayAgg</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4755"><a href="#L-4755"><span class="linenos">4755</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-4756"><a href="#L-4756"><span class="linenos">4756</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-4757"><a href="#L-4757"><span class="linenos">4757</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-4758"><a href="#L-4758"><span class="linenos">4758</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-4759"><a href="#L-4759"><span class="linenos">4759</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-4760"><a href="#L-4760"><span class="linenos">4760</span></a> <span class="s2">&quot;strict&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-4761"><a href="#L-4761"><span class="linenos">4761</span></a> <span class="p">}</span>
+</span><span id="L-4733"><a href="#L-4733"><span class="linenos">4733</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-4734"><a href="#L-4734"><span class="linenos">4734</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-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><span id="L-4737"><a href="#L-4737"><span class="linenos">4737</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-4738"><a href="#L-4738"><span class="linenos">4738</span></a> <span class="k">pass</span>
+</span><span id="L-4739"><a href="#L-4739"><span class="linenos">4739</span></a>
+</span><span id="L-4740"><a href="#L-4740"><span class="linenos">4740</span></a>
+</span><span id="L-4741"><a href="#L-4741"><span class="linenos">4741</span></a><span class="c1"># https://docs.snowflake.com/en/sql-reference/functions/flatten</span>
+</span><span id="L-4742"><a href="#L-4742"><span class="linenos">4742</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-4743"><a href="#L-4743"><span class="linenos">4743</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4744"><a href="#L-4744"><span class="linenos">4744</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-4745"><a href="#L-4745"><span class="linenos">4745</span></a>
+</span><span id="L-4746"><a href="#L-4746"><span class="linenos">4746</span></a>
+</span><span id="L-4747"><a href="#L-4747"><span class="linenos">4747</span></a><span class="k">class</span> <span class="nc">ExplodeOuter</span><span class="p">(</span><span class="n">Explode</span><span class="p">):</span>
+</span><span id="L-4748"><a href="#L-4748"><span class="linenos">4748</span></a> <span class="k">pass</span>
+</span><span id="L-4749"><a href="#L-4749"><span class="linenos">4749</span></a>
+</span><span id="L-4750"><a href="#L-4750"><span class="linenos">4750</span></a>
+</span><span id="L-4751"><a href="#L-4751"><span class="linenos">4751</span></a><span class="k">class</span> <span class="nc">Posexplode</span><span class="p">(</span><span class="n">Explode</span><span class="p">):</span>
+</span><span id="L-4752"><a href="#L-4752"><span class="linenos">4752</span></a> <span class="k">pass</span>
+</span><span id="L-4753"><a href="#L-4753"><span class="linenos">4753</span></a>
+</span><span id="L-4754"><a href="#L-4754"><span class="linenos">4754</span></a>
+</span><span id="L-4755"><a href="#L-4755"><span class="linenos">4755</span></a><span class="k">class</span> <span class="nc">PosexplodeOuter</span><span class="p">(</span><span class="n">Posexplode</span><span class="p">):</span>
+</span><span id="L-4756"><a href="#L-4756"><span class="linenos">4756</span></a> <span class="k">pass</span>
+</span><span id="L-4757"><a href="#L-4757"><span class="linenos">4757</span></a>
+</span><span id="L-4758"><a href="#L-4758"><span class="linenos">4758</span></a>
+</span><span id="L-4759"><a href="#L-4759"><span class="linenos">4759</span></a><span 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-4760"><a href="#L-4760"><span class="linenos">4760</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4761"><a href="#L-4761"><span class="linenos">4761</span></a>
</span><span id="L-4762"><a href="#L-4762"><span class="linenos">4762</span></a>
-</span><span id="L-4763"><a href="#L-4763"><span class="linenos">4763</span></a>
-</span><span id="L-4764"><a href="#L-4764"><span class="linenos">4764</span></a><span class="c1"># https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/JSON_TABLE.html</span>
-</span><span id="L-4765"><a href="#L-4765"><span class="linenos">4765</span></a><span class="c1"># Note: parsing of JSON column definitions is currently incomplete.</span>
-</span><span id="L-4766"><a href="#L-4766"><span class="linenos">4766</span></a><span class="k">class</span> <span class="nc">JSONColumnDef</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-4767"><a href="#L-4767"><span class="linenos">4767</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;path&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;nested_schema&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-4768"><a href="#L-4768"><span class="linenos">4768</span></a>
+</span><span id="L-4763"><a href="#L-4763"><span class="linenos">4763</span></a><span class="k">class</span> <span class="nc">FromBase64</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4764"><a href="#L-4764"><span class="linenos">4764</span></a> <span class="k">pass</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">class</span> <span class="nc">ToBase64</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4768"><a href="#L-4768"><span class="linenos">4768</span></a> <span class="k">pass</span>
</span><span id="L-4769"><a href="#L-4769"><span class="linenos">4769</span></a>
-</span><span id="L-4770"><a href="#L-4770"><span class="linenos">4770</span></a><span class="k">class</span> <span class="nc">JSONSchema</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-4771"><a href="#L-4771"><span class="linenos">4771</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-4772"><a href="#L-4772"><span class="linenos">4772</span></a>
-</span><span id="L-4773"><a href="#L-4773"><span class="linenos">4773</span></a>
-</span><span id="L-4774"><a href="#L-4774"><span class="linenos">4774</span></a><span class="c1"># # https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/JSON_TABLE.html</span>
-</span><span id="L-4775"><a href="#L-4775"><span class="linenos">4775</span></a><span class="k">class</span> <span class="nc">JSONTable</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4776"><a href="#L-4776"><span class="linenos">4776</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-4777"><a href="#L-4777"><span class="linenos">4777</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-4778"><a href="#L-4778"><span class="linenos">4778</span></a> <span class="s2">&quot;schema&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-4779"><a href="#L-4779"><span class="linenos">4779</span></a> <span class="s2">&quot;path&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-4780"><a href="#L-4780"><span class="linenos">4780</span></a> <span class="s2">&quot;error_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-4781"><a href="#L-4781"><span class="linenos">4781</span></a> <span class="s2">&quot;empty_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-4782"><a href="#L-4782"><span class="linenos">4782</span></a> <span class="p">}</span>
+</span><span id="L-4770"><a href="#L-4770"><span class="linenos">4770</span></a>
+</span><span id="L-4771"><a href="#L-4771"><span class="linenos">4771</span></a><span 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-4772"><a href="#L-4772"><span class="linenos">4772</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4773"><a href="#L-4773"><span class="linenos">4773</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-4774"><a href="#L-4774"><span class="linenos">4774</span></a>
+</span><span id="L-4775"><a href="#L-4775"><span class="linenos">4775</span></a>
+</span><span id="L-4776"><a href="#L-4776"><span class="linenos">4776</span></a><span class="k">class</span> <span class="nc">GroupConcat</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-4777"><a href="#L-4777"><span class="linenos">4777</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4778"><a href="#L-4778"><span class="linenos">4778</span></a>
+</span><span id="L-4779"><a href="#L-4779"><span class="linenos">4779</span></a>
+</span><span id="L-4780"><a href="#L-4780"><span class="linenos">4780</span></a><span class="k">class</span> <span class="nc">Hex</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4781"><a href="#L-4781"><span class="linenos">4781</span></a> <span class="k">pass</span>
+</span><span id="L-4782"><a href="#L-4782"><span class="linenos">4782</span></a>
</span><span id="L-4783"><a href="#L-4783"><span class="linenos">4783</span></a>
-</span><span id="L-4784"><a href="#L-4784"><span class="linenos">4784</span></a>
-</span><span id="L-4785"><a href="#L-4785"><span class="linenos">4785</span></a><span class="k">class</span> <span class="nc">OpenJSONColumnDef</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-4786"><a href="#L-4786"><span class="linenos">4786</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;path&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;as_json&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4784"><a href="#L-4784"><span class="linenos">4784</span></a><span class="k">class</span> <span class="nc">Xor</span><span class="p">(</span><span class="n">Connector</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4785"><a href="#L-4785"><span class="linenos">4785</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4786"><a href="#L-4786"><span class="linenos">4786</span></a>
</span><span id="L-4787"><a href="#L-4787"><span class="linenos">4787</span></a>
-</span><span id="L-4788"><a href="#L-4788"><span class="linenos">4788</span></a>
-</span><span id="L-4789"><a href="#L-4789"><span class="linenos">4789</span></a><span class="k">class</span> <span class="nc">OpenJSON</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4790"><a href="#L-4790"><span class="linenos">4790</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;path&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4788"><a href="#L-4788"><span class="linenos">4788</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-4789"><a href="#L-4789"><span class="linenos">4789</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-4790"><a href="#L-4790"><span class="linenos">4790</span></a>
</span><span id="L-4791"><a href="#L-4791"><span class="linenos">4791</span></a>
-</span><span id="L-4792"><a href="#L-4792"><span class="linenos">4792</span></a>
-</span><span id="L-4793"><a href="#L-4793"><span class="linenos">4793</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-4794"><a href="#L-4794"><span class="linenos">4794</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSONB_CONTAINS&quot;</span><span class="p">]</span>
+</span><span id="L-4792"><a href="#L-4792"><span class="linenos">4792</span></a><span class="k">class</span> <span class="nc">Nullif</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4793"><a href="#L-4793"><span class="linenos">4793</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-4794"><a href="#L-4794"><span class="linenos">4794</span></a>
</span><span id="L-4795"><a href="#L-4795"><span class="linenos">4795</span></a>
-</span><span id="L-4796"><a href="#L-4796"><span class="linenos">4796</span></a>
-</span><span id="L-4797"><a href="#L-4797"><span class="linenos">4797</span></a><span class="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-4798"><a href="#L-4798"><span class="linenos">4798</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-4796"><a href="#L-4796"><span class="linenos">4796</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-4797"><a href="#L-4797"><span class="linenos">4797</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4798"><a href="#L-4798"><span class="linenos">4798</span></a>
</span><span id="L-4799"><a href="#L-4799"><span class="linenos">4799</span></a>
-</span><span id="L-4800"><a href="#L-4800"><span class="linenos">4800</span></a>
-</span><span id="L-4801"><a href="#L-4801"><span class="linenos">4801</span></a><span 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-4802"><a href="#L-4802"><span class="linenos">4802</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-4800"><a href="#L-4800"><span class="linenos">4800</span></a><span class="k">class</span> <span class="nc">IsNan</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4801"><a href="#L-4801"><span class="linenos">4801</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;IS_NAN&quot;</span><span class="p">,</span> <span class="s2">&quot;ISNAN&quot;</span><span class="p">]</span>
+</span><span id="L-4802"><a href="#L-4802"><span class="linenos">4802</span></a>
</span><span id="L-4803"><a href="#L-4803"><span class="linenos">4803</span></a>
-</span><span id="L-4804"><a href="#L-4804"><span class="linenos">4804</span></a>
-</span><span id="L-4805"><a href="#L-4805"><span class="linenos">4805</span></a><span class="k">class</span> <span class="nc">JSONBExtract</span><span class="p">(</span><span class="n">JSONExtract</span><span class="p">):</span>
-</span><span id="L-4806"><a href="#L-4806"><span class="linenos">4806</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-4804"><a href="#L-4804"><span class="linenos">4804</span></a><span class="k">class</span> <span class="nc">IsInf</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4805"><a href="#L-4805"><span class="linenos">4805</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;IS_INF&quot;</span><span class="p">,</span> <span class="s2">&quot;ISINF&quot;</span><span class="p">]</span>
+</span><span id="L-4806"><a href="#L-4806"><span class="linenos">4806</span></a>
</span><span id="L-4807"><a href="#L-4807"><span class="linenos">4807</span></a>
-</span><span id="L-4808"><a href="#L-4808"><span class="linenos">4808</span></a>
-</span><span id="L-4809"><a href="#L-4809"><span class="linenos">4809</span></a><span 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-4810"><a href="#L-4810"><span class="linenos">4810</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-4808"><a href="#L-4808"><span class="linenos">4808</span></a><span class="k">class</span> <span class="nc">FormatJson</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-4809"><a href="#L-4809"><span class="linenos">4809</span></a> <span class="k">pass</span>
+</span><span id="L-4810"><a href="#L-4810"><span class="linenos">4810</span></a>
</span><span id="L-4811"><a href="#L-4811"><span class="linenos">4811</span></a>
-</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="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-4814"><a href="#L-4814"><span class="linenos">4814</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-4815"><a href="#L-4815"><span class="linenos">4815</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSON_FORMAT&quot;</span><span class="p">]</span>
-</span><span id="L-4816"><a href="#L-4816"><span class="linenos">4816</span></a>
-</span><span id="L-4817"><a href="#L-4817"><span class="linenos">4817</span></a>
-</span><span id="L-4818"><a href="#L-4818"><span class="linenos">4818</span></a><span class="c1"># https://dev.mysql.com/doc/refman/8.0/en/json-search-functions.html#operator_member-of</span>
-</span><span id="L-4819"><a href="#L-4819"><span class="linenos">4819</span></a><span class="k">class</span> <span class="nc">JSONArrayContains</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4820"><a href="#L-4820"><span class="linenos">4820</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSON_ARRAY_CONTAINS&quot;</span><span class="p">]</span>
-</span><span id="L-4821"><a href="#L-4821"><span class="linenos">4821</span></a>
-</span><span id="L-4822"><a href="#L-4822"><span class="linenos">4822</span></a>
-</span><span id="L-4823"><a href="#L-4823"><span class="linenos">4823</span></a><span class="k">class</span> <span class="nc">ParseJSON</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4824"><a href="#L-4824"><span class="linenos">4824</span></a> <span class="c1"># BigQuery, Snowflake have PARSE_JSON, Presto has JSON_PARSE</span>
-</span><span id="L-4825"><a href="#L-4825"><span class="linenos">4825</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;PARSE_JSON&quot;</span><span class="p">,</span> <span class="s2">&quot;JSON_PARSE&quot;</span><span class="p">]</span>
-</span><span id="L-4826"><a href="#L-4826"><span class="linenos">4826</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4827"><a href="#L-4827"><span class="linenos">4827</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-4828"><a href="#L-4828"><span class="linenos">4828</span></a>
-</span><span id="L-4829"><a href="#L-4829"><span class="linenos">4829</span></a>
-</span><span id="L-4830"><a href="#L-4830"><span class="linenos">4830</span></a><span class="k">class</span> <span class="nc">Least</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4831"><a href="#L-4831"><span class="linenos">4831</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-4832"><a href="#L-4832"><span class="linenos">4832</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-4833"><a href="#L-4833"><span class="linenos">4833</span></a>
+</span><span id="L-4812"><a href="#L-4812"><span class="linenos">4812</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-4813"><a href="#L-4813"><span class="linenos">4813</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-4814"><a href="#L-4814"><span class="linenos">4814</span></a>
+</span><span id="L-4815"><a href="#L-4815"><span class="linenos">4815</span></a>
+</span><span id="L-4816"><a href="#L-4816"><span class="linenos">4816</span></a><span class="k">class</span> <span class="nc">JSONObject</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4817"><a href="#L-4817"><span class="linenos">4817</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-4818"><a href="#L-4818"><span class="linenos">4818</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-4819"><a href="#L-4819"><span class="linenos">4819</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-4820"><a href="#L-4820"><span class="linenos">4820</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-4821"><a href="#L-4821"><span class="linenos">4821</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-4822"><a href="#L-4822"><span class="linenos">4822</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-4823"><a href="#L-4823"><span class="linenos">4823</span></a> <span class="p">}</span>
+</span><span id="L-4824"><a href="#L-4824"><span class="linenos">4824</span></a>
+</span><span id="L-4825"><a href="#L-4825"><span class="linenos">4825</span></a>
+</span><span id="L-4826"><a href="#L-4826"><span class="linenos">4826</span></a><span class="c1"># https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/JSON_ARRAY.html</span>
+</span><span id="L-4827"><a href="#L-4827"><span class="linenos">4827</span></a><span class="k">class</span> <span class="nc">JSONArray</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4828"><a href="#L-4828"><span class="linenos">4828</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-4829"><a href="#L-4829"><span class="linenos">4829</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-4830"><a href="#L-4830"><span class="linenos">4830</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-4831"><a href="#L-4831"><span class="linenos">4831</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-4832"><a href="#L-4832"><span class="linenos">4832</span></a> <span class="s2">&quot;strict&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-4833"><a href="#L-4833"><span class="linenos">4833</span></a> <span class="p">}</span>
</span><span id="L-4834"><a href="#L-4834"><span class="linenos">4834</span></a>
-</span><span id="L-4835"><a href="#L-4835"><span class="linenos">4835</span></a><span class="k">class</span> <span class="nc">Left</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4836"><a href="#L-4836"><span class="linenos">4836</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-4837"><a href="#L-4837"><span class="linenos">4837</span></a>
-</span><span id="L-4838"><a href="#L-4838"><span class="linenos">4838</span></a>
-</span><span id="L-4839"><a href="#L-4839"><span class="linenos">4839</span></a><span class="k">class</span> <span class="nc">Right</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4840"><a href="#L-4840"><span class="linenos">4840</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-4841"><a href="#L-4841"><span class="linenos">4841</span></a>
-</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="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-4844"><a href="#L-4844"><span class="linenos">4844</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;LENGTH&quot;</span><span class="p">,</span> <span class="s2">&quot;LEN&quot;</span><span class="p">]</span>
+</span><span id="L-4835"><a href="#L-4835"><span class="linenos">4835</span></a>
+</span><span id="L-4836"><a href="#L-4836"><span class="linenos">4836</span></a><span class="c1"># https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/JSON_ARRAYAGG.html</span>
+</span><span id="L-4837"><a href="#L-4837"><span class="linenos">4837</span></a><span class="k">class</span> <span class="nc">JSONArrayAgg</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4838"><a href="#L-4838"><span class="linenos">4838</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-4839"><a href="#L-4839"><span class="linenos">4839</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-4840"><a href="#L-4840"><span class="linenos">4840</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-4841"><a href="#L-4841"><span class="linenos">4841</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-4842"><a href="#L-4842"><span class="linenos">4842</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-4843"><a href="#L-4843"><span class="linenos">4843</span></a> <span class="s2">&quot;strict&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-4844"><a href="#L-4844"><span class="linenos">4844</span></a> <span class="p">}</span>
</span><span id="L-4845"><a href="#L-4845"><span class="linenos">4845</span></a>
</span><span id="L-4846"><a href="#L-4846"><span class="linenos">4846</span></a>
-</span><span id="L-4847"><a href="#L-4847"><span class="linenos">4847</span></a><span class="k">class</span> <span class="nc">Levenshtein</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4848"><a href="#L-4848"><span class="linenos">4848</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-4849"><a href="#L-4849"><span class="linenos">4849</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-4850"><a href="#L-4850"><span class="linenos">4850</span></a> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-4851"><a href="#L-4851"><span class="linenos">4851</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-4852"><a href="#L-4852"><span class="linenos">4852</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-4853"><a href="#L-4853"><span class="linenos">4853</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-4854"><a href="#L-4854"><span class="linenos">4854</span></a> <span class="p">}</span>
+</span><span id="L-4847"><a href="#L-4847"><span class="linenos">4847</span></a><span class="c1"># https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/JSON_TABLE.html</span>
+</span><span id="L-4848"><a href="#L-4848"><span class="linenos">4848</span></a><span class="c1"># Note: parsing of JSON column definitions is currently incomplete.</span>
+</span><span id="L-4849"><a href="#L-4849"><span class="linenos">4849</span></a><span class="k">class</span> <span class="nc">JSONColumnDef</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-4850"><a href="#L-4850"><span class="linenos">4850</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;path&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;nested_schema&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4851"><a href="#L-4851"><span class="linenos">4851</span></a>
+</span><span id="L-4852"><a href="#L-4852"><span class="linenos">4852</span></a>
+</span><span id="L-4853"><a href="#L-4853"><span class="linenos">4853</span></a><span class="k">class</span> <span class="nc">JSONSchema</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-4854"><a href="#L-4854"><span class="linenos">4854</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-4855"><a href="#L-4855"><span class="linenos">4855</span></a>
</span><span id="L-4856"><a href="#L-4856"><span class="linenos">4856</span></a>
-</span><span id="L-4857"><a href="#L-4857"><span class="linenos">4857</span></a><span class="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-4858"><a href="#L-4858"><span class="linenos">4858</span></a> <span class="k">pass</span>
-</span><span id="L-4859"><a href="#L-4859"><span class="linenos">4859</span></a>
-</span><span id="L-4860"><a href="#L-4860"><span class="linenos">4860</span></a>
-</span><span id="L-4861"><a href="#L-4861"><span class="linenos">4861</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-4862"><a href="#L-4862"><span class="linenos">4862</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-4863"><a href="#L-4863"><span class="linenos">4863</span></a>
-</span><span id="L-4864"><a href="#L-4864"><span class="linenos">4864</span></a>
-</span><span id="L-4865"><a href="#L-4865"><span class="linenos">4865</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-4866"><a href="#L-4866"><span class="linenos">4866</span></a> <span class="k">pass</span>
+</span><span id="L-4857"><a href="#L-4857"><span class="linenos">4857</span></a><span class="c1"># # https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/JSON_TABLE.html</span>
+</span><span id="L-4858"><a href="#L-4858"><span class="linenos">4858</span></a><span class="k">class</span> <span class="nc">JSONTable</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4859"><a href="#L-4859"><span class="linenos">4859</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-4860"><a href="#L-4860"><span class="linenos">4860</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-4861"><a href="#L-4861"><span class="linenos">4861</span></a> <span class="s2">&quot;schema&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-4862"><a href="#L-4862"><span class="linenos">4862</span></a> <span class="s2">&quot;path&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-4863"><a href="#L-4863"><span class="linenos">4863</span></a> <span class="s2">&quot;error_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-4864"><a href="#L-4864"><span class="linenos">4864</span></a> <span class="s2">&quot;empty_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-4865"><a href="#L-4865"><span class="linenos">4865</span></a> <span class="p">}</span>
+</span><span id="L-4866"><a href="#L-4866"><span class="linenos">4866</span></a>
</span><span id="L-4867"><a href="#L-4867"><span class="linenos">4867</span></a>
-</span><span id="L-4868"><a href="#L-4868"><span class="linenos">4868</span></a>
-</span><span id="L-4869"><a href="#L-4869"><span class="linenos">4869</span></a><span class="k">class</span> <span class="nc">Log10</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4870"><a href="#L-4870"><span class="linenos">4870</span></a> <span class="k">pass</span>
+</span><span id="L-4868"><a href="#L-4868"><span class="linenos">4868</span></a><span class="k">class</span> <span class="nc">OpenJSONColumnDef</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-4869"><a href="#L-4869"><span class="linenos">4869</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;path&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;as_json&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4870"><a href="#L-4870"><span class="linenos">4870</span></a>
</span><span id="L-4871"><a href="#L-4871"><span class="linenos">4871</span></a>
-</span><span id="L-4872"><a href="#L-4872"><span class="linenos">4872</span></a>
-</span><span id="L-4873"><a href="#L-4873"><span class="linenos">4873</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-4874"><a href="#L-4874"><span class="linenos">4874</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-4872"><a href="#L-4872"><span class="linenos">4872</span></a><span class="k">class</span> <span class="nc">OpenJSON</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4873"><a href="#L-4873"><span class="linenos">4873</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;path&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4874"><a href="#L-4874"><span class="linenos">4874</span></a>
</span><span id="L-4875"><a href="#L-4875"><span class="linenos">4875</span></a>
-</span><span id="L-4876"><a href="#L-4876"><span class="linenos">4876</span></a>
-</span><span id="L-4877"><a href="#L-4877"><span class="linenos">4877</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-4878"><a href="#L-4878"><span class="linenos">4878</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-4876"><a href="#L-4876"><span class="linenos">4876</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-4877"><a href="#L-4877"><span class="linenos">4877</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-4878"><a href="#L-4878"><span class="linenos">4878</span></a>
</span><span id="L-4879"><a href="#L-4879"><span class="linenos">4879</span></a>
-</span><span id="L-4880"><a href="#L-4880"><span class="linenos">4880</span></a>
-</span><span id="L-4881"><a href="#L-4881"><span class="linenos">4881</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-4882"><a href="#L-4882"><span class="linenos">4882</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;LOWER&quot;</span><span class="p">,</span> <span class="s2">&quot;LCASE&quot;</span><span class="p">]</span>
+</span><span id="L-4880"><a href="#L-4880"><span class="linenos">4880</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-4881"><a href="#L-4881"><span class="linenos">4881</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSON_EXTRACT&quot;</span><span class="p">]</span>
+</span><span id="L-4882"><a href="#L-4882"><span class="linenos">4882</span></a>
</span><span id="L-4883"><a href="#L-4883"><span class="linenos">4883</span></a>
-</span><span id="L-4884"><a href="#L-4884"><span class="linenos">4884</span></a>
-</span><span id="L-4885"><a href="#L-4885"><span class="linenos">4885</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-4886"><a href="#L-4886"><span class="linenos">4886</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-4884"><a href="#L-4884"><span class="linenos">4884</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-4885"><a href="#L-4885"><span class="linenos">4885</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-4886"><a href="#L-4886"><span class="linenos">4886</span></a>
</span><span id="L-4887"><a href="#L-4887"><span class="linenos">4887</span></a>
-</span><span id="L-4888"><a href="#L-4888"><span class="linenos">4888</span></a> <span class="nd">@property</span>
-</span><span id="L-4889"><a href="#L-4889"><span class="linenos">4889</span></a> <span class="k">def</span> <span class="nf">keys</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
-</span><span id="L-4890"><a href="#L-4890"><span class="linenos">4890</span></a> <span class="n">keys</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;keys&quot;</span><span class="p">)</span>
-</span><span id="L-4891"><a href="#L-4891"><span class="linenos">4891</span></a> <span class="k">return</span> <span class="n">keys</span><span class="o">.</span><span class="n">expressions</span> <span class="k">if</span> <span class="n">keys</span> <span class="k">else</span> <span class="p">[]</span>
-</span><span id="L-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="nd">@property</span>
-</span><span id="L-4894"><a href="#L-4894"><span class="linenos">4894</span></a> <span class="k">def</span> <span class="nf">values</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
-</span><span id="L-4895"><a href="#L-4895"><span class="linenos">4895</span></a> <span class="n">values</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;values&quot;</span><span class="p">)</span>
-</span><span id="L-4896"><a href="#L-4896"><span class="linenos">4896</span></a> <span class="k">return</span> <span class="n">values</span><span class="o">.</span><span class="n">expressions</span> <span class="k">if</span> <span class="n">values</span> <span class="k">else</span> <span class="p">[]</span>
-</span><span id="L-4897"><a href="#L-4897"><span class="linenos">4897</span></a>
-</span><span id="L-4898"><a href="#L-4898"><span class="linenos">4898</span></a>
-</span><span id="L-4899"><a href="#L-4899"><span class="linenos">4899</span></a><span class="k">class</span> <span class="nc">MapFromEntries</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4900"><a href="#L-4900"><span class="linenos">4900</span></a> <span class="k">pass</span>
-</span><span id="L-4901"><a href="#L-4901"><span class="linenos">4901</span></a>
-</span><span id="L-4902"><a href="#L-4902"><span class="linenos">4902</span></a>
-</span><span id="L-4903"><a href="#L-4903"><span class="linenos">4903</span></a><span class="k">class</span> <span class="nc">StarMap</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4904"><a href="#L-4904"><span class="linenos">4904</span></a> <span class="k">pass</span>
+</span><span id="L-4888"><a href="#L-4888"><span class="linenos">4888</span></a><span class="k">class</span> <span class="nc">JSONBExtract</span><span class="p">(</span><span class="n">JSONExtract</span><span class="p">):</span>
+</span><span id="L-4889"><a href="#L-4889"><span class="linenos">4889</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-4890"><a href="#L-4890"><span class="linenos">4890</span></a>
+</span><span id="L-4891"><a href="#L-4891"><span class="linenos">4891</span></a>
+</span><span id="L-4892"><a href="#L-4892"><span class="linenos">4892</span></a><span class="k">class</span> <span class="nc">JSONBExtractScalar</span><span class="p">(</span><span class="n">JSONExtract</span><span class="p">):</span>
+</span><span id="L-4893"><a href="#L-4893"><span class="linenos">4893</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSONB_EXTRACT_SCALAR&quot;</span><span class="p">]</span>
+</span><span id="L-4894"><a href="#L-4894"><span class="linenos">4894</span></a>
+</span><span id="L-4895"><a href="#L-4895"><span class="linenos">4895</span></a>
+</span><span id="L-4896"><a href="#L-4896"><span class="linenos">4896</span></a><span class="k">class</span> <span class="nc">JSONFormat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4897"><a href="#L-4897"><span class="linenos">4897</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">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-4898"><a href="#L-4898"><span class="linenos">4898</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSON_FORMAT&quot;</span><span class="p">]</span>
+</span><span id="L-4899"><a href="#L-4899"><span class="linenos">4899</span></a>
+</span><span id="L-4900"><a href="#L-4900"><span class="linenos">4900</span></a>
+</span><span id="L-4901"><a href="#L-4901"><span class="linenos">4901</span></a><span class="c1"># https://dev.mysql.com/doc/refman/8.0/en/json-search-functions.html#operator_member-of</span>
+</span><span id="L-4902"><a href="#L-4902"><span class="linenos">4902</span></a><span class="k">class</span> <span class="nc">JSONArrayContains</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4903"><a href="#L-4903"><span class="linenos">4903</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSON_ARRAY_CONTAINS&quot;</span><span class="p">]</span>
+</span><span id="L-4904"><a href="#L-4904"><span class="linenos">4904</span></a>
</span><span id="L-4905"><a href="#L-4905"><span class="linenos">4905</span></a>
-</span><span id="L-4906"><a href="#L-4906"><span class="linenos">4906</span></a>
-</span><span id="L-4907"><a href="#L-4907"><span class="linenos">4907</span></a><span class="k">class</span> <span class="nc">VarMap</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4908"><a href="#L-4908"><span class="linenos">4908</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-4909"><a href="#L-4909"><span class="linenos">4909</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-4910"><a href="#L-4910"><span class="linenos">4910</span></a>
-</span><span id="L-4911"><a href="#L-4911"><span class="linenos">4911</span></a> <span class="nd">@property</span>
-</span><span id="L-4912"><a href="#L-4912"><span class="linenos">4912</span></a> <span class="k">def</span> <span class="nf">keys</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
-</span><span id="L-4913"><a href="#L-4913"><span class="linenos">4913</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;keys&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">expressions</span>
-</span><span id="L-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="nd">@property</span>
-</span><span id="L-4916"><a href="#L-4916"><span class="linenos">4916</span></a> <span class="k">def</span> <span class="nf">values</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
-</span><span id="L-4917"><a href="#L-4917"><span class="linenos">4917</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;values&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">expressions</span>
-</span><span id="L-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><span id="L-4920"><a href="#L-4920"><span class="linenos">4920</span></a><span class="c1"># https://dev.mysql.com/doc/refman/8.0/en/fulltext-search.html</span>
-</span><span id="L-4921"><a href="#L-4921"><span class="linenos">4921</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-4922"><a href="#L-4922"><span class="linenos">4922</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">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-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><span id="L-4925"><a href="#L-4925"><span class="linenos">4925</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-4926"><a href="#L-4926"><span class="linenos">4926</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4927"><a href="#L-4927"><span class="linenos">4927</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-4928"><a href="#L-4928"><span class="linenos">4928</span></a>
+</span><span id="L-4906"><a href="#L-4906"><span class="linenos">4906</span></a><span class="k">class</span> <span class="nc">ParseJSON</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4907"><a href="#L-4907"><span class="linenos">4907</span></a> <span class="c1"># BigQuery, Snowflake have PARSE_JSON, Presto has JSON_PARSE</span>
+</span><span id="L-4908"><a href="#L-4908"><span class="linenos">4908</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;PARSE_JSON&quot;</span><span class="p">,</span> <span class="s2">&quot;JSON_PARSE&quot;</span><span class="p">]</span>
+</span><span id="L-4909"><a href="#L-4909"><span class="linenos">4909</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">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-4910"><a href="#L-4910"><span class="linenos">4910</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-4911"><a href="#L-4911"><span class="linenos">4911</span></a>
+</span><span id="L-4912"><a href="#L-4912"><span class="linenos">4912</span></a>
+</span><span id="L-4913"><a href="#L-4913"><span class="linenos">4913</span></a><span class="c1"># https://docs.snowflake.com/en/sql-reference/functions/get_path</span>
+</span><span id="L-4914"><a href="#L-4914"><span class="linenos">4914</span></a><span class="k">class</span> <span class="nc">GetPath</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4915"><a href="#L-4915"><span class="linenos">4915</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-4916"><a href="#L-4916"><span class="linenos">4916</span></a>
+</span><span id="L-4917"><a href="#L-4917"><span class="linenos">4917</span></a> <span class="nd">@property</span>
+</span><span id="L-4918"><a href="#L-4918"><span class="linenos">4918</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-4919"><a href="#L-4919"><span class="linenos">4919</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">output_name</span>
+</span><span id="L-4920"><a href="#L-4920"><span class="linenos">4920</span></a>
+</span><span id="L-4921"><a href="#L-4921"><span class="linenos">4921</span></a>
+</span><span id="L-4922"><a href="#L-4922"><span class="linenos">4922</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-4923"><a href="#L-4923"><span class="linenos">4923</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">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-4924"><a href="#L-4924"><span class="linenos">4924</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-4925"><a href="#L-4925"><span class="linenos">4925</span></a>
+</span><span id="L-4926"><a href="#L-4926"><span class="linenos">4926</span></a>
+</span><span id="L-4927"><a href="#L-4927"><span class="linenos">4927</span></a><span class="k">class</span> <span class="nc">Left</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4928"><a href="#L-4928"><span class="linenos">4928</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-4929"><a href="#L-4929"><span class="linenos">4929</span></a>
-</span><span id="L-4930"><a href="#L-4930"><span class="linenos">4930</span></a><span 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-4931"><a href="#L-4931"><span class="linenos">4931</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-4932"><a href="#L-4932"><span class="linenos">4932</span></a>
+</span><span id="L-4930"><a href="#L-4930"><span class="linenos">4930</span></a>
+</span><span id="L-4931"><a href="#L-4931"><span class="linenos">4931</span></a><span class="k">class</span> <span class="nc">Right</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4932"><a href="#L-4932"><span class="linenos">4932</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-4933"><a href="#L-4933"><span class="linenos">4933</span></a>
-</span><span id="L-4934"><a href="#L-4934"><span class="linenos">4934</span></a><span class="c1"># Represents the variant of the MD5 function that returns a binary value</span>
-</span><span id="L-4935"><a href="#L-4935"><span class="linenos">4935</span></a><span class="k">class</span> <span class="nc">MD5Digest</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4936"><a href="#L-4936"><span class="linenos">4936</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;MD5_DIGEST&quot;</span><span class="p">]</span>
+</span><span id="L-4934"><a href="#L-4934"><span class="linenos">4934</span></a>
+</span><span id="L-4935"><a href="#L-4935"><span class="linenos">4935</span></a><span class="k">class</span> <span class="nc">Length</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4936"><a href="#L-4936"><span class="linenos">4936</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;LENGTH&quot;</span><span class="p">,</span> <span class="s2">&quot;LEN&quot;</span><span class="p">]</span>
</span><span id="L-4937"><a href="#L-4937"><span class="linenos">4937</span></a>
</span><span id="L-4938"><a href="#L-4938"><span class="linenos">4938</span></a>
-</span><span id="L-4939"><a href="#L-4939"><span class="linenos">4939</span></a><span class="k">class</span> <span class="nc">Min</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-4940"><a href="#L-4940"><span class="linenos">4940</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">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-4941"><a href="#L-4941"><span class="linenos">4941</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</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><span id="L-4944"><a href="#L-4944"><span class="linenos">4944</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-4945"><a href="#L-4945"><span class="linenos">4945</span></a> <span class="k">pass</span>
-</span><span id="L-4946"><a href="#L-4946"><span class="linenos">4946</span></a>
+</span><span id="L-4939"><a href="#L-4939"><span class="linenos">4939</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-4940"><a href="#L-4940"><span class="linenos">4940</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-4941"><a href="#L-4941"><span class="linenos">4941</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-4942"><a href="#L-4942"><span class="linenos">4942</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-4943"><a href="#L-4943"><span class="linenos">4943</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-4944"><a href="#L-4944"><span class="linenos">4944</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-4945"><a href="#L-4945"><span class="linenos">4945</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-4946"><a href="#L-4946"><span class="linenos">4946</span></a> <span class="p">}</span>
</span><span id="L-4947"><a href="#L-4947"><span class="linenos">4947</span></a>
-</span><span id="L-4948"><a href="#L-4948"><span class="linenos">4948</span></a><span class="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-4949"><a href="#L-4949"><span class="linenos">4949</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">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-4950"><a href="#L-4950"><span class="linenos">4950</span></a>
+</span><span id="L-4948"><a href="#L-4948"><span class="linenos">4948</span></a>
+</span><span id="L-4949"><a href="#L-4949"><span class="linenos">4949</span></a><span class="k">class</span> <span class="nc">Ln</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4950"><a href="#L-4950"><span class="linenos">4950</span></a> <span class="k">pass</span>
</span><span id="L-4951"><a href="#L-4951"><span class="linenos">4951</span></a>
-</span><span id="L-4952"><a href="#L-4952"><span class="linenos">4952</span></a><span class="c1"># https://cloud.google.com/bigquery/docs/reference/standard-sql/bigqueryml-syntax-predict#mlpredict_function</span>
-</span><span id="L-4953"><a href="#L-4953"><span class="linenos">4953</span></a><span class="k">class</span> <span class="nc">Predict</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4954"><a href="#L-4954"><span class="linenos">4954</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;params_struct&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-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">class</span> <span class="nc">Log</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4954"><a href="#L-4954"><span class="linenos">4954</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-4955"><a href="#L-4955"><span class="linenos">4955</span></a>
</span><span id="L-4956"><a href="#L-4956"><span class="linenos">4956</span></a>
-</span><span id="L-4957"><a href="#L-4957"><span class="linenos">4957</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-4958"><a href="#L-4958"><span class="linenos">4958</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-4957"><a href="#L-4957"><span class="linenos">4957</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-4958"><a href="#L-4958"><span class="linenos">4958</span></a> <span class="k">pass</span>
</span><span id="L-4959"><a href="#L-4959"><span class="linenos">4959</span></a>
</span><span id="L-4960"><a href="#L-4960"><span class="linenos">4960</span></a>
-</span><span id="L-4961"><a href="#L-4961"><span class="linenos">4961</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-4962"><a href="#L-4962"><span class="linenos">4962</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-4961"><a href="#L-4961"><span class="linenos">4961</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-4962"><a href="#L-4962"><span class="linenos">4962</span></a> <span class="k">pass</span>
</span><span id="L-4963"><a href="#L-4963"><span class="linenos">4963</span></a>
</span><span id="L-4964"><a href="#L-4964"><span class="linenos">4964</span></a>
-</span><span id="L-4965"><a href="#L-4965"><span class="linenos">4965</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-4966"><a href="#L-4966"><span class="linenos">4966</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4965"><a href="#L-4965"><span class="linenos">4965</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-4966"><a href="#L-4966"><span class="linenos">4966</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-4967"><a href="#L-4967"><span class="linenos">4967</span></a>
</span><span id="L-4968"><a href="#L-4968"><span class="linenos">4968</span></a>
-</span><span id="L-4969"><a href="#L-4969"><span class="linenos">4969</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-4970"><a href="#L-4970"><span class="linenos">4970</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-4969"><a href="#L-4969"><span class="linenos">4969</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-4970"><a href="#L-4970"><span class="linenos">4970</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-4971"><a href="#L-4971"><span class="linenos">4971</span></a>
</span><span id="L-4972"><a href="#L-4972"><span class="linenos">4972</span></a>
-</span><span id="L-4973"><a href="#L-4973"><span class="linenos">4973</span></a><span 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-4974"><a href="#L-4974"><span class="linenos">4974</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4973"><a href="#L-4973"><span class="linenos">4973</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-4974"><a href="#L-4974"><span class="linenos">4974</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-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><span id="L-4977"><a href="#L-4977"><span class="linenos">4977</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-4978"><a href="#L-4978"><span class="linenos">4978</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4977"><a href="#L-4977"><span class="linenos">4977</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-4978"><a href="#L-4978"><span class="linenos">4978</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-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><span id="L-4981"><a href="#L-4981"><span class="linenos">4981</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-4982"><a href="#L-4982"><span class="linenos">4982</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-4983"><a href="#L-4983"><span class="linenos">4983</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-4984"><a href="#L-4984"><span class="linenos">4984</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-4985"><a href="#L-4985"><span class="linenos">4985</span></a>
-</span><span id="L-4986"><a href="#L-4986"><span class="linenos">4986</span></a>
-</span><span id="L-4987"><a href="#L-4987"><span class="linenos">4987</span></a><span class="k">class</span> <span class="nc">Reduce</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4988"><a href="#L-4988"><span class="linenos">4988</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4980"><a href="#L-4980"><span class="linenos">4980</span></a> <span class="nd">@property</span>
+</span><span id="L-4981"><a href="#L-4981"><span class="linenos">4981</span></a> <span class="k">def</span> <span class="nf">keys</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="L-4982"><a href="#L-4982"><span class="linenos">4982</span></a> <span class="n">keys</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;keys&quot;</span><span class="p">)</span>
+</span><span id="L-4983"><a href="#L-4983"><span class="linenos">4983</span></a> <span class="k">return</span> <span class="n">keys</span><span class="o">.</span><span class="n">expressions</span> <span class="k">if</span> <span class="n">keys</span> <span class="k">else</span> <span class="p">[]</span>
+</span><span id="L-4984"><a href="#L-4984"><span class="linenos">4984</span></a>
+</span><span id="L-4985"><a href="#L-4985"><span class="linenos">4985</span></a> <span class="nd">@property</span>
+</span><span id="L-4986"><a href="#L-4986"><span class="linenos">4986</span></a> <span class="k">def</span> <span class="nf">values</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="L-4987"><a href="#L-4987"><span class="linenos">4987</span></a> <span class="n">values</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;values&quot;</span><span class="p">)</span>
+</span><span id="L-4988"><a href="#L-4988"><span class="linenos">4988</span></a> <span class="k">return</span> <span class="n">values</span><span class="o">.</span><span class="n">expressions</span> <span class="k">if</span> <span class="n">values</span> <span class="k">else</span> <span class="p">[]</span>
</span><span id="L-4989"><a href="#L-4989"><span class="linenos">4989</span></a>
</span><span id="L-4990"><a href="#L-4990"><span class="linenos">4990</span></a>
-</span><span id="L-4991"><a href="#L-4991"><span class="linenos">4991</span></a><span class="k">class</span> <span class="nc">RegexpExtract</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4992"><a href="#L-4992"><span class="linenos">4992</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-4993"><a href="#L-4993"><span class="linenos">4993</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-4994"><a href="#L-4994"><span class="linenos">4994</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-4995"><a href="#L-4995"><span class="linenos">4995</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-4996"><a href="#L-4996"><span class="linenos">4996</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-4997"><a href="#L-4997"><span class="linenos">4997</span></a> <span class="s2">&quot;parameters&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-4998"><a href="#L-4998"><span class="linenos">4998</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-4999"><a href="#L-4999"><span class="linenos">4999</span></a> <span class="p">}</span>
-</span><span id="L-5000"><a href="#L-5000"><span class="linenos">5000</span></a>
-</span><span id="L-5001"><a href="#L-5001"><span class="linenos">5001</span></a>
-</span><span id="L-5002"><a href="#L-5002"><span class="linenos">5002</span></a><span class="k">class</span> <span class="nc">RegexpReplace</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5003"><a href="#L-5003"><span class="linenos">5003</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-5004"><a href="#L-5004"><span class="linenos">5004</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-5005"><a href="#L-5005"><span class="linenos">5005</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-5006"><a href="#L-5006"><span class="linenos">5006</span></a> <span class="s2">&quot;replacement&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-5007"><a href="#L-5007"><span class="linenos">5007</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-5008"><a href="#L-5008"><span class="linenos">5008</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-5009"><a href="#L-5009"><span class="linenos">5009</span></a> <span class="s2">&quot;parameters&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-5010"><a href="#L-5010"><span class="linenos">5010</span></a> <span class="s2">&quot;modifiers&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-5011"><a href="#L-5011"><span class="linenos">5011</span></a> <span class="p">}</span>
-</span><span id="L-5012"><a href="#L-5012"><span class="linenos">5012</span></a>
-</span><span id="L-5013"><a href="#L-5013"><span class="linenos">5013</span></a>
-</span><span id="L-5014"><a href="#L-5014"><span class="linenos">5014</span></a><span class="k">class</span> <span class="nc">RegexpLike</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5015"><a href="#L-5015"><span class="linenos">5015</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-4991"><a href="#L-4991"><span class="linenos">4991</span></a><span class="k">class</span> <span class="nc">MapFromEntries</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4992"><a href="#L-4992"><span class="linenos">4992</span></a> <span class="k">pass</span>
+</span><span id="L-4993"><a href="#L-4993"><span class="linenos">4993</span></a>
+</span><span id="L-4994"><a href="#L-4994"><span class="linenos">4994</span></a>
+</span><span id="L-4995"><a href="#L-4995"><span class="linenos">4995</span></a><span class="k">class</span> <span class="nc">StarMap</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4996"><a href="#L-4996"><span class="linenos">4996</span></a> <span class="k">pass</span>
+</span><span id="L-4997"><a href="#L-4997"><span class="linenos">4997</span></a>
+</span><span id="L-4998"><a href="#L-4998"><span class="linenos">4998</span></a>
+</span><span id="L-4999"><a href="#L-4999"><span class="linenos">4999</span></a><span 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-5000"><a href="#L-5000"><span class="linenos">5000</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-5001"><a href="#L-5001"><span class="linenos">5001</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-5002"><a href="#L-5002"><span class="linenos">5002</span></a>
+</span><span id="L-5003"><a href="#L-5003"><span class="linenos">5003</span></a> <span class="nd">@property</span>
+</span><span id="L-5004"><a href="#L-5004"><span class="linenos">5004</span></a> <span class="k">def</span> <span class="nf">keys</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="L-5005"><a href="#L-5005"><span class="linenos">5005</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;keys&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">expressions</span>
+</span><span id="L-5006"><a href="#L-5006"><span class="linenos">5006</span></a>
+</span><span id="L-5007"><a href="#L-5007"><span class="linenos">5007</span></a> <span class="nd">@property</span>
+</span><span id="L-5008"><a href="#L-5008"><span class="linenos">5008</span></a> <span class="k">def</span> <span class="nf">values</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="L-5009"><a href="#L-5009"><span class="linenos">5009</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;values&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">expressions</span>
+</span><span id="L-5010"><a href="#L-5010"><span class="linenos">5010</span></a>
+</span><span id="L-5011"><a href="#L-5011"><span class="linenos">5011</span></a>
+</span><span id="L-5012"><a href="#L-5012"><span class="linenos">5012</span></a><span class="c1"># https://dev.mysql.com/doc/refman/8.0/en/fulltext-search.html</span>
+</span><span id="L-5013"><a href="#L-5013"><span class="linenos">5013</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-5014"><a href="#L-5014"><span class="linenos">5014</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-5015"><a href="#L-5015"><span class="linenos">5015</span></a>
</span><span id="L-5016"><a href="#L-5016"><span class="linenos">5016</span></a>
-</span><span id="L-5017"><a href="#L-5017"><span class="linenos">5017</span></a>
-</span><span id="L-5018"><a href="#L-5018"><span class="linenos">5018</span></a><span class="k">class</span> <span class="nc">RegexpILike</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5019"><a href="#L-5019"><span class="linenos">5019</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;flag&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-5017"><a href="#L-5017"><span class="linenos">5017</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-5018"><a href="#L-5018"><span class="linenos">5018</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-5019"><a href="#L-5019"><span class="linenos">5019</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="L-5020"><a href="#L-5020"><span class="linenos">5020</span></a>
</span><span id="L-5021"><a href="#L-5021"><span class="linenos">5021</span></a>
-</span><span id="L-5022"><a href="#L-5022"><span class="linenos">5022</span></a><span class="c1"># https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.split.html</span>
-</span><span id="L-5023"><a href="#L-5023"><span class="linenos">5023</span></a><span class="c1"># limit is the number of times a pattern is applied</span>
-</span><span id="L-5024"><a href="#L-5024"><span class="linenos">5024</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-5025"><a href="#L-5025"><span class="linenos">5025</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;limit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-5026"><a href="#L-5026"><span class="linenos">5026</span></a>
-</span><span id="L-5027"><a href="#L-5027"><span class="linenos">5027</span></a>
-</span><span id="L-5028"><a href="#L-5028"><span class="linenos">5028</span></a><span class="k">class</span> <span class="nc">Repeat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5029"><a href="#L-5029"><span class="linenos">5029</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;times&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-5022"><a href="#L-5022"><span class="linenos">5022</span></a><span class="k">class</span> <span class="nc">MD5</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5023"><a href="#L-5023"><span class="linenos">5023</span></a> <span class="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-5024"><a href="#L-5024"><span class="linenos">5024</span></a>
+</span><span id="L-5025"><a href="#L-5025"><span class="linenos">5025</span></a>
+</span><span id="L-5026"><a href="#L-5026"><span class="linenos">5026</span></a><span class="c1"># Represents the variant of the MD5 function that returns a binary value</span>
+</span><span id="L-5027"><a href="#L-5027"><span class="linenos">5027</span></a><span class="k">class</span> <span class="nc">MD5Digest</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5028"><a href="#L-5028"><span class="linenos">5028</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;MD5_DIGEST&quot;</span><span class="p">]</span>
+</span><span id="L-5029"><a href="#L-5029"><span class="linenos">5029</span></a>
</span><span id="L-5030"><a href="#L-5030"><span class="linenos">5030</span></a>
-</span><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="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-5033"><a href="#L-5033"><span class="linenos">5033</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;decimals&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-5031"><a href="#L-5031"><span class="linenos">5031</span></a><span class="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-5032"><a href="#L-5032"><span class="linenos">5032</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5033"><a href="#L-5033"><span class="linenos">5033</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="L-5034"><a href="#L-5034"><span class="linenos">5034</span></a>
</span><span id="L-5035"><a href="#L-5035"><span class="linenos">5035</span></a>
-</span><span id="L-5036"><a href="#L-5036"><span class="linenos">5036</span></a><span 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-5037"><a href="#L-5037"><span class="linenos">5037</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-5036"><a href="#L-5036"><span class="linenos">5036</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-5037"><a href="#L-5037"><span class="linenos">5037</span></a> <span class="k">pass</span>
</span><span id="L-5038"><a href="#L-5038"><span class="linenos">5038</span></a>
</span><span id="L-5039"><a href="#L-5039"><span class="linenos">5039</span></a>
-</span><span id="L-5040"><a href="#L-5040"><span class="linenos">5040</span></a><span class="k">class</span> <span class="nc">SafeDivide</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5041"><a href="#L-5041"><span class="linenos">5041</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-5040"><a href="#L-5040"><span class="linenos">5040</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-5041"><a href="#L-5041"><span class="linenos">5041</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-5042"><a href="#L-5042"><span class="linenos">5042</span></a>
</span><span id="L-5043"><a href="#L-5043"><span class="linenos">5043</span></a>
-</span><span id="L-5044"><a href="#L-5044"><span class="linenos">5044</span></a><span class="k">class</span> <span class="nc">SHA</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5045"><a href="#L-5045"><span class="linenos">5045</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-5046"><a href="#L-5046"><span class="linenos">5046</span></a>
+</span><span id="L-5044"><a href="#L-5044"><span class="linenos">5044</span></a><span class="c1"># https://cloud.google.com/bigquery/docs/reference/standard-sql/bigqueryml-syntax-predict#mlpredict_function</span>
+</span><span id="L-5045"><a href="#L-5045"><span class="linenos">5045</span></a><span class="k">class</span> <span class="nc">Predict</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5046"><a href="#L-5046"><span class="linenos">5046</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;params_struct&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-5047"><a href="#L-5047"><span class="linenos">5047</span></a>
-</span><span id="L-5048"><a href="#L-5048"><span class="linenos">5048</span></a><span class="k">class</span> <span class="nc">SHA2</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5049"><a href="#L-5049"><span class="linenos">5049</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;SHA2&quot;</span><span class="p">]</span>
-</span><span id="L-5050"><a href="#L-5050"><span class="linenos">5050</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;length&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-5048"><a href="#L-5048"><span class="linenos">5048</span></a>
+</span><span id="L-5049"><a href="#L-5049"><span class="linenos">5049</span></a><span 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-5050"><a href="#L-5050"><span class="linenos">5050</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;POWER&quot;</span><span class="p">,</span> <span class="s2">&quot;POW&quot;</span><span class="p">]</span>
</span><span id="L-5051"><a href="#L-5051"><span class="linenos">5051</span></a>
</span><span id="L-5052"><a href="#L-5052"><span class="linenos">5052</span></a>
-</span><span id="L-5053"><a href="#L-5053"><span class="linenos">5053</span></a><span class="k">class</span> <span class="nc">SortArray</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5054"><a href="#L-5054"><span class="linenos">5054</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;asc&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-5053"><a href="#L-5053"><span class="linenos">5053</span></a><span class="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-5054"><a href="#L-5054"><span class="linenos">5054</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-5055"><a href="#L-5055"><span class="linenos">5055</span></a>
</span><span id="L-5056"><a href="#L-5056"><span class="linenos">5056</span></a>
-</span><span id="L-5057"><a href="#L-5057"><span class="linenos">5057</span></a><span 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-5058"><a href="#L-5058"><span class="linenos">5058</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;limit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-5057"><a href="#L-5057"><span class="linenos">5057</span></a><span 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-5058"><a href="#L-5058"><span class="linenos">5058</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-5059"><a href="#L-5059"><span class="linenos">5059</span></a>
</span><span id="L-5060"><a href="#L-5060"><span class="linenos">5060</span></a>
-</span><span id="L-5061"><a href="#L-5061"><span class="linenos">5061</span></a><span class="c1"># Start may be omitted in the case of postgres</span>
-</span><span id="L-5062"><a href="#L-5062"><span class="linenos">5062</span></a><span class="c1"># https://www.postgresql.org/docs/9.1/functions-string.html @ Table 9-6</span>
-</span><span id="L-5063"><a href="#L-5063"><span class="linenos">5063</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-5064"><a href="#L-5064"><span class="linenos">5064</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5065"><a href="#L-5065"><span class="linenos">5065</span></a>
-</span><span id="L-5066"><a href="#L-5066"><span class="linenos">5066</span></a>
-</span><span id="L-5067"><a href="#L-5067"><span class="linenos">5067</span></a><span class="k">class</span> <span class="nc">StandardHash</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5068"><a href="#L-5068"><span class="linenos">5068</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-5069"><a href="#L-5069"><span class="linenos">5069</span></a>
-</span><span id="L-5070"><a href="#L-5070"><span class="linenos">5070</span></a>
-</span><span id="L-5071"><a href="#L-5071"><span class="linenos">5071</span></a><span class="k">class</span> <span class="nc">StartsWith</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5072"><a href="#L-5072"><span class="linenos">5072</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;STARTS_WITH&quot;</span><span class="p">,</span> <span class="s2">&quot;STARTSWITH&quot;</span><span class="p">]</span>
-</span><span id="L-5073"><a href="#L-5073"><span class="linenos">5073</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-5074"><a href="#L-5074"><span class="linenos">5074</span></a>
-</span><span id="L-5075"><a href="#L-5075"><span class="linenos">5075</span></a>
-</span><span id="L-5076"><a href="#L-5076"><span class="linenos">5076</span></a><span class="k">class</span> <span class="nc">StrPosition</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5077"><a href="#L-5077"><span class="linenos">5077</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-5078"><a href="#L-5078"><span class="linenos">5078</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-5079"><a href="#L-5079"><span class="linenos">5079</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-5080"><a href="#L-5080"><span class="linenos">5080</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-5081"><a href="#L-5081"><span class="linenos">5081</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-5082"><a href="#L-5082"><span class="linenos">5082</span></a> <span class="p">}</span>
-</span><span id="L-5083"><a href="#L-5083"><span class="linenos">5083</span></a>
-</span><span id="L-5084"><a href="#L-5084"><span class="linenos">5084</span></a>
-</span><span id="L-5085"><a href="#L-5085"><span class="linenos">5085</span></a><span class="k">class</span> <span class="nc">StrToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5086"><a href="#L-5086"><span class="linenos">5086</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-5061"><a href="#L-5061"><span class="linenos">5061</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-5062"><a href="#L-5062"><span class="linenos">5062</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;quantile&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-5063"><a href="#L-5063"><span class="linenos">5063</span></a>
+</span><span id="L-5064"><a href="#L-5064"><span class="linenos">5064</span></a>
+</span><span id="L-5065"><a href="#L-5065"><span class="linenos">5065</span></a><span 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-5066"><a href="#L-5066"><span class="linenos">5066</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-5067"><a href="#L-5067"><span class="linenos">5067</span></a>
+</span><span id="L-5068"><a href="#L-5068"><span class="linenos">5068</span></a>
+</span><span id="L-5069"><a href="#L-5069"><span class="linenos">5069</span></a><span class="k">class</span> <span class="nc">Rand</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5070"><a href="#L-5070"><span class="linenos">5070</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;RAND&quot;</span><span class="p">,</span> <span class="s2">&quot;RANDOM&quot;</span><span class="p">]</span>
+</span><span id="L-5071"><a href="#L-5071"><span class="linenos">5071</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-5072"><a href="#L-5072"><span class="linenos">5072</span></a>
+</span><span id="L-5073"><a href="#L-5073"><span class="linenos">5073</span></a>
+</span><span id="L-5074"><a href="#L-5074"><span class="linenos">5074</span></a><span class="k">class</span> <span class="nc">Randn</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5075"><a href="#L-5075"><span class="linenos">5075</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-5076"><a href="#L-5076"><span class="linenos">5076</span></a>
+</span><span id="L-5077"><a href="#L-5077"><span class="linenos">5077</span></a>
+</span><span id="L-5078"><a href="#L-5078"><span class="linenos">5078</span></a><span class="k">class</span> <span class="nc">RangeN</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5079"><a href="#L-5079"><span class="linenos">5079</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5080"><a href="#L-5080"><span class="linenos">5080</span></a>
+</span><span id="L-5081"><a href="#L-5081"><span class="linenos">5081</span></a>
+</span><span id="L-5082"><a href="#L-5082"><span class="linenos">5082</span></a><span class="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-5083"><a href="#L-5083"><span class="linenos">5083</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;READ_CSV&quot;</span><span class="p">]</span>
+</span><span id="L-5084"><a href="#L-5084"><span class="linenos">5084</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-5085"><a href="#L-5085"><span class="linenos">5085</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5086"><a href="#L-5086"><span class="linenos">5086</span></a>
</span><span id="L-5087"><a href="#L-5087"><span class="linenos">5087</span></a>
-</span><span id="L-5088"><a href="#L-5088"><span class="linenos">5088</span></a>
-</span><span id="L-5089"><a href="#L-5089"><span class="linenos">5089</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-5090"><a href="#L-5090"><span class="linenos">5090</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-5088"><a href="#L-5088"><span class="linenos">5088</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-5089"><a href="#L-5089"><span class="linenos">5089</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-5090"><a href="#L-5090"><span class="linenos">5090</span></a>
</span><span id="L-5091"><a href="#L-5091"><span class="linenos">5091</span></a>
-</span><span id="L-5092"><a href="#L-5092"><span class="linenos">5092</span></a>
-</span><span id="L-5093"><a href="#L-5093"><span class="linenos">5093</span></a><span class="c1"># Spark allows unix_timestamp()</span>
-</span><span id="L-5094"><a href="#L-5094"><span class="linenos">5094</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-5095"><a href="#L-5095"><span class="linenos">5095</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-5096"><a href="#L-5096"><span class="linenos">5096</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-5097"><a href="#L-5097"><span class="linenos">5097</span></a>
-</span><span id="L-5098"><a href="#L-5098"><span class="linenos">5098</span></a>
-</span><span id="L-5099"><a href="#L-5099"><span class="linenos">5099</span></a><span class="c1"># https://prestodb.io/docs/current/functions/string.html</span>
-</span><span id="L-5100"><a href="#L-5100"><span class="linenos">5100</span></a><span class="c1"># https://spark.apache.org/docs/latest/api/sql/index.html#str_to_map</span>
-</span><span id="L-5101"><a href="#L-5101"><span class="linenos">5101</span></a><span class="k">class</span> <span class="nc">StrToMap</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5102"><a href="#L-5102"><span class="linenos">5102</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-5103"><a href="#L-5103"><span class="linenos">5103</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-5104"><a href="#L-5104"><span class="linenos">5104</span></a> <span class="s2">&quot;pair_delim&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-5105"><a href="#L-5105"><span class="linenos">5105</span></a> <span class="s2">&quot;key_value_delim&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-5106"><a href="#L-5106"><span class="linenos">5106</span></a> <span class="s2">&quot;duplicate_resolution_callback&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-5107"><a href="#L-5107"><span class="linenos">5107</span></a> <span class="p">}</span>
-</span><span id="L-5108"><a href="#L-5108"><span class="linenos">5108</span></a>
-</span><span id="L-5109"><a href="#L-5109"><span class="linenos">5109</span></a>
-</span><span id="L-5110"><a href="#L-5110"><span class="linenos">5110</span></a><span class="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-5111"><a href="#L-5111"><span class="linenos">5111</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;culture&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-5112"><a href="#L-5112"><span class="linenos">5112</span></a>
+</span><span id="L-5092"><a href="#L-5092"><span class="linenos">5092</span></a><span class="k">class</span> <span class="nc">RegexpExtract</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5093"><a href="#L-5093"><span class="linenos">5093</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-5094"><a href="#L-5094"><span class="linenos">5094</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-5095"><a href="#L-5095"><span class="linenos">5095</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-5096"><a href="#L-5096"><span class="linenos">5096</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-5097"><a href="#L-5097"><span class="linenos">5097</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-5098"><a href="#L-5098"><span class="linenos">5098</span></a> <span class="s2">&quot;parameters&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-5099"><a href="#L-5099"><span class="linenos">5099</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-5100"><a href="#L-5100"><span class="linenos">5100</span></a> <span class="p">}</span>
+</span><span id="L-5101"><a href="#L-5101"><span class="linenos">5101</span></a>
+</span><span id="L-5102"><a href="#L-5102"><span class="linenos">5102</span></a>
+</span><span id="L-5103"><a href="#L-5103"><span class="linenos">5103</span></a><span class="k">class</span> <span class="nc">RegexpReplace</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5104"><a href="#L-5104"><span class="linenos">5104</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-5105"><a href="#L-5105"><span class="linenos">5105</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-5106"><a href="#L-5106"><span class="linenos">5106</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-5107"><a href="#L-5107"><span class="linenos">5107</span></a> <span class="s2">&quot;replacement&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-5108"><a href="#L-5108"><span class="linenos">5108</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-5109"><a href="#L-5109"><span class="linenos">5109</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-5110"><a href="#L-5110"><span class="linenos">5110</span></a> <span class="s2">&quot;parameters&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-5111"><a href="#L-5111"><span class="linenos">5111</span></a> <span class="s2">&quot;modifiers&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-5112"><a href="#L-5112"><span class="linenos">5112</span></a> <span class="p">}</span>
</span><span id="L-5113"><a href="#L-5113"><span class="linenos">5113</span></a>
-</span><span id="L-5114"><a href="#L-5114"><span class="linenos">5114</span></a><span class="k">class</span> <span class="nc">FromBase</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5115"><a href="#L-5115"><span class="linenos">5115</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-5116"><a href="#L-5116"><span class="linenos">5116</span></a>
+</span><span id="L-5114"><a href="#L-5114"><span class="linenos">5114</span></a>
+</span><span id="L-5115"><a href="#L-5115"><span class="linenos">5115</span></a><span class="k">class</span> <span class="nc">RegexpLike</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5116"><a href="#L-5116"><span class="linenos">5116</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-5117"><a href="#L-5117"><span class="linenos">5117</span></a>
-</span><span id="L-5118"><a href="#L-5118"><span class="linenos">5118</span></a><span class="k">class</span> <span class="nc">Struct</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5119"><a href="#L-5119"><span class="linenos">5119</span></a> <span class="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-5120"><a href="#L-5120"><span class="linenos">5120</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-5118"><a href="#L-5118"><span class="linenos">5118</span></a>
+</span><span id="L-5119"><a href="#L-5119"><span class="linenos">5119</span></a><span class="k">class</span> <span class="nc">RegexpILike</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5120"><a href="#L-5120"><span class="linenos">5120</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-5121"><a href="#L-5121"><span class="linenos">5121</span></a>
</span><span id="L-5122"><a href="#L-5122"><span class="linenos">5122</span></a>
-</span><span id="L-5123"><a href="#L-5123"><span class="linenos">5123</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-5124"><a href="#L-5124"><span class="linenos">5124</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</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"># https://learn.microsoft.com/en-us/sql/t-sql/functions/stuff-transact-sql?view=sql-server-ver16</span>
-</span><span id="L-5128"><a href="#L-5128"><span class="linenos">5128</span></a><span class="c1"># https://docs.snowflake.com/en/sql-reference/functions/insert</span>
-</span><span id="L-5129"><a href="#L-5129"><span class="linenos">5129</span></a><span class="k">class</span> <span class="nc">Stuff</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5130"><a href="#L-5130"><span class="linenos">5130</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;STUFF&quot;</span><span class="p">,</span> <span class="s2">&quot;INSERT&quot;</span><span class="p">]</span>
-</span><span id="L-5131"><a href="#L-5131"><span class="linenos">5131</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;start&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;length&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-5123"><a href="#L-5123"><span class="linenos">5123</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-5124"><a href="#L-5124"><span class="linenos">5124</span></a><span class="c1"># limit is the number of times a pattern is applied</span>
+</span><span id="L-5125"><a href="#L-5125"><span class="linenos">5125</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-5126"><a href="#L-5126"><span class="linenos">5126</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-5127"><a href="#L-5127"><span class="linenos">5127</span></a>
+</span><span id="L-5128"><a href="#L-5128"><span class="linenos">5128</span></a>
+</span><span id="L-5129"><a href="#L-5129"><span class="linenos">5129</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-5130"><a href="#L-5130"><span class="linenos">5130</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;times&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</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><span id="L-5133"><a href="#L-5133"><span class="linenos">5133</span></a>
-</span><span id="L-5134"><a href="#L-5134"><span class="linenos">5134</span></a><span class="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-5135"><a href="#L-5135"><span class="linenos">5135</span></a> <span class="k">pass</span>
-</span><span id="L-5136"><a href="#L-5136"><span class="linenos">5136</span></a>
+</span><span id="L-5133"><a href="#L-5133"><span class="linenos">5133</span></a><span class="c1"># https://learn.microsoft.com/en-us/sql/t-sql/functions/round-transact-sql?view=sql-server-ver16</span>
+</span><span id="L-5134"><a href="#L-5134"><span class="linenos">5134</span></a><span class="c1"># tsql third argument function == trunctaion if not 0</span>
+</span><span id="L-5135"><a href="#L-5135"><span class="linenos">5135</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-5136"><a href="#L-5136"><span class="linenos">5136</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;decimals&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;truncate&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-5137"><a href="#L-5137"><span class="linenos">5137</span></a>
-</span><span id="L-5138"><a href="#L-5138"><span class="linenos">5138</span></a><span class="k">class</span> <span class="nc">Sqrt</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5139"><a href="#L-5139"><span class="linenos">5139</span></a> <span class="k">pass</span>
-</span><span id="L-5140"><a href="#L-5140"><span class="linenos">5140</span></a>
+</span><span id="L-5138"><a href="#L-5138"><span class="linenos">5138</span></a>
+</span><span id="L-5139"><a href="#L-5139"><span class="linenos">5139</span></a><span class="k">class</span> <span class="nc">RowNumber</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5140"><a href="#L-5140"><span class="linenos">5140</span></a> <span class="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-5141"><a href="#L-5141"><span class="linenos">5141</span></a>
-</span><span id="L-5142"><a href="#L-5142"><span class="linenos">5142</span></a><span class="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-5143"><a href="#L-5143"><span class="linenos">5143</span></a> <span class="k">pass</span>
-</span><span id="L-5144"><a href="#L-5144"><span class="linenos">5144</span></a>
+</span><span id="L-5142"><a href="#L-5142"><span class="linenos">5142</span></a>
+</span><span id="L-5143"><a href="#L-5143"><span class="linenos">5143</span></a><span class="k">class</span> <span class="nc">SafeDivide</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5144"><a href="#L-5144"><span class="linenos">5144</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-5145"><a href="#L-5145"><span class="linenos">5145</span></a>
-</span><span id="L-5146"><a href="#L-5146"><span class="linenos">5146</span></a><span class="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-5147"><a href="#L-5147"><span class="linenos">5147</span></a> <span class="k">pass</span>
-</span><span id="L-5148"><a href="#L-5148"><span class="linenos">5148</span></a>
+</span><span id="L-5146"><a href="#L-5146"><span class="linenos">5146</span></a>
+</span><span id="L-5147"><a href="#L-5147"><span class="linenos">5147</span></a><span class="k">class</span> <span class="nc">SHA</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5148"><a href="#L-5148"><span class="linenos">5148</span></a> <span class="n">_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-5149"><a href="#L-5149"><span class="linenos">5149</span></a>
-</span><span id="L-5150"><a href="#L-5150"><span class="linenos">5150</span></a><span class="k">class</span> <span class="nc">StddevSamp</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-5151"><a href="#L-5151"><span class="linenos">5151</span></a> <span class="k">pass</span>
-</span><span id="L-5152"><a href="#L-5152"><span class="linenos">5152</span></a>
-</span><span id="L-5153"><a href="#L-5153"><span class="linenos">5153</span></a>
-</span><span id="L-5154"><a href="#L-5154"><span class="linenos">5154</span></a><span class="k">class</span> <span class="nc">TimeToStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5155"><a href="#L-5155"><span class="linenos">5155</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;culture&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-5156"><a href="#L-5156"><span class="linenos">5156</span></a>
-</span><span id="L-5157"><a href="#L-5157"><span class="linenos">5157</span></a>
-</span><span id="L-5158"><a href="#L-5158"><span class="linenos">5158</span></a><span class="k">class</span> <span class="nc">TimeToTimeStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5159"><a href="#L-5159"><span class="linenos">5159</span></a> <span class="k">pass</span>
-</span><span id="L-5160"><a href="#L-5160"><span class="linenos">5160</span></a>
-</span><span id="L-5161"><a href="#L-5161"><span class="linenos">5161</span></a>
-</span><span id="L-5162"><a href="#L-5162"><span class="linenos">5162</span></a><span class="k">class</span> <span class="nc">TimeToUnix</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5163"><a href="#L-5163"><span class="linenos">5163</span></a> <span class="k">pass</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><span id="L-5166"><a href="#L-5166"><span class="linenos">5166</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-5167"><a href="#L-5167"><span class="linenos">5167</span></a> <span class="k">pass</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">class</span> <span class="nc">SHA2</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5152"><a href="#L-5152"><span class="linenos">5152</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-5153"><a href="#L-5153"><span class="linenos">5153</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;length&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-5154"><a href="#L-5154"><span class="linenos">5154</span></a>
+</span><span id="L-5155"><a href="#L-5155"><span class="linenos">5155</span></a>
+</span><span id="L-5156"><a href="#L-5156"><span class="linenos">5156</span></a><span class="k">class</span> <span class="nc">SortArray</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5157"><a href="#L-5157"><span class="linenos">5157</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;asc&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-5158"><a href="#L-5158"><span class="linenos">5158</span></a>
+</span><span id="L-5159"><a href="#L-5159"><span class="linenos">5159</span></a>
+</span><span id="L-5160"><a href="#L-5160"><span class="linenos">5160</span></a><span class="k">class</span> <span class="nc">Split</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5161"><a href="#L-5161"><span class="linenos">5161</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-5162"><a href="#L-5162"><span class="linenos">5162</span></a>
+</span><span id="L-5163"><a href="#L-5163"><span class="linenos">5163</span></a>
+</span><span id="L-5164"><a href="#L-5164"><span class="linenos">5164</span></a><span class="c1"># Start may be omitted in the case of postgres</span>
+</span><span id="L-5165"><a href="#L-5165"><span class="linenos">5165</span></a><span class="c1"># https://www.postgresql.org/docs/9.1/functions-string.html @ Table 9-6</span>
+</span><span id="L-5166"><a href="#L-5166"><span class="linenos">5166</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-5167"><a href="#L-5167"><span class="linenos">5167</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5168"><a href="#L-5168"><span class="linenos">5168</span></a>
</span><span id="L-5169"><a href="#L-5169"><span class="linenos">5169</span></a>
-</span><span id="L-5170"><a href="#L-5170"><span class="linenos">5170</span></a><span 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-5171"><a href="#L-5171"><span class="linenos">5171</span></a> <span class="k">pass</span>
+</span><span id="L-5170"><a href="#L-5170"><span class="linenos">5170</span></a><span class="k">class</span> <span class="nc">StandardHash</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5171"><a href="#L-5171"><span class="linenos">5171</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-5172"><a href="#L-5172"><span class="linenos">5172</span></a>
</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="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-5175"><a href="#L-5175"><span class="linenos">5175</span></a> <span class="k">pass</span>
-</span><span id="L-5176"><a href="#L-5176"><span class="linenos">5176</span></a>
+</span><span id="L-5174"><a href="#L-5174"><span class="linenos">5174</span></a><span class="k">class</span> <span class="nc">StartsWith</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5175"><a href="#L-5175"><span class="linenos">5175</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;STARTS_WITH&quot;</span><span class="p">,</span> <span class="s2">&quot;STARTSWITH&quot;</span><span class="p">]</span>
+</span><span id="L-5176"><a href="#L-5176"><span class="linenos">5176</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-5177"><a href="#L-5177"><span class="linenos">5177</span></a>
-</span><span id="L-5178"><a href="#L-5178"><span class="linenos">5178</span></a><span class="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-5179"><a href="#L-5179"><span class="linenos">5179</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-5180"><a href="#L-5180"><span class="linenos">5180</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-5181"><a href="#L-5181"><span class="linenos">5181</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-5182"><a href="#L-5182"><span class="linenos">5182</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-5183"><a href="#L-5183"><span class="linenos">5183</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-5184"><a href="#L-5184"><span class="linenos">5184</span></a> <span class="p">}</span>
-</span><span id="L-5185"><a href="#L-5185"><span class="linenos">5185</span></a>
+</span><span id="L-5178"><a href="#L-5178"><span class="linenos">5178</span></a>
+</span><span id="L-5179"><a href="#L-5179"><span class="linenos">5179</span></a><span class="k">class</span> <span class="nc">StrPosition</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5180"><a href="#L-5180"><span class="linenos">5180</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-5181"><a href="#L-5181"><span class="linenos">5181</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-5182"><a href="#L-5182"><span class="linenos">5182</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-5183"><a href="#L-5183"><span class="linenos">5183</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-5184"><a href="#L-5184"><span class="linenos">5184</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-5185"><a href="#L-5185"><span class="linenos">5185</span></a> <span class="p">}</span>
</span><span id="L-5186"><a href="#L-5186"><span class="linenos">5186</span></a>
-</span><span id="L-5187"><a href="#L-5187"><span class="linenos">5187</span></a><span 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-5188"><a href="#L-5188"><span class="linenos">5188</span></a> <span class="c1"># return_type is used to correctly cast the arguments of this expression when transpiling it</span>
-</span><span id="L-5189"><a href="#L-5189"><span class="linenos">5189</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;return_type&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-5187"><a href="#L-5187"><span class="linenos">5187</span></a>
+</span><span id="L-5188"><a href="#L-5188"><span class="linenos">5188</span></a><span class="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-5189"><a href="#L-5189"><span class="linenos">5189</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-5190"><a href="#L-5190"><span class="linenos">5190</span></a>
-</span><span id="L-5191"><a href="#L-5191"><span class="linenos">5191</span></a> <span class="nd">@property</span>
-</span><span id="L-5192"><a href="#L-5192"><span class="linenos">5192</span></a> <span class="k">def</span> <span class="nf">return_type</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DataType</span><span class="p">:</span>
-</span><span id="L-5193"><a href="#L-5193"><span class="linenos">5193</span></a> <span class="k">return</span> <span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;return_type&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">DATE</span><span class="p">)</span>
+</span><span id="L-5191"><a href="#L-5191"><span class="linenos">5191</span></a>
+</span><span id="L-5192"><a href="#L-5192"><span class="linenos">5192</span></a><span 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-5193"><a href="#L-5193"><span class="linenos">5193</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-5194"><a href="#L-5194"><span class="linenos">5194</span></a>
</span><span id="L-5195"><a href="#L-5195"><span class="linenos">5195</span></a>
-</span><span id="L-5196"><a href="#L-5196"><span class="linenos">5196</span></a><span class="k">class</span> <span class="nc">TsOrDsDiff</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
-</span><span id="L-5197"><a href="#L-5197"><span class="linenos">5197</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-5198"><a href="#L-5198"><span class="linenos">5198</span></a>
-</span><span id="L-5199"><a href="#L-5199"><span class="linenos">5199</span></a>
-</span><span id="L-5200"><a href="#L-5200"><span class="linenos">5200</span></a><span 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-5201"><a href="#L-5201"><span class="linenos">5201</span></a> <span class="k">pass</span>
-</span><span id="L-5202"><a href="#L-5202"><span class="linenos">5202</span></a>
-</span><span id="L-5203"><a href="#L-5203"><span class="linenos">5203</span></a>
-</span><span id="L-5204"><a href="#L-5204"><span class="linenos">5204</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-5205"><a href="#L-5205"><span class="linenos">5205</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-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">class</span> <span class="nc">TsOrDiToDi</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5209"><a href="#L-5209"><span class="linenos">5209</span></a> <span class="k">pass</span>
-</span><span id="L-5210"><a href="#L-5210"><span class="linenos">5210</span></a>
+</span><span id="L-5196"><a href="#L-5196"><span class="linenos">5196</span></a><span class="c1"># Spark allows unix_timestamp()</span>
+</span><span id="L-5197"><a href="#L-5197"><span class="linenos">5197</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-5198"><a href="#L-5198"><span class="linenos">5198</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-5199"><a href="#L-5199"><span class="linenos">5199</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">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-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><span id="L-5202"><a href="#L-5202"><span class="linenos">5202</span></a><span class="c1"># https://prestodb.io/docs/current/functions/string.html</span>
+</span><span id="L-5203"><a href="#L-5203"><span class="linenos">5203</span></a><span class="c1"># https://spark.apache.org/docs/latest/api/sql/index.html#str_to_map</span>
+</span><span id="L-5204"><a href="#L-5204"><span class="linenos">5204</span></a><span class="k">class</span> <span class="nc">StrToMap</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5205"><a href="#L-5205"><span class="linenos">5205</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-5206"><a href="#L-5206"><span class="linenos">5206</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-5207"><a href="#L-5207"><span class="linenos">5207</span></a> <span class="s2">&quot;pair_delim&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-5208"><a href="#L-5208"><span class="linenos">5208</span></a> <span class="s2">&quot;key_value_delim&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-5209"><a href="#L-5209"><span class="linenos">5209</span></a> <span class="s2">&quot;duplicate_resolution_callback&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-5210"><a href="#L-5210"><span class="linenos">5210</span></a> <span class="p">}</span>
</span><span id="L-5211"><a href="#L-5211"><span class="linenos">5211</span></a>
-</span><span id="L-5212"><a href="#L-5212"><span class="linenos">5212</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-5213"><a href="#L-5213"><span class="linenos">5213</span></a> <span class="k">pass</span>
-</span><span id="L-5214"><a href="#L-5214"><span class="linenos">5214</span></a>
+</span><span id="L-5212"><a href="#L-5212"><span class="linenos">5212</span></a>
+</span><span id="L-5213"><a href="#L-5213"><span class="linenos">5213</span></a><span class="k">class</span> <span class="nc">NumberToStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5214"><a href="#L-5214"><span class="linenos">5214</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;culture&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-5215"><a href="#L-5215"><span class="linenos">5215</span></a>
-</span><span id="L-5216"><a href="#L-5216"><span class="linenos">5216</span></a><span 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-5217"><a href="#L-5217"><span class="linenos">5217</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5218"><a href="#L-5218"><span class="linenos">5218</span></a>
+</span><span id="L-5216"><a href="#L-5216"><span class="linenos">5216</span></a>
+</span><span id="L-5217"><a href="#L-5217"><span class="linenos">5217</span></a><span class="k">class</span> <span class="nc">FromBase</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5218"><a href="#L-5218"><span class="linenos">5218</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-5219"><a href="#L-5219"><span class="linenos">5219</span></a>
-</span><span id="L-5220"><a href="#L-5220"><span class="linenos">5220</span></a><span class="c1"># https://prestodb.io/docs/current/functions/datetime.html</span>
-</span><span id="L-5221"><a href="#L-5221"><span class="linenos">5221</span></a><span class="c1"># presto has weird zone/hours/minutes</span>
-</span><span id="L-5222"><a href="#L-5222"><span class="linenos">5222</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-5223"><a href="#L-5223"><span class="linenos">5223</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">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-5220"><a href="#L-5220"><span class="linenos">5220</span></a>
+</span><span id="L-5221"><a href="#L-5221"><span class="linenos">5221</span></a><span class="k">class</span> <span class="nc">Struct</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5222"><a href="#L-5222"><span class="linenos">5222</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-5223"><a href="#L-5223"><span class="linenos">5223</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="L-5224"><a href="#L-5224"><span class="linenos">5224</span></a>
-</span><span id="L-5225"><a href="#L-5225"><span class="linenos">5225</span></a> <span class="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-5226"><a href="#L-5226"><span class="linenos">5226</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-5227"><a href="#L-5227"><span class="linenos">5227</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-5228"><a href="#L-5228"><span class="linenos">5228</span></a> <span class="n">NANOS</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;nanos&quot;</span><span class="p">)</span>
+</span><span id="L-5225"><a href="#L-5225"><span class="linenos">5225</span></a>
+</span><span id="L-5226"><a href="#L-5226"><span class="linenos">5226</span></a><span 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-5227"><a href="#L-5227"><span class="linenos">5227</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-5228"><a href="#L-5228"><span class="linenos">5228</span></a>
</span><span id="L-5229"><a href="#L-5229"><span class="linenos">5229</span></a>
-</span><span id="L-5230"><a href="#L-5230"><span class="linenos">5230</span></a>
-</span><span id="L-5231"><a href="#L-5231"><span class="linenos">5231</span></a><span class="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-5232"><a href="#L-5232"><span class="linenos">5232</span></a> <span class="k">pass</span>
-</span><span id="L-5233"><a href="#L-5233"><span class="linenos">5233</span></a>
-</span><span id="L-5234"><a href="#L-5234"><span class="linenos">5234</span></a>
-</span><span id="L-5235"><a href="#L-5235"><span class="linenos">5235</span></a><span class="k">class</span> <span class="nc">TimestampFromParts</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5236"><a href="#L-5236"><span class="linenos">5236</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Constructs a timestamp given its constituent parts.&quot;&quot;&quot;</span>
-</span><span id="L-5237"><a href="#L-5237"><span class="linenos">5237</span></a>
-</span><span id="L-5238"><a href="#L-5238"><span class="linenos">5238</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-5239"><a href="#L-5239"><span class="linenos">5239</span></a> <span class="s2">&quot;year&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-5240"><a href="#L-5240"><span class="linenos">5240</span></a> <span class="s2">&quot;month&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-5241"><a href="#L-5241"><span class="linenos">5241</span></a> <span class="s2">&quot;day&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-5242"><a href="#L-5242"><span class="linenos">5242</span></a> <span class="s2">&quot;hour&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-5243"><a href="#L-5243"><span class="linenos">5243</span></a> <span class="s2">&quot;min&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-5244"><a href="#L-5244"><span class="linenos">5244</span></a> <span class="s2">&quot;sec&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-5245"><a href="#L-5245"><span class="linenos">5245</span></a> <span class="p">}</span>
-</span><span id="L-5246"><a href="#L-5246"><span class="linenos">5246</span></a>
+</span><span id="L-5230"><a href="#L-5230"><span class="linenos">5230</span></a><span class="c1"># https://learn.microsoft.com/en-us/sql/t-sql/functions/stuff-transact-sql?view=sql-server-ver16</span>
+</span><span id="L-5231"><a href="#L-5231"><span class="linenos">5231</span></a><span class="c1"># https://docs.snowflake.com/en/sql-reference/functions/insert</span>
+</span><span id="L-5232"><a href="#L-5232"><span class="linenos">5232</span></a><span class="k">class</span> <span class="nc">Stuff</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5233"><a href="#L-5233"><span class="linenos">5233</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;STUFF&quot;</span><span class="p">,</span> <span class="s2">&quot;INSERT&quot;</span><span class="p">]</span>
+</span><span id="L-5234"><a href="#L-5234"><span class="linenos">5234</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;start&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;length&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-5235"><a href="#L-5235"><span class="linenos">5235</span></a>
+</span><span id="L-5236"><a href="#L-5236"><span class="linenos">5236</span></a>
+</span><span id="L-5237"><a href="#L-5237"><span class="linenos">5237</span></a><span class="k">class</span> <span class="nc">Sum</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-5238"><a href="#L-5238"><span class="linenos">5238</span></a> <span class="k">pass</span>
+</span><span id="L-5239"><a href="#L-5239"><span class="linenos">5239</span></a>
+</span><span id="L-5240"><a href="#L-5240"><span class="linenos">5240</span></a>
+</span><span id="L-5241"><a href="#L-5241"><span class="linenos">5241</span></a><span class="k">class</span> <span class="nc">Sqrt</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5242"><a href="#L-5242"><span class="linenos">5242</span></a> <span class="k">pass</span>
+</span><span id="L-5243"><a href="#L-5243"><span class="linenos">5243</span></a>
+</span><span id="L-5244"><a href="#L-5244"><span class="linenos">5244</span></a>
+</span><span id="L-5245"><a href="#L-5245"><span class="linenos">5245</span></a><span class="k">class</span> <span class="nc">Stddev</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-5246"><a href="#L-5246"><span class="linenos">5246</span></a> <span class="k">pass</span>
</span><span id="L-5247"><a href="#L-5247"><span class="linenos">5247</span></a>
-</span><span id="L-5248"><a href="#L-5248"><span class="linenos">5248</span></a><span 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-5249"><a href="#L-5249"><span class="linenos">5249</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-5250"><a href="#L-5250"><span class="linenos">5250</span></a>
+</span><span id="L-5248"><a href="#L-5248"><span class="linenos">5248</span></a>
+</span><span id="L-5249"><a href="#L-5249"><span class="linenos">5249</span></a><span class="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-5250"><a href="#L-5250"><span class="linenos">5250</span></a> <span class="k">pass</span>
</span><span id="L-5251"><a href="#L-5251"><span class="linenos">5251</span></a>
-</span><span id="L-5252"><a href="#L-5252"><span class="linenos">5252</span></a><span 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-5253"><a href="#L-5253"><span class="linenos">5253</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-5254"><a href="#L-5254"><span class="linenos">5254</span></a>
+</span><span id="L-5252"><a href="#L-5252"><span class="linenos">5252</span></a>
+</span><span id="L-5253"><a href="#L-5253"><span class="linenos">5253</span></a><span class="k">class</span> <span class="nc">StddevSamp</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-5254"><a href="#L-5254"><span class="linenos">5254</span></a> <span class="k">pass</span>
</span><span id="L-5255"><a href="#L-5255"><span class="linenos">5255</span></a>
-</span><span id="L-5256"><a href="#L-5256"><span class="linenos">5256</span></a><span 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-5257"><a href="#L-5257"><span class="linenos">5257</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-5258"><a href="#L-5258"><span class="linenos">5258</span></a>
+</span><span id="L-5256"><a href="#L-5256"><span class="linenos">5256</span></a>
+</span><span id="L-5257"><a href="#L-5257"><span class="linenos">5257</span></a><span class="k">class</span> <span class="nc">TimeToStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5258"><a href="#L-5258"><span class="linenos">5258</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;culture&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-5259"><a href="#L-5259"><span class="linenos">5259</span></a>
-</span><span id="L-5260"><a href="#L-5260"><span class="linenos">5260</span></a><span 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-5261"><a href="#L-5261"><span class="linenos">5261</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span 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-5262"><a href="#L-5262"><span class="linenos">5262</span></a>
+</span><span id="L-5260"><a href="#L-5260"><span class="linenos">5260</span></a>
+</span><span id="L-5261"><a href="#L-5261"><span class="linenos">5261</span></a><span class="k">class</span> <span class="nc">TimeToTimeStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5262"><a href="#L-5262"><span class="linenos">5262</span></a> <span class="k">pass</span>
</span><span id="L-5263"><a href="#L-5263"><span class="linenos">5263</span></a>
-</span><span id="L-5264"><a href="#L-5264"><span class="linenos">5264</span></a><span class="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-5265"><a href="#L-5265"><span class="linenos">5265</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5266"><a href="#L-5266"><span class="linenos">5266</span></a>
+</span><span id="L-5264"><a href="#L-5264"><span class="linenos">5264</span></a>
+</span><span id="L-5265"><a href="#L-5265"><span class="linenos">5265</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-5266"><a href="#L-5266"><span class="linenos">5266</span></a> <span class="k">pass</span>
</span><span id="L-5267"><a href="#L-5267"><span class="linenos">5267</span></a>
-</span><span id="L-5268"><a href="#L-5268"><span class="linenos">5268</span></a><span class="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-5269"><a href="#L-5269"><span class="linenos">5269</span></a> <span class="k">pass</span>
-</span><span id="L-5270"><a href="#L-5270"><span class="linenos">5270</span></a>
+</span><span id="L-5268"><a href="#L-5268"><span class="linenos">5268</span></a>
+</span><span id="L-5269"><a href="#L-5269"><span class="linenos">5269</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-5270"><a href="#L-5270"><span class="linenos">5270</span></a> <span class="k">pass</span>
</span><span id="L-5271"><a href="#L-5271"><span class="linenos">5271</span></a>
-</span><span id="L-5272"><a href="#L-5272"><span class="linenos">5272</span></a><span class="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-5273"><a href="#L-5273"><span class="linenos">5273</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">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-5274"><a href="#L-5274"><span class="linenos">5274</span></a>
+</span><span id="L-5272"><a href="#L-5272"><span class="linenos">5272</span></a>
+</span><span id="L-5273"><a href="#L-5273"><span class="linenos">5273</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-5274"><a href="#L-5274"><span class="linenos">5274</span></a> <span class="k">pass</span>
</span><span id="L-5275"><a href="#L-5275"><span class="linenos">5275</span></a>
-</span><span id="L-5276"><a href="#L-5276"><span class="linenos">5276</span></a><span class="k">class</span> <span class="nc">Merge</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-5277"><a href="#L-5277"><span class="linenos">5277</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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 class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-5278"><a href="#L-5278"><span class="linenos">5278</span></a>
+</span><span id="L-5276"><a href="#L-5276"><span class="linenos">5276</span></a>
+</span><span id="L-5277"><a href="#L-5277"><span class="linenos">5277</span></a><span class="k">class</span> <span class="nc">TimeStrToUnix</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5278"><a href="#L-5278"><span class="linenos">5278</span></a> <span class="k">pass</span>
</span><span id="L-5279"><a href="#L-5279"><span class="linenos">5279</span></a>
-</span><span id="L-5280"><a href="#L-5280"><span class="linenos">5280</span></a><span class="k">class</span> <span class="nc">When</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5281"><a href="#L-5281"><span class="linenos">5281</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-5282"><a href="#L-5282"><span class="linenos">5282</span></a>
-</span><span id="L-5283"><a href="#L-5283"><span class="linenos">5283</span></a>
-</span><span id="L-5284"><a href="#L-5284"><span class="linenos">5284</span></a><span class="c1"># https://docs.oracle.com/javadb/10.8.3.0/ref/rrefsqljnextvaluefor.html</span>
-</span><span id="L-5285"><a href="#L-5285"><span class="linenos">5285</span></a><span class="c1"># https://learn.microsoft.com/en-us/sql/t-sql/functions/next-value-for-transact-sql?view=sql-server-ver16</span>
-</span><span id="L-5286"><a href="#L-5286"><span class="linenos">5286</span></a><span class="k">class</span> <span class="nc">NextValueFor</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5287"><a href="#L-5287"><span class="linenos">5287</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;order&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-5280"><a href="#L-5280"><span class="linenos">5280</span></a>
+</span><span id="L-5281"><a href="#L-5281"><span class="linenos">5281</span></a><span class="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-5282"><a href="#L-5282"><span class="linenos">5282</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-5283"><a href="#L-5283"><span class="linenos">5283</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-5284"><a href="#L-5284"><span class="linenos">5284</span></a> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-5285"><a href="#L-5285"><span class="linenos">5285</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-5286"><a href="#L-5286"><span class="linenos">5286</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-5287"><a href="#L-5287"><span class="linenos">5287</span></a> <span class="p">}</span>
</span><span id="L-5288"><a href="#L-5288"><span class="linenos">5288</span></a>
</span><span id="L-5289"><a href="#L-5289"><span class="linenos">5289</span></a>
-</span><span id="L-5290"><a href="#L-5290"><span class="linenos">5290</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-5291"><a href="#L-5291"><span class="linenos">5291</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-5292"><a href="#L-5292"><span class="linenos">5292</span></a>
+</span><span id="L-5290"><a href="#L-5290"><span class="linenos">5290</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-5291"><a href="#L-5291"><span class="linenos">5291</span></a> <span class="c1"># return_type is used to correctly cast the arguments of this expression when transpiling it</span>
+</span><span id="L-5292"><a href="#L-5292"><span class="linenos">5292</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;return_type&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-5293"><a href="#L-5293"><span class="linenos">5293</span></a>
-</span><span id="L-5294"><a href="#L-5294"><span class="linenos">5294</span></a><span class="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-5295"><a href="#L-5295"><span class="linenos">5295</span></a><span class="n">FUNCTION_BY_NAME</span> <span class="o">=</span> <span class="p">{</span><span class="n">name</span><span class="p">:</span> <span class="n">func</span> <span class="k">for</span> <span class="n">func</span> <span class="ow">in</span> <span class="n">ALL_FUNCTIONS</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">func</span><span class="o">.</span><span class="n">sql_names</span><span class="p">()}</span>
-</span><span id="L-5296"><a href="#L-5296"><span class="linenos">5296</span></a>
+</span><span id="L-5294"><a href="#L-5294"><span class="linenos">5294</span></a> <span class="nd">@property</span>
+</span><span id="L-5295"><a href="#L-5295"><span class="linenos">5295</span></a> <span class="k">def</span> <span class="nf">return_type</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DataType</span><span class="p">:</span>
+</span><span id="L-5296"><a href="#L-5296"><span class="linenos">5296</span></a> <span class="k">return</span> <span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;return_type&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">DATE</span><span class="p">)</span>
</span><span id="L-5297"><a href="#L-5297"><span class="linenos">5297</span></a>
-</span><span id="L-5298"><a href="#L-5298"><span class="linenos">5298</span></a><span class="c1"># Helpers</span>
-</span><span id="L-5299"><a href="#L-5299"><span class="linenos">5299</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
-</span><span id="L-5300"><a href="#L-5300"><span class="linenos">5300</span></a><span class="k">def</span> <span class="nf">maybe_parse</span><span class="p">(</span>
-</span><span id="L-5301"><a href="#L-5301"><span class="linenos">5301</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-5302"><a href="#L-5302"><span class="linenos">5302</span></a> <span class="o">*</span><span class="p">,</span>
-</span><span id="L-5303"><a href="#L-5303"><span class="linenos">5303</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-5304"><a href="#L-5304"><span class="linenos">5304</span></a> <span class="n">dialect</span><span 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-5305"><a href="#L-5305"><span class="linenos">5305</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-5306"><a href="#L-5306"><span class="linenos">5306</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-5307"><a href="#L-5307"><span class="linenos">5307</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-5308"><a href="#L-5308"><span class="linenos">5308</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
-</span><span id="L-5309"><a href="#L-5309"><span class="linenos">5309</span></a> <span class="o">...</span>
+</span><span id="L-5298"><a href="#L-5298"><span class="linenos">5298</span></a>
+</span><span id="L-5299"><a href="#L-5299"><span class="linenos">5299</span></a><span class="k">class</span> <span class="nc">TsOrDsDiff</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
+</span><span id="L-5300"><a href="#L-5300"><span class="linenos">5300</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-5301"><a href="#L-5301"><span class="linenos">5301</span></a>
+</span><span id="L-5302"><a href="#L-5302"><span class="linenos">5302</span></a>
+</span><span id="L-5303"><a href="#L-5303"><span class="linenos">5303</span></a><span class="k">class</span> <span class="nc">TsOrDsToDateStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5304"><a href="#L-5304"><span class="linenos">5304</span></a> <span class="k">pass</span>
+</span><span id="L-5305"><a href="#L-5305"><span class="linenos">5305</span></a>
+</span><span id="L-5306"><a href="#L-5306"><span class="linenos">5306</span></a>
+</span><span id="L-5307"><a href="#L-5307"><span class="linenos">5307</span></a><span class="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-5308"><a href="#L-5308"><span class="linenos">5308</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5309"><a href="#L-5309"><span class="linenos">5309</span></a>
</span><span id="L-5310"><a href="#L-5310"><span class="linenos">5310</span></a>
-</span><span id="L-5311"><a href="#L-5311"><span class="linenos">5311</span></a>
-</span><span id="L-5312"><a href="#L-5312"><span class="linenos">5312</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
-</span><span id="L-5313"><a href="#L-5313"><span class="linenos">5313</span></a><span class="k">def</span> <span class="nf">maybe_parse</span><span class="p">(</span>
-</span><span id="L-5314"><a href="#L-5314"><span class="linenos">5314</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-5315"><a href="#L-5315"><span class="linenos">5315</span></a> <span class="o">*</span><span class="p">,</span>
-</span><span id="L-5316"><a href="#L-5316"><span class="linenos">5316</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-5317"><a href="#L-5317"><span class="linenos">5317</span></a> <span class="n">dialect</span><span 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-5318"><a href="#L-5318"><span class="linenos">5318</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-5319"><a href="#L-5319"><span class="linenos">5319</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-5320"><a href="#L-5320"><span class="linenos">5320</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-5321"><a href="#L-5321"><span class="linenos">5321</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
-</span><span id="L-5322"><a href="#L-5322"><span class="linenos">5322</span></a> <span class="o">...</span>
-</span><span id="L-5323"><a href="#L-5323"><span class="linenos">5323</span></a>
-</span><span id="L-5324"><a href="#L-5324"><span class="linenos">5324</span></a>
-</span><span id="L-5325"><a href="#L-5325"><span class="linenos">5325</span></a><span class="k">def</span> <span class="nf">maybe_parse</span><span class="p">(</span>
-</span><span id="L-5326"><a href="#L-5326"><span class="linenos">5326</span></a> <span class="n">sql_or_expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-5327"><a href="#L-5327"><span class="linenos">5327</span></a> <span class="o">*</span><span class="p">,</span>
-</span><span id="L-5328"><a href="#L-5328"><span class="linenos">5328</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-5329"><a href="#L-5329"><span class="linenos">5329</span></a> <span class="n">dialect</span><span 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-5330"><a href="#L-5330"><span class="linenos">5330</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-5331"><a href="#L-5331"><span class="linenos">5331</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-5332"><a href="#L-5332"><span class="linenos">5332</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-5333"><a href="#L-5333"><span class="linenos">5333</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="L-5334"><a href="#L-5334"><span class="linenos">5334</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Gracefully handle a possible string or expression.</span>
-</span><span id="L-5335"><a href="#L-5335"><span class="linenos">5335</span></a>
-</span><span id="L-5336"><a href="#L-5336"><span class="linenos">5336</span></a><span class="sd"> Example:</span>
-</span><span id="L-5337"><a href="#L-5337"><span class="linenos">5337</span></a><span class="sd"> &gt;&gt;&gt; maybe_parse(&quot;1&quot;)</span>
-</span><span id="L-5338"><a href="#L-5338"><span class="linenos">5338</span></a><span class="sd"> (LITERAL this: 1, is_string: False)</span>
-</span><span id="L-5339"><a href="#L-5339"><span class="linenos">5339</span></a><span class="sd"> &gt;&gt;&gt; maybe_parse(to_identifier(&quot;x&quot;))</span>
-</span><span id="L-5340"><a href="#L-5340"><span class="linenos">5340</span></a><span class="sd"> (IDENTIFIER this: x, quoted: False)</span>
+</span><span id="L-5311"><a href="#L-5311"><span class="linenos">5311</span></a><span class="k">class</span> <span class="nc">TsOrDsToTime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5312"><a href="#L-5312"><span class="linenos">5312</span></a> <span class="k">pass</span>
+</span><span id="L-5313"><a href="#L-5313"><span class="linenos">5313</span></a>
+</span><span id="L-5314"><a href="#L-5314"><span class="linenos">5314</span></a>
+</span><span id="L-5315"><a href="#L-5315"><span class="linenos">5315</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-5316"><a href="#L-5316"><span class="linenos">5316</span></a> <span class="k">pass</span>
+</span><span id="L-5317"><a href="#L-5317"><span class="linenos">5317</span></a>
+</span><span id="L-5318"><a href="#L-5318"><span class="linenos">5318</span></a>
+</span><span id="L-5319"><a href="#L-5319"><span class="linenos">5319</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-5320"><a href="#L-5320"><span class="linenos">5320</span></a> <span class="k">pass</span>
+</span><span id="L-5321"><a href="#L-5321"><span class="linenos">5321</span></a>
+</span><span id="L-5322"><a href="#L-5322"><span class="linenos">5322</span></a>
+</span><span id="L-5323"><a href="#L-5323"><span class="linenos">5323</span></a><span class="c1"># https://cloud.google.com/bigquery/docs/reference/standard-sql/date_functions#unix_date</span>
+</span><span id="L-5324"><a href="#L-5324"><span class="linenos">5324</span></a><span class="k">class</span> <span class="nc">UnixDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5325"><a href="#L-5325"><span class="linenos">5325</span></a> <span class="k">pass</span>
+</span><span id="L-5326"><a href="#L-5326"><span class="linenos">5326</span></a>
+</span><span id="L-5327"><a href="#L-5327"><span class="linenos">5327</span></a>
+</span><span id="L-5328"><a href="#L-5328"><span class="linenos">5328</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-5329"><a href="#L-5329"><span class="linenos">5329</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-5330"><a href="#L-5330"><span class="linenos">5330</span></a>
+</span><span id="L-5331"><a href="#L-5331"><span class="linenos">5331</span></a>
+</span><span id="L-5332"><a href="#L-5332"><span class="linenos">5332</span></a><span class="c1"># https://prestodb.io/docs/current/functions/datetime.html</span>
+</span><span id="L-5333"><a href="#L-5333"><span class="linenos">5333</span></a><span class="c1"># presto has weird zone/hours/minutes</span>
+</span><span id="L-5334"><a href="#L-5334"><span class="linenos">5334</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-5335"><a href="#L-5335"><span class="linenos">5335</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5336"><a href="#L-5336"><span class="linenos">5336</span></a>
+</span><span id="L-5337"><a href="#L-5337"><span class="linenos">5337</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-5338"><a href="#L-5338"><span class="linenos">5338</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-5339"><a href="#L-5339"><span class="linenos">5339</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-5340"><a href="#L-5340"><span class="linenos">5340</span></a> <span class="n">NANOS</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;nanos&quot;</span><span class="p">)</span>
</span><span id="L-5341"><a href="#L-5341"><span class="linenos">5341</span></a>
-</span><span id="L-5342"><a href="#L-5342"><span class="linenos">5342</span></a><span class="sd"> Args:</span>
-</span><span id="L-5343"><a href="#L-5343"><span class="linenos">5343</span></a><span class="sd"> sql_or_expression: the SQL code string or an expression</span>
-</span><span id="L-5344"><a href="#L-5344"><span class="linenos">5344</span></a><span class="sd"> into: the SQLGlot Expression to parse into</span>
-</span><span id="L-5345"><a href="#L-5345"><span class="linenos">5345</span></a><span class="sd"> dialect: the dialect used to parse the input expressions (in the case that an</span>
-</span><span id="L-5346"><a href="#L-5346"><span class="linenos">5346</span></a><span class="sd"> input expression is a SQL string).</span>
-</span><span id="L-5347"><a href="#L-5347"><span class="linenos">5347</span></a><span class="sd"> prefix: a string to prefix the sql with before it gets parsed</span>
-</span><span id="L-5348"><a href="#L-5348"><span class="linenos">5348</span></a><span class="sd"> (automatically includes a space)</span>
-</span><span id="L-5349"><a href="#L-5349"><span class="linenos">5349</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
-</span><span id="L-5350"><a href="#L-5350"><span class="linenos">5350</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
-</span><span id="L-5351"><a href="#L-5351"><span class="linenos">5351</span></a><span class="sd"> that an input expression is a SQL string).</span>
-</span><span id="L-5352"><a href="#L-5352"><span class="linenos">5352</span></a>
-</span><span id="L-5353"><a href="#L-5353"><span class="linenos">5353</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5354"><a href="#L-5354"><span class="linenos">5354</span></a><span class="sd"> Expression: the parsed or given expression.</span>
-</span><span id="L-5355"><a href="#L-5355"><span class="linenos">5355</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5356"><a href="#L-5356"><span class="linenos">5356</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-5357"><a href="#L-5357"><span class="linenos">5357</span></a> <span class="k">if</span> <span class="n">copy</span><span class="p">:</span>
-</span><span id="L-5358"><a href="#L-5358"><span class="linenos">5358</span></a> <span class="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-5359"><a href="#L-5359"><span class="linenos">5359</span></a> <span class="k">return</span> <span class="n">sql_or_expression</span>
+</span><span id="L-5342"><a href="#L-5342"><span class="linenos">5342</span></a>
+</span><span id="L-5343"><a href="#L-5343"><span class="linenos">5343</span></a><span 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-5344"><a href="#L-5344"><span class="linenos">5344</span></a> <span class="k">pass</span>
+</span><span id="L-5345"><a href="#L-5345"><span class="linenos">5345</span></a>
+</span><span id="L-5346"><a href="#L-5346"><span class="linenos">5346</span></a>
+</span><span id="L-5347"><a href="#L-5347"><span class="linenos">5347</span></a><span class="k">class</span> <span class="nc">TimestampFromParts</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5348"><a href="#L-5348"><span class="linenos">5348</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;TIMESTAMP_FROM_PARTS&quot;</span><span class="p">,</span> <span class="s2">&quot;TIMESTAMPFROMPARTS&quot;</span><span class="p">]</span>
+</span><span id="L-5349"><a href="#L-5349"><span class="linenos">5349</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-5350"><a href="#L-5350"><span class="linenos">5350</span></a> <span class="s2">&quot;year&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-5351"><a href="#L-5351"><span class="linenos">5351</span></a> <span class="s2">&quot;month&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-5352"><a href="#L-5352"><span class="linenos">5352</span></a> <span class="s2">&quot;day&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-5353"><a href="#L-5353"><span class="linenos">5353</span></a> <span class="s2">&quot;hour&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-5354"><a href="#L-5354"><span class="linenos">5354</span></a> <span class="s2">&quot;min&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-5355"><a href="#L-5355"><span class="linenos">5355</span></a> <span class="s2">&quot;sec&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-5356"><a href="#L-5356"><span class="linenos">5356</span></a> <span class="s2">&quot;nano&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-5357"><a href="#L-5357"><span class="linenos">5357</span></a> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-5358"><a href="#L-5358"><span class="linenos">5358</span></a> <span class="s2">&quot;milli&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-5359"><a href="#L-5359"><span class="linenos">5359</span></a> <span class="p">}</span>
</span><span id="L-5360"><a href="#L-5360"><span class="linenos">5360</span></a>
-</span><span id="L-5361"><a href="#L-5361"><span class="linenos">5361</span></a> <span class="k">if</span> <span class="n">sql_or_expression</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="L-5362"><a href="#L-5362"><span class="linenos">5362</span></a> <span class="k">raise</span> <span class="n">ParseError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;SQL cannot be None&quot;</span><span class="p">)</span>
-</span><span id="L-5363"><a href="#L-5363"><span class="linenos">5363</span></a>
-</span><span id="L-5364"><a href="#L-5364"><span class="linenos">5364</span></a> <span class="kn">import</span> <span class="nn">sqlglot</span>
+</span><span id="L-5361"><a href="#L-5361"><span class="linenos">5361</span></a>
+</span><span id="L-5362"><a href="#L-5362"><span class="linenos">5362</span></a><span 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-5363"><a href="#L-5363"><span class="linenos">5363</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;UPPER&quot;</span><span class="p">,</span> <span class="s2">&quot;UCASE&quot;</span><span class="p">]</span>
+</span><span id="L-5364"><a href="#L-5364"><span class="linenos">5364</span></a>
</span><span id="L-5365"><a href="#L-5365"><span class="linenos">5365</span></a>
-</span><span id="L-5366"><a href="#L-5366"><span class="linenos">5366</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-5367"><a href="#L-5367"><span class="linenos">5367</span></a> <span class="k">if</span> <span class="n">prefix</span><span class="p">:</span>
-</span><span id="L-5368"><a href="#L-5368"><span class="linenos">5368</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-5366"><a href="#L-5366"><span class="linenos">5366</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-5367"><a href="#L-5367"><span class="linenos">5367</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-5368"><a href="#L-5368"><span class="linenos">5368</span></a>
</span><span id="L-5369"><a href="#L-5369"><span class="linenos">5369</span></a>
-</span><span id="L-5370"><a href="#L-5370"><span class="linenos">5370</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-5371"><a href="#L-5371"><span class="linenos">5371</span></a>
+</span><span id="L-5370"><a href="#L-5370"><span class="linenos">5370</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-5371"><a href="#L-5371"><span class="linenos">5371</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;VARIANCE_POP&quot;</span><span class="p">,</span> <span class="s2">&quot;VAR_POP&quot;</span><span class="p">]</span>
</span><span id="L-5372"><a href="#L-5372"><span class="linenos">5372</span></a>
-</span><span id="L-5373"><a href="#L-5373"><span class="linenos">5373</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
-</span><span id="L-5374"><a href="#L-5374"><span class="linenos">5374</span></a><span class="k">def</span> <span class="nf">maybe_copy</span><span class="p">(</span><span class="n">instance</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="L-5375"><a href="#L-5375"><span class="linenos">5375</span></a> <span class="o">...</span>
+</span><span id="L-5373"><a href="#L-5373"><span class="linenos">5373</span></a>
+</span><span id="L-5374"><a href="#L-5374"><span class="linenos">5374</span></a><span class="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-5375"><a href="#L-5375"><span class="linenos">5375</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5376"><a href="#L-5376"><span class="linenos">5376</span></a>
</span><span id="L-5377"><a href="#L-5377"><span class="linenos">5377</span></a>
-</span><span id="L-5378"><a href="#L-5378"><span class="linenos">5378</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
-</span><span id="L-5379"><a href="#L-5379"><span class="linenos">5379</span></a><span class="k">def</span> <span class="nf">maybe_copy</span><span class="p">(</span><span class="n">instance</span><span class="p">:</span> <span class="n">E</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
-</span><span id="L-5380"><a href="#L-5380"><span class="linenos">5380</span></a> <span class="o">...</span>
+</span><span id="L-5378"><a href="#L-5378"><span class="linenos">5378</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-5379"><a href="#L-5379"><span class="linenos">5379</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5380"><a href="#L-5380"><span class="linenos">5380</span></a>
</span><span id="L-5381"><a href="#L-5381"><span class="linenos">5381</span></a>
-</span><span id="L-5382"><a href="#L-5382"><span class="linenos">5382</span></a>
-</span><span id="L-5383"><a href="#L-5383"><span class="linenos">5383</span></a><span class="k">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-5384"><a href="#L-5384"><span class="linenos">5384</span></a> <span class="k">return</span> <span class="n">instance</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">copy</span> <span class="ow">and</span> <span class="n">instance</span> <span class="k">else</span> <span class="n">instance</span>
+</span><span id="L-5382"><a href="#L-5382"><span class="linenos">5382</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-5383"><a href="#L-5383"><span class="linenos">5383</span></a> <span class="k">pass</span>
+</span><span id="L-5384"><a href="#L-5384"><span class="linenos">5384</span></a>
</span><span id="L-5385"><a href="#L-5385"><span class="linenos">5385</span></a>
-</span><span id="L-5386"><a href="#L-5386"><span class="linenos">5386</span></a>
-</span><span id="L-5387"><a href="#L-5387"><span class="linenos">5387</span></a><span class="k">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-5388"><a href="#L-5388"><span class="linenos">5388</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-5386"><a href="#L-5386"><span class="linenos">5386</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-5387"><a href="#L-5387"><span class="linenos">5387</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-5388"><a href="#L-5388"><span class="linenos">5388</span></a>
</span><span id="L-5389"><a href="#L-5389"><span class="linenos">5389</span></a>
-</span><span id="L-5390"><a href="#L-5390"><span class="linenos">5390</span></a>
-</span><span id="L-5391"><a href="#L-5391"><span class="linenos">5391</span></a><span class="k">def</span> <span class="nf">_apply_builder</span><span class="p">(</span>
-</span><span id="L-5392"><a href="#L-5392"><span class="linenos">5392</span></a> <span class="n">expression</span><span class="p">,</span>
-</span><span id="L-5393"><a href="#L-5393"><span class="linenos">5393</span></a> <span class="n">instance</span><span class="p">,</span>
-</span><span id="L-5394"><a href="#L-5394"><span class="linenos">5394</span></a> <span class="n">arg</span><span class="p">,</span>
-</span><span id="L-5395"><a href="#L-5395"><span class="linenos">5395</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-5396"><a href="#L-5396"><span class="linenos">5396</span></a> <span class="n">prefix</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5397"><a href="#L-5397"><span class="linenos">5397</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5398"><a href="#L-5398"><span class="linenos">5398</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5399"><a href="#L-5399"><span class="linenos">5399</span></a> <span class="n">into_arg</span><span class="o">=</span><span class="s2">&quot;this&quot;</span><span class="p">,</span>
-</span><span id="L-5400"><a href="#L-5400"><span class="linenos">5400</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-5401"><a href="#L-5401"><span class="linenos">5401</span></a><span class="p">):</span>
-</span><span id="L-5402"><a href="#L-5402"><span class="linenos">5402</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-5403"><a href="#L-5403"><span class="linenos">5403</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">into</span><span class="p">(</span><span class="o">**</span><span class="p">{</span><span class="n">into_arg</span><span class="p">:</span> <span class="n">expression</span><span class="p">})</span>
-</span><span id="L-5404"><a href="#L-5404"><span class="linenos">5404</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-5405"><a href="#L-5405"><span class="linenos">5405</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-5406"><a href="#L-5406"><span class="linenos">5406</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-5407"><a href="#L-5407"><span class="linenos">5407</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span>
-</span><span id="L-5408"><a href="#L-5408"><span class="linenos">5408</span></a> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span>
-</span><span id="L-5409"><a href="#L-5409"><span class="linenos">5409</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-5410"><a href="#L-5410"><span class="linenos">5410</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-5411"><a href="#L-5411"><span class="linenos">5411</span></a> <span class="p">)</span>
-</span><span id="L-5412"><a href="#L-5412"><span class="linenos">5412</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-5413"><a href="#L-5413"><span class="linenos">5413</span></a> <span class="k">return</span> <span class="n">instance</span>
-</span><span id="L-5414"><a href="#L-5414"><span class="linenos">5414</span></a>
-</span><span id="L-5415"><a href="#L-5415"><span class="linenos">5415</span></a>
-</span><span id="L-5416"><a href="#L-5416"><span class="linenos">5416</span></a><span class="k">def</span> <span class="nf">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="L-5417"><a href="#L-5417"><span class="linenos">5417</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-5418"><a href="#L-5418"><span class="linenos">5418</span></a> <span class="n">instance</span><span class="p">,</span>
-</span><span id="L-5419"><a href="#L-5419"><span class="linenos">5419</span></a> <span class="n">arg</span><span class="p">,</span>
-</span><span id="L-5420"><a href="#L-5420"><span class="linenos">5420</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-5421"><a href="#L-5421"><span class="linenos">5421</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-5422"><a href="#L-5422"><span class="linenos">5422</span></a> <span class="n">prefix</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5423"><a href="#L-5423"><span class="linenos">5423</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5424"><a href="#L-5424"><span class="linenos">5424</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5425"><a href="#L-5425"><span class="linenos">5425</span></a> <span class="n">properties</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5426"><a href="#L-5426"><span class="linenos">5426</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-5427"><a href="#L-5427"><span class="linenos">5427</span></a><span class="p">):</span>
-</span><span id="L-5428"><a href="#L-5428"><span class="linenos">5428</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-5429"><a href="#L-5429"><span class="linenos">5429</span></a> <span class="n">parsed</span> <span class="o">=</span> <span class="p">[]</span>
-</span><span id="L-5430"><a href="#L-5430"><span class="linenos">5430</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-5431"><a href="#L-5431"><span class="linenos">5431</span></a> <span class="k">if</span> <span class="n">expression</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="L-5432"><a href="#L-5432"><span class="linenos">5432</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-5433"><a href="#L-5433"><span class="linenos">5433</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-5434"><a href="#L-5434"><span class="linenos">5434</span></a>
-</span><span id="L-5435"><a href="#L-5435"><span class="linenos">5435</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span>
-</span><span id="L-5436"><a href="#L-5436"><span class="linenos">5436</span></a> <span class="n">expression</span><span class="p">,</span>
-</span><span id="L-5437"><a href="#L-5437"><span class="linenos">5437</span></a> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span>
-</span><span id="L-5438"><a href="#L-5438"><span class="linenos">5438</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-5439"><a href="#L-5439"><span class="linenos">5439</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span>
-</span><span id="L-5440"><a href="#L-5440"><span class="linenos">5440</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-5441"><a href="#L-5441"><span class="linenos">5441</span></a> <span class="p">)</span>
-</span><span id="L-5442"><a href="#L-5442"><span class="linenos">5442</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-5443"><a href="#L-5443"><span class="linenos">5443</span></a>
-</span><span id="L-5444"><a href="#L-5444"><span class="linenos">5444</span></a> <span class="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-5445"><a href="#L-5445"><span class="linenos">5445</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-5446"><a href="#L-5446"><span class="linenos">5446</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-5447"><a href="#L-5447"><span class="linenos">5447</span></a>
-</span><span id="L-5448"><a href="#L-5448"><span class="linenos">5448</span></a> <span class="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-5449"><a href="#L-5449"><span class="linenos">5449</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-5450"><a href="#L-5450"><span class="linenos">5450</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-5451"><a href="#L-5451"><span class="linenos">5451</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-5452"><a href="#L-5452"><span class="linenos">5452</span></a>
-</span><span id="L-5453"><a href="#L-5453"><span class="linenos">5453</span></a> <span class="k">return</span> <span class="n">instance</span>
-</span><span id="L-5454"><a href="#L-5454"><span class="linenos">5454</span></a>
+</span><span id="L-5390"><a href="#L-5390"><span class="linenos">5390</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-5391"><a href="#L-5391"><span class="linenos">5391</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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 class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-5392"><a href="#L-5392"><span class="linenos">5392</span></a>
+</span><span id="L-5393"><a href="#L-5393"><span class="linenos">5393</span></a>
+</span><span id="L-5394"><a href="#L-5394"><span class="linenos">5394</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-5395"><a href="#L-5395"><span class="linenos">5395</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-5396"><a href="#L-5396"><span class="linenos">5396</span></a>
+</span><span id="L-5397"><a href="#L-5397"><span class="linenos">5397</span></a>
+</span><span id="L-5398"><a href="#L-5398"><span class="linenos">5398</span></a><span class="c1"># https://docs.oracle.com/javadb/10.8.3.0/ref/rrefsqljnextvaluefor.html</span>
+</span><span id="L-5399"><a href="#L-5399"><span class="linenos">5399</span></a><span class="c1"># https://learn.microsoft.com/en-us/sql/t-sql/functions/next-value-for-transact-sql?view=sql-server-ver16</span>
+</span><span id="L-5400"><a href="#L-5400"><span class="linenos">5400</span></a><span class="k">class</span> <span class="nc">NextValueFor</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5401"><a href="#L-5401"><span class="linenos">5401</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;order&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-5402"><a href="#L-5402"><span class="linenos">5402</span></a>
+</span><span id="L-5403"><a href="#L-5403"><span class="linenos">5403</span></a>
+</span><span id="L-5404"><a href="#L-5404"><span class="linenos">5404</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-5405"><a href="#L-5405"><span class="linenos">5405</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-5406"><a href="#L-5406"><span class="linenos">5406</span></a>
+</span><span id="L-5407"><a href="#L-5407"><span class="linenos">5407</span></a>
+</span><span id="L-5408"><a href="#L-5408"><span class="linenos">5408</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-5409"><a href="#L-5409"><span class="linenos">5409</span></a><span class="n">FUNCTION_BY_NAME</span> <span class="o">=</span> <span class="p">{</span><span class="n">name</span><span class="p">:</span> <span class="n">func</span> <span class="k">for</span> <span class="n">func</span> <span class="ow">in</span> <span class="n">ALL_FUNCTIONS</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">func</span><span class="o">.</span><span class="n">sql_names</span><span class="p">()}</span>
+</span><span id="L-5410"><a href="#L-5410"><span class="linenos">5410</span></a>
+</span><span id="L-5411"><a href="#L-5411"><span class="linenos">5411</span></a>
+</span><span id="L-5412"><a href="#L-5412"><span class="linenos">5412</span></a><span class="c1"># Helpers</span>
+</span><span id="L-5413"><a href="#L-5413"><span class="linenos">5413</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="L-5414"><a href="#L-5414"><span class="linenos">5414</span></a><span class="k">def</span> <span class="nf">maybe_parse</span><span class="p">(</span>
+</span><span id="L-5415"><a href="#L-5415"><span class="linenos">5415</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-5416"><a href="#L-5416"><span class="linenos">5416</span></a> <span class="o">*</span><span class="p">,</span>
+</span><span id="L-5417"><a href="#L-5417"><span class="linenos">5417</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-5418"><a href="#L-5418"><span class="linenos">5418</span></a> <span class="n">dialect</span><span 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-5419"><a href="#L-5419"><span class="linenos">5419</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-5420"><a href="#L-5420"><span class="linenos">5420</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-5421"><a href="#L-5421"><span class="linenos">5421</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-5422"><a href="#L-5422"><span class="linenos">5422</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
+</span><span id="L-5423"><a href="#L-5423"><span class="linenos">5423</span></a> <span class="o">...</span>
+</span><span id="L-5424"><a href="#L-5424"><span class="linenos">5424</span></a>
+</span><span id="L-5425"><a href="#L-5425"><span class="linenos">5425</span></a>
+</span><span id="L-5426"><a href="#L-5426"><span class="linenos">5426</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="L-5427"><a href="#L-5427"><span class="linenos">5427</span></a><span class="k">def</span> <span class="nf">maybe_parse</span><span class="p">(</span>
+</span><span id="L-5428"><a href="#L-5428"><span class="linenos">5428</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-5429"><a href="#L-5429"><span class="linenos">5429</span></a> <span class="o">*</span><span class="p">,</span>
+</span><span id="L-5430"><a href="#L-5430"><span class="linenos">5430</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-5431"><a href="#L-5431"><span class="linenos">5431</span></a> <span class="n">dialect</span><span 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-5432"><a href="#L-5432"><span class="linenos">5432</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-5433"><a href="#L-5433"><span class="linenos">5433</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-5434"><a href="#L-5434"><span class="linenos">5434</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-5435"><a href="#L-5435"><span class="linenos">5435</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
+</span><span id="L-5436"><a href="#L-5436"><span class="linenos">5436</span></a> <span class="o">...</span>
+</span><span id="L-5437"><a href="#L-5437"><span class="linenos">5437</span></a>
+</span><span id="L-5438"><a href="#L-5438"><span class="linenos">5438</span></a>
+</span><span id="L-5439"><a href="#L-5439"><span class="linenos">5439</span></a><span class="k">def</span> <span class="nf">maybe_parse</span><span class="p">(</span>
+</span><span id="L-5440"><a href="#L-5440"><span class="linenos">5440</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-5441"><a href="#L-5441"><span class="linenos">5441</span></a> <span class="o">*</span><span class="p">,</span>
+</span><span id="L-5442"><a href="#L-5442"><span class="linenos">5442</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-5443"><a href="#L-5443"><span class="linenos">5443</span></a> <span class="n">dialect</span><span 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-5444"><a href="#L-5444"><span class="linenos">5444</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-5445"><a href="#L-5445"><span class="linenos">5445</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-5446"><a href="#L-5446"><span class="linenos">5446</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-5447"><a href="#L-5447"><span class="linenos">5447</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="L-5448"><a href="#L-5448"><span class="linenos">5448</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Gracefully handle a possible string or expression.</span>
+</span><span id="L-5449"><a href="#L-5449"><span class="linenos">5449</span></a>
+</span><span id="L-5450"><a href="#L-5450"><span class="linenos">5450</span></a><span class="sd"> Example:</span>
+</span><span id="L-5451"><a href="#L-5451"><span class="linenos">5451</span></a><span class="sd"> &gt;&gt;&gt; maybe_parse(&quot;1&quot;)</span>
+</span><span id="L-5452"><a href="#L-5452"><span class="linenos">5452</span></a><span class="sd"> Literal(this=1, is_string=False)</span>
+</span><span id="L-5453"><a href="#L-5453"><span class="linenos">5453</span></a><span class="sd"> &gt;&gt;&gt; maybe_parse(to_identifier(&quot;x&quot;))</span>
+</span><span id="L-5454"><a href="#L-5454"><span class="linenos">5454</span></a><span class="sd"> Identifier(this=x, quoted=False)</span>
</span><span id="L-5455"><a href="#L-5455"><span class="linenos">5455</span></a>
-</span><span id="L-5456"><a href="#L-5456"><span class="linenos">5456</span></a><span class="k">def</span> <span class="nf">_apply_list_builder</span><span class="p">(</span>
-</span><span id="L-5457"><a href="#L-5457"><span class="linenos">5457</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-5458"><a href="#L-5458"><span class="linenos">5458</span></a> <span class="n">instance</span><span class="p">,</span>
-</span><span id="L-5459"><a href="#L-5459"><span class="linenos">5459</span></a> <span class="n">arg</span><span class="p">,</span>
-</span><span id="L-5460"><a href="#L-5460"><span class="linenos">5460</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-5461"><a href="#L-5461"><span class="linenos">5461</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-5462"><a href="#L-5462"><span class="linenos">5462</span></a> <span class="n">prefix</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5463"><a href="#L-5463"><span class="linenos">5463</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5464"><a href="#L-5464"><span class="linenos">5464</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5465"><a href="#L-5465"><span class="linenos">5465</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-5466"><a href="#L-5466"><span class="linenos">5466</span></a><span class="p">):</span>
-</span><span id="L-5467"><a href="#L-5467"><span class="linenos">5467</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-5468"><a href="#L-5468"><span class="linenos">5468</span></a>
-</span><span id="L-5469"><a href="#L-5469"><span class="linenos">5469</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[</span>
-</span><span id="L-5470"><a href="#L-5470"><span class="linenos">5470</span></a> <span class="n">maybe_parse</span><span class="p">(</span>
-</span><span id="L-5471"><a href="#L-5471"><span class="linenos">5471</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-5472"><a href="#L-5472"><span class="linenos">5472</span></a> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span>
-</span><span id="L-5473"><a href="#L-5473"><span class="linenos">5473</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span>
-</span><span id="L-5474"><a href="#L-5474"><span class="linenos">5474</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-5475"><a href="#L-5475"><span class="linenos">5475</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-5476"><a href="#L-5476"><span class="linenos">5476</span></a> <span class="p">)</span>
-</span><span id="L-5477"><a href="#L-5477"><span class="linenos">5477</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-5478"><a href="#L-5478"><span class="linenos">5478</span></a> <span class="k">if</span> <span class="n">expression</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span>
-</span><span id="L-5479"><a href="#L-5479"><span class="linenos">5479</span></a> <span class="p">]</span>
-</span><span id="L-5480"><a href="#L-5480"><span class="linenos">5480</span></a>
-</span><span id="L-5481"><a href="#L-5481"><span class="linenos">5481</span></a> <span class="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-5482"><a href="#L-5482"><span class="linenos">5482</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-5483"><a href="#L-5483"><span class="linenos">5483</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-5484"><a href="#L-5484"><span class="linenos">5484</span></a>
-</span><span id="L-5485"><a href="#L-5485"><span class="linenos">5485</span></a> <span class="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-5486"><a href="#L-5486"><span class="linenos">5486</span></a> <span class="k">return</span> <span class="n">inst</span>
-</span><span id="L-5487"><a href="#L-5487"><span class="linenos">5487</span></a>
-</span><span id="L-5488"><a href="#L-5488"><span class="linenos">5488</span></a>
-</span><span id="L-5489"><a href="#L-5489"><span class="linenos">5489</span></a><span class="k">def</span> <span class="nf">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="L-5490"><a href="#L-5490"><span class="linenos">5490</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-5491"><a href="#L-5491"><span class="linenos">5491</span></a> <span class="n">instance</span><span class="p">,</span>
-</span><span id="L-5492"><a href="#L-5492"><span class="linenos">5492</span></a> <span class="n">arg</span><span class="p">,</span>
-</span><span id="L-5493"><a href="#L-5493"><span class="linenos">5493</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5494"><a href="#L-5494"><span class="linenos">5494</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-5495"><a href="#L-5495"><span class="linenos">5495</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-5496"><a href="#L-5496"><span class="linenos">5496</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5497"><a href="#L-5497"><span class="linenos">5497</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-5498"><a href="#L-5498"><span class="linenos">5498</span></a><span class="p">):</span>
-</span><span id="L-5499"><a href="#L-5499"><span class="linenos">5499</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-5500"><a href="#L-5500"><span class="linenos">5500</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-5501"><a href="#L-5501"><span class="linenos">5501</span></a> <span class="k">return</span> <span class="n">instance</span>
-</span><span id="L-5502"><a href="#L-5502"><span class="linenos">5502</span></a>
-</span><span id="L-5503"><a href="#L-5503"><span class="linenos">5503</span></a> <span class="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-5504"><a href="#L-5504"><span class="linenos">5504</span></a>
-</span><span id="L-5505"><a href="#L-5505"><span class="linenos">5505</span></a> <span class="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-5506"><a href="#L-5506"><span class="linenos">5506</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-5507"><a href="#L-5507"><span class="linenos">5507</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-5456"><a href="#L-5456"><span class="linenos">5456</span></a><span class="sd"> Args:</span>
+</span><span id="L-5457"><a href="#L-5457"><span class="linenos">5457</span></a><span class="sd"> sql_or_expression: the SQL code string or an expression</span>
+</span><span id="L-5458"><a href="#L-5458"><span class="linenos">5458</span></a><span class="sd"> into: the SQLGlot Expression to parse into</span>
+</span><span id="L-5459"><a href="#L-5459"><span class="linenos">5459</span></a><span class="sd"> dialect: the dialect used to parse the input expressions (in the case that an</span>
+</span><span id="L-5460"><a href="#L-5460"><span class="linenos">5460</span></a><span class="sd"> input expression is a SQL string).</span>
+</span><span id="L-5461"><a href="#L-5461"><span class="linenos">5461</span></a><span class="sd"> prefix: a string to prefix the sql with before it gets parsed</span>
+</span><span id="L-5462"><a href="#L-5462"><span class="linenos">5462</span></a><span class="sd"> (automatically includes a space)</span>
+</span><span id="L-5463"><a href="#L-5463"><span class="linenos">5463</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
+</span><span id="L-5464"><a href="#L-5464"><span class="linenos">5464</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
+</span><span id="L-5465"><a href="#L-5465"><span class="linenos">5465</span></a><span class="sd"> that an input expression is a SQL string).</span>
+</span><span id="L-5466"><a href="#L-5466"><span class="linenos">5466</span></a>
+</span><span id="L-5467"><a href="#L-5467"><span class="linenos">5467</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5468"><a href="#L-5468"><span class="linenos">5468</span></a><span class="sd"> Expression: the parsed or given expression.</span>
+</span><span id="L-5469"><a href="#L-5469"><span class="linenos">5469</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5470"><a href="#L-5470"><span class="linenos">5470</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-5471"><a href="#L-5471"><span class="linenos">5471</span></a> <span class="k">if</span> <span class="n">copy</span><span class="p">:</span>
+</span><span id="L-5472"><a href="#L-5472"><span class="linenos">5472</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-5473"><a href="#L-5473"><span class="linenos">5473</span></a> <span class="k">return</span> <span class="n">sql_or_expression</span>
+</span><span id="L-5474"><a href="#L-5474"><span class="linenos">5474</span></a>
+</span><span id="L-5475"><a href="#L-5475"><span class="linenos">5475</span></a> <span class="k">if</span> <span class="n">sql_or_expression</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="L-5476"><a href="#L-5476"><span class="linenos">5476</span></a> <span class="k">raise</span> <span class="n">ParseError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;SQL cannot be None&quot;</span><span class="p">)</span>
+</span><span id="L-5477"><a href="#L-5477"><span class="linenos">5477</span></a>
+</span><span id="L-5478"><a href="#L-5478"><span class="linenos">5478</span></a> <span class="kn">import</span> <span class="nn">sqlglot</span>
+</span><span id="L-5479"><a href="#L-5479"><span class="linenos">5479</span></a>
+</span><span id="L-5480"><a href="#L-5480"><span class="linenos">5480</span></a> <span class="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-5481"><a href="#L-5481"><span class="linenos">5481</span></a> <span class="k">if</span> <span class="n">prefix</span><span class="p">:</span>
+</span><span id="L-5482"><a href="#L-5482"><span class="linenos">5482</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-5483"><a href="#L-5483"><span class="linenos">5483</span></a>
+</span><span id="L-5484"><a href="#L-5484"><span class="linenos">5484</span></a> <span class="k">return</span> <span class="n">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-5485"><a href="#L-5485"><span class="linenos">5485</span></a>
+</span><span id="L-5486"><a href="#L-5486"><span class="linenos">5486</span></a>
+</span><span id="L-5487"><a href="#L-5487"><span class="linenos">5487</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="L-5488"><a href="#L-5488"><span class="linenos">5488</span></a><span class="k">def</span> <span class="nf">maybe_copy</span><span class="p">(</span><span class="n">instance</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="L-5489"><a href="#L-5489"><span class="linenos">5489</span></a> <span class="o">...</span>
+</span><span id="L-5490"><a href="#L-5490"><span class="linenos">5490</span></a>
+</span><span id="L-5491"><a href="#L-5491"><span class="linenos">5491</span></a>
+</span><span id="L-5492"><a href="#L-5492"><span class="linenos">5492</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="L-5493"><a href="#L-5493"><span class="linenos">5493</span></a><span class="k">def</span> <span class="nf">maybe_copy</span><span class="p">(</span><span class="n">instance</span><span class="p">:</span> <span class="n">E</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
+</span><span id="L-5494"><a href="#L-5494"><span class="linenos">5494</span></a> <span class="o">...</span>
+</span><span id="L-5495"><a href="#L-5495"><span class="linenos">5495</span></a>
+</span><span id="L-5496"><a href="#L-5496"><span class="linenos">5496</span></a>
+</span><span id="L-5497"><a href="#L-5497"><span class="linenos">5497</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-5498"><a href="#L-5498"><span class="linenos">5498</span></a> <span class="k">return</span> <span class="n">instance</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">copy</span> <span class="ow">and</span> <span class="n">instance</span> <span class="k">else</span> <span class="n">instance</span>
+</span><span id="L-5499"><a href="#L-5499"><span class="linenos">5499</span></a>
+</span><span id="L-5500"><a href="#L-5500"><span class="linenos">5500</span></a>
+</span><span id="L-5501"><a href="#L-5501"><span class="linenos">5501</span></a><span class="k">def</span> <span class="nf">_to_s</span><span class="p">(</span><span class="n">node</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">verbose</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span> <span class="n">level</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">0</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-5502"><a href="#L-5502"><span class="linenos">5502</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Generate a textual representation of an Expression tree&quot;&quot;&quot;</span>
+</span><span id="L-5503"><a href="#L-5503"><span class="linenos">5503</span></a> <span class="n">indent</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">+</span> <span class="p">(</span><span class="s2">&quot; &quot;</span> <span class="o">*</span> <span class="p">(</span><span class="n">level</span> <span class="o">+</span> <span class="mi">1</span><span class="p">))</span>
+</span><span id="L-5504"><a href="#L-5504"><span class="linenos">5504</span></a> <span class="n">delim</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;,</span><span class="si">{</span><span class="n">indent</span><span class="si">}</span><span class="s2">&quot;</span>
+</span><span id="L-5505"><a href="#L-5505"><span class="linenos">5505</span></a>
+</span><span id="L-5506"><a href="#L-5506"><span class="linenos">5506</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-5507"><a href="#L-5507"><span class="linenos">5507</span></a> <span class="n">args</span> <span class="o">=</span> <span class="p">{</span><span class="n">k</span><span class="p">:</span> <span class="n">v</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">node</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> <span class="k">if</span> <span class="p">(</span><span class="n">v</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">v</span> <span class="o">!=</span> <span class="p">[])</span> <span class="ow">or</span> <span class="n">verbose</span><span class="p">}</span>
</span><span id="L-5508"><a href="#L-5508"><span class="linenos">5508</span></a>
-</span><span id="L-5509"><a href="#L-5509"><span class="linenos">5509</span></a> <span class="n">node</span> <span class="o">=</span> <span class="n">and_</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-5510"><a href="#L-5510"><span class="linenos">5510</span></a>
-</span><span id="L-5511"><a href="#L-5511"><span class="linenos">5511</span></a> <span class="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-5512"><a href="#L-5512"><span class="linenos">5512</span></a> <span class="k">return</span> <span class="n">inst</span>
+</span><span id="L-5509"><a href="#L-5509"><span class="linenos">5509</span></a> <span class="k">if</span> <span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">type</span> <span class="ow">or</span> <span class="n">verbose</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">DataType</span><span class="p">):</span>
+</span><span id="L-5510"><a href="#L-5510"><span class="linenos">5510</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">&quot;_type&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">node</span><span class="o">.</span><span class="n">type</span>
+</span><span id="L-5511"><a href="#L-5511"><span class="linenos">5511</span></a> <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">comments</span> <span class="ow">or</span> <span class="n">verbose</span><span class="p">:</span>
+</span><span id="L-5512"><a href="#L-5512"><span class="linenos">5512</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">&quot;_comments&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">node</span><span class="o">.</span><span class="n">comments</span>
</span><span id="L-5513"><a href="#L-5513"><span class="linenos">5513</span></a>
-</span><span id="L-5514"><a href="#L-5514"><span class="linenos">5514</span></a>
-</span><span id="L-5515"><a href="#L-5515"><span class="linenos">5515</span></a><span class="k">def</span> <span class="nf">_apply_cte_builder</span><span class="p">(</span>
-</span><span id="L-5516"><a href="#L-5516"><span class="linenos">5516</span></a> <span class="n">instance</span><span class="p">:</span> <span class="n">E</span><span class="p">,</span>
-</span><span id="L-5517"><a href="#L-5517"><span class="linenos">5517</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-5518"><a href="#L-5518"><span class="linenos">5518</span></a> <span class="n">as_</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-5519"><a href="#L-5519"><span class="linenos">5519</span></a> <span class="n">recursive</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5520"><a href="#L-5520"><span class="linenos">5520</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-5521"><a href="#L-5521"><span class="linenos">5521</span></a> <span class="n">dialect</span><span 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-5522"><a href="#L-5522"><span class="linenos">5522</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-5523"><a href="#L-5523"><span class="linenos">5523</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-5524"><a href="#L-5524"><span class="linenos">5524</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
-</span><span id="L-5525"><a href="#L-5525"><span class="linenos">5525</span></a> <span class="n">alias_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">alias</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">TableAlias</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-5526"><a href="#L-5526"><span class="linenos">5526</span></a> <span class="n">as_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">as_</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-5527"><a href="#L-5527"><span class="linenos">5527</span></a> <span class="n">cte</span> <span class="o">=</span> <span class="n">CTE</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">as_expression</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="n">alias_expression</span><span class="p">)</span>
-</span><span id="L-5528"><a href="#L-5528"><span class="linenos">5528</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="L-5529"><a href="#L-5529"><span class="linenos">5529</span></a> <span class="n">cte</span><span class="p">,</span>
-</span><span id="L-5530"><a href="#L-5530"><span class="linenos">5530</span></a> <span class="n">instance</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span>
-</span><span id="L-5531"><a href="#L-5531"><span class="linenos">5531</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-5532"><a href="#L-5532"><span class="linenos">5532</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-5533"><a href="#L-5533"><span class="linenos">5533</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-5534"><a href="#L-5534"><span class="linenos">5534</span></a> <span class="n">into</span><span class="o">=</span><span class="n">With</span><span class="p">,</span>
-</span><span id="L-5535"><a href="#L-5535"><span class="linenos">5535</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-5536"><a href="#L-5536"><span class="linenos">5536</span></a> <span class="p">)</span>
+</span><span id="L-5514"><a href="#L-5514"><span class="linenos">5514</span></a> <span class="k">if</span> <span class="n">verbose</span><span class="p">:</span>
+</span><span id="L-5515"><a href="#L-5515"><span class="linenos">5515</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">&quot;_id&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="nb">id</span><span class="p">(</span><span class="n">node</span><span class="p">)</span>
+</span><span id="L-5516"><a href="#L-5516"><span class="linenos">5516</span></a>
+</span><span id="L-5517"><a href="#L-5517"><span class="linenos">5517</span></a> <span class="c1"># Inline leaves for a more compact representation</span>
+</span><span id="L-5518"><a href="#L-5518"><span class="linenos">5518</span></a> <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">is_leaf</span><span class="p">():</span>
+</span><span id="L-5519"><a href="#L-5519"><span class="linenos">5519</span></a> <span class="n">indent</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span>
+</span><span id="L-5520"><a href="#L-5520"><span class="linenos">5520</span></a> <span class="n">delim</span> <span class="o">=</span> <span class="s2">&quot;, &quot;</span>
+</span><span id="L-5521"><a href="#L-5521"><span class="linenos">5521</span></a>
+</span><span id="L-5522"><a href="#L-5522"><span class="linenos">5522</span></a> <span class="n">items</span> <span class="o">=</span> <span class="n">delim</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">k</span><span class="si">}</span><span class="s2">=</span><span class="si">{</span><span class="n">_to_s</span><span class="p">(</span><span class="n">v</span><span class="p">,</span><span class="w"> </span><span class="n">verbose</span><span class="p">,</span><span class="w"> </span><span class="n">level</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()])</span>
+</span><span id="L-5523"><a href="#L-5523"><span class="linenos">5523</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">node</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="si">}</span><span class="s2">(</span><span class="si">{</span><span class="n">indent</span><span class="si">}{</span><span class="n">items</span><span class="si">}</span><span class="s2">)&quot;</span>
+</span><span id="L-5524"><a href="#L-5524"><span class="linenos">5524</span></a>
+</span><span id="L-5525"><a href="#L-5525"><span class="linenos">5525</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
+</span><span id="L-5526"><a href="#L-5526"><span class="linenos">5526</span></a> <span class="n">items</span> <span class="o">=</span> <span class="n">delim</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">_to_s</span><span class="p">(</span><span class="n">i</span><span class="p">,</span> <span class="n">verbose</span><span class="p">,</span> <span class="n">level</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">node</span><span class="p">)</span>
+</span><span id="L-5527"><a href="#L-5527"><span class="linenos">5527</span></a> <span class="n">items</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">indent</span><span class="si">}{</span><span class="n">items</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">items</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
+</span><span id="L-5528"><a href="#L-5528"><span class="linenos">5528</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;[</span><span class="si">{</span><span class="n">items</span><span class="si">}</span><span class="s2">]&quot;</span>
+</span><span id="L-5529"><a href="#L-5529"><span class="linenos">5529</span></a>
+</span><span id="L-5530"><a href="#L-5530"><span class="linenos">5530</span></a> <span class="c1"># Indent multiline strings to match the current level</span>
+</span><span id="L-5531"><a href="#L-5531"><span class="linenos">5531</span></a> <span class="k">return</span> <span class="n">indent</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">textwrap</span><span class="o">.</span><span class="n">dedent</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">node</span><span class="p">)</span><span class="o">.</span><span class="n">strip</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">))</span><span class="o">.</span><span class="n">splitlines</span><span class="p">())</span>
+</span><span id="L-5532"><a href="#L-5532"><span class="linenos">5532</span></a>
+</span><span id="L-5533"><a href="#L-5533"><span class="linenos">5533</span></a>
+</span><span id="L-5534"><a href="#L-5534"><span class="linenos">5534</span></a><span class="k">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-5535"><a href="#L-5535"><span class="linenos">5535</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-5536"><a href="#L-5536"><span class="linenos">5536</span></a>
</span><span id="L-5537"><a href="#L-5537"><span class="linenos">5537</span></a>
-</span><span id="L-5538"><a href="#L-5538"><span class="linenos">5538</span></a>
-</span><span id="L-5539"><a href="#L-5539"><span class="linenos">5539</span></a><span class="k">def</span> <span class="nf">_combine</span><span class="p">(</span>
-</span><span id="L-5540"><a href="#L-5540"><span class="linenos">5540</span></a> <span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]],</span>
-</span><span id="L-5541"><a href="#L-5541"><span class="linenos">5541</span></a> <span class="n">operator</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">Connector</span><span class="p">],</span>
-</span><span id="L-5542"><a href="#L-5542"><span class="linenos">5542</span></a> <span class="n">dialect</span><span 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-5543"><a href="#L-5543"><span class="linenos">5543</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-5544"><a href="#L-5544"><span class="linenos">5544</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-5545"><a href="#L-5545"><span class="linenos">5545</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="L-5546"><a href="#L-5546"><span class="linenos">5546</span></a> <span class="n">conditions</span> <span class="o">=</span> <span class="p">[</span>
-</span><span id="L-5547"><a href="#L-5547"><span class="linenos">5547</span></a> <span class="n">condition</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-5548"><a href="#L-5548"><span class="linenos">5548</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-5549"><a href="#L-5549"><span class="linenos">5549</span></a> <span class="k">if</span> <span class="n">expression</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span>
-</span><span id="L-5550"><a href="#L-5550"><span class="linenos">5550</span></a> <span class="p">]</span>
-</span><span id="L-5551"><a href="#L-5551"><span class="linenos">5551</span></a>
-</span><span id="L-5552"><a href="#L-5552"><span class="linenos">5552</span></a> <span class="n">this</span><span class="p">,</span> <span class="o">*</span><span class="n">rest</span> <span class="o">=</span> <span class="n">conditions</span>
-</span><span id="L-5553"><a href="#L-5553"><span class="linenos">5553</span></a> <span class="k">if</span> <span class="n">rest</span><span class="p">:</span>
-</span><span id="L-5554"><a href="#L-5554"><span class="linenos">5554</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">_wrap</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">Connector</span><span class="p">)</span>
-</span><span id="L-5555"><a href="#L-5555"><span class="linenos">5555</span></a> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="n">rest</span><span class="p">:</span>
-</span><span id="L-5556"><a href="#L-5556"><span class="linenos">5556</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">operator</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">_wrap</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">Connector</span><span class="p">))</span>
-</span><span id="L-5557"><a href="#L-5557"><span class="linenos">5557</span></a>
-</span><span id="L-5558"><a href="#L-5558"><span class="linenos">5558</span></a> <span class="k">return</span> <span class="n">this</span>
-</span><span id="L-5559"><a href="#L-5559"><span class="linenos">5559</span></a>
-</span><span id="L-5560"><a href="#L-5560"><span class="linenos">5560</span></a>
-</span><span id="L-5561"><a href="#L-5561"><span class="linenos">5561</span></a><span class="k">def</span> <span class="nf">_wrap</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">E</span><span class="p">,</span> <span class="n">kind</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">Expression</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">E</span> <span class="o">|</span> <span class="n">Paren</span><span class="p">:</span>
-</span><span id="L-5562"><a href="#L-5562"><span class="linenos">5562</span></a> <span class="k">return</span> <span class="n">Paren</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">kind</span><span class="p">)</span> <span class="k">else</span> <span class="n">expression</span>
-</span><span id="L-5563"><a href="#L-5563"><span class="linenos">5563</span></a>
-</span><span id="L-5564"><a href="#L-5564"><span class="linenos">5564</span></a>
-</span><span id="L-5565"><a href="#L-5565"><span class="linenos">5565</span></a><span class="k">def</span> <span class="nf">union</span><span class="p">(</span>
-</span><span id="L-5566"><a href="#L-5566"><span class="linenos">5566</span></a> <span class="n">left</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-5567"><a href="#L-5567"><span class="linenos">5567</span></a> <span class="n">right</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-5568"><a href="#L-5568"><span class="linenos">5568</span></a> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-5569"><a href="#L-5569"><span class="linenos">5569</span></a> <span class="n">dialect</span><span 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-5570"><a href="#L-5570"><span class="linenos">5570</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-5571"><a href="#L-5571"><span class="linenos">5571</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-5572"><a href="#L-5572"><span class="linenos">5572</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Union</span><span class="p">:</span>
-</span><span id="L-5573"><a href="#L-5573"><span class="linenos">5573</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5574"><a href="#L-5574"><span class="linenos">5574</span></a><span class="sd"> Initializes a syntax tree from one UNION expression.</span>
-</span><span id="L-5575"><a href="#L-5575"><span class="linenos">5575</span></a>
-</span><span id="L-5576"><a href="#L-5576"><span class="linenos">5576</span></a><span class="sd"> Example:</span>
-</span><span id="L-5577"><a href="#L-5577"><span class="linenos">5577</span></a><span class="sd"> &gt;&gt;&gt; union(&quot;SELECT * FROM foo&quot;, &quot;SELECT * FROM bla&quot;).sql()</span>
-</span><span id="L-5578"><a href="#L-5578"><span class="linenos">5578</span></a><span class="sd"> &#39;SELECT * FROM foo UNION SELECT * FROM bla&#39;</span>
-</span><span id="L-5579"><a href="#L-5579"><span class="linenos">5579</span></a>
-</span><span id="L-5580"><a href="#L-5580"><span class="linenos">5580</span></a><span class="sd"> Args:</span>
-</span><span id="L-5581"><a href="#L-5581"><span class="linenos">5581</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
-</span><span id="L-5582"><a href="#L-5582"><span class="linenos">5582</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-5583"><a href="#L-5583"><span class="linenos">5583</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
-</span><span id="L-5584"><a href="#L-5584"><span class="linenos">5584</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-5585"><a href="#L-5585"><span class="linenos">5585</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
-</span><span id="L-5586"><a href="#L-5586"><span class="linenos">5586</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-5587"><a href="#L-5587"><span class="linenos">5587</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
-</span><span id="L-5588"><a href="#L-5588"><span class="linenos">5588</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="L-5589"><a href="#L-5589"><span class="linenos">5589</span></a>
-</span><span id="L-5590"><a href="#L-5590"><span class="linenos">5590</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5591"><a href="#L-5591"><span class="linenos">5591</span></a><span class="sd"> The new Union instance.</span>
-</span><span id="L-5592"><a href="#L-5592"><span class="linenos">5592</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5593"><a href="#L-5593"><span class="linenos">5593</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-5594"><a href="#L-5594"><span class="linenos">5594</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-5595"><a href="#L-5595"><span class="linenos">5595</span></a>
-</span><span id="L-5596"><a href="#L-5596"><span class="linenos">5596</span></a> <span 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-5597"><a href="#L-5597"><span class="linenos">5597</span></a>
-</span><span id="L-5598"><a href="#L-5598"><span class="linenos">5598</span></a>
-</span><span id="L-5599"><a href="#L-5599"><span class="linenos">5599</span></a><span class="k">def</span> <span class="nf">intersect</span><span class="p">(</span>
-</span><span id="L-5600"><a href="#L-5600"><span class="linenos">5600</span></a> <span class="n">left</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-5601"><a href="#L-5601"><span class="linenos">5601</span></a> <span class="n">right</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-5602"><a href="#L-5602"><span class="linenos">5602</span></a> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-5603"><a href="#L-5603"><span class="linenos">5603</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5604"><a href="#L-5604"><span class="linenos">5604</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-5605"><a href="#L-5605"><span class="linenos">5605</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-5606"><a href="#L-5606"><span class="linenos">5606</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Intersect</span><span class="p">:</span>
-</span><span id="L-5607"><a href="#L-5607"><span class="linenos">5607</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5608"><a href="#L-5608"><span class="linenos">5608</span></a><span class="sd"> Initializes a syntax tree from one INTERSECT expression.</span>
-</span><span id="L-5609"><a href="#L-5609"><span class="linenos">5609</span></a>
-</span><span id="L-5610"><a href="#L-5610"><span class="linenos">5610</span></a><span class="sd"> Example:</span>
-</span><span id="L-5611"><a href="#L-5611"><span class="linenos">5611</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-5612"><a href="#L-5612"><span class="linenos">5612</span></a><span class="sd"> &#39;SELECT * FROM foo INTERSECT SELECT * FROM bla&#39;</span>
-</span><span id="L-5613"><a href="#L-5613"><span class="linenos">5613</span></a>
-</span><span id="L-5614"><a href="#L-5614"><span class="linenos">5614</span></a><span class="sd"> Args:</span>
-</span><span id="L-5615"><a href="#L-5615"><span class="linenos">5615</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
-</span><span id="L-5616"><a href="#L-5616"><span class="linenos">5616</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-5617"><a href="#L-5617"><span class="linenos">5617</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
-</span><span id="L-5618"><a href="#L-5618"><span class="linenos">5618</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-5619"><a href="#L-5619"><span class="linenos">5619</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
-</span><span id="L-5620"><a href="#L-5620"><span class="linenos">5620</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-5621"><a href="#L-5621"><span class="linenos">5621</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
-</span><span id="L-5622"><a href="#L-5622"><span class="linenos">5622</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="L-5623"><a href="#L-5623"><span class="linenos">5623</span></a>
-</span><span id="L-5624"><a href="#L-5624"><span class="linenos">5624</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5625"><a href="#L-5625"><span class="linenos">5625</span></a><span class="sd"> The new Intersect instance.</span>
-</span><span id="L-5626"><a href="#L-5626"><span class="linenos">5626</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5627"><a href="#L-5627"><span class="linenos">5627</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-5628"><a href="#L-5628"><span class="linenos">5628</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-5629"><a href="#L-5629"><span class="linenos">5629</span></a>
-</span><span id="L-5630"><a href="#L-5630"><span class="linenos">5630</span></a> <span 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-5538"><a href="#L-5538"><span class="linenos">5538</span></a><span class="k">def</span> <span class="nf">_apply_builder</span><span class="p">(</span>
+</span><span id="L-5539"><a href="#L-5539"><span class="linenos">5539</span></a> <span class="n">expression</span><span class="p">,</span>
+</span><span id="L-5540"><a href="#L-5540"><span class="linenos">5540</span></a> <span class="n">instance</span><span class="p">,</span>
+</span><span id="L-5541"><a href="#L-5541"><span class="linenos">5541</span></a> <span class="n">arg</span><span class="p">,</span>
+</span><span id="L-5542"><a href="#L-5542"><span class="linenos">5542</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-5543"><a href="#L-5543"><span class="linenos">5543</span></a> <span class="n">prefix</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-5544"><a href="#L-5544"><span class="linenos">5544</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-5545"><a href="#L-5545"><span class="linenos">5545</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-5546"><a href="#L-5546"><span class="linenos">5546</span></a> <span class="n">into_arg</span><span class="o">=</span><span class="s2">&quot;this&quot;</span><span class="p">,</span>
+</span><span id="L-5547"><a href="#L-5547"><span class="linenos">5547</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-5548"><a href="#L-5548"><span class="linenos">5548</span></a><span class="p">):</span>
+</span><span id="L-5549"><a href="#L-5549"><span class="linenos">5549</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-5550"><a href="#L-5550"><span class="linenos">5550</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">into</span><span class="p">(</span><span class="o">**</span><span class="p">{</span><span class="n">into_arg</span><span class="p">:</span> <span class="n">expression</span><span class="p">})</span>
+</span><span id="L-5551"><a href="#L-5551"><span class="linenos">5551</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-5552"><a href="#L-5552"><span class="linenos">5552</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-5553"><a href="#L-5553"><span class="linenos">5553</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-5554"><a href="#L-5554"><span class="linenos">5554</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span>
+</span><span id="L-5555"><a href="#L-5555"><span class="linenos">5555</span></a> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span>
+</span><span id="L-5556"><a href="#L-5556"><span class="linenos">5556</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-5557"><a href="#L-5557"><span class="linenos">5557</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-5558"><a href="#L-5558"><span class="linenos">5558</span></a> <span class="p">)</span>
+</span><span id="L-5559"><a href="#L-5559"><span class="linenos">5559</span></a> <span class="n">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-5560"><a href="#L-5560"><span class="linenos">5560</span></a> <span class="k">return</span> <span class="n">instance</span>
+</span><span id="L-5561"><a href="#L-5561"><span class="linenos">5561</span></a>
+</span><span id="L-5562"><a href="#L-5562"><span class="linenos">5562</span></a>
+</span><span id="L-5563"><a href="#L-5563"><span class="linenos">5563</span></a><span class="k">def</span> <span class="nf">_apply_child_list_builder</span><span class="p">(</span>
+</span><span id="L-5564"><a href="#L-5564"><span class="linenos">5564</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-5565"><a href="#L-5565"><span class="linenos">5565</span></a> <span class="n">instance</span><span class="p">,</span>
+</span><span id="L-5566"><a href="#L-5566"><span class="linenos">5566</span></a> <span class="n">arg</span><span class="p">,</span>
+</span><span id="L-5567"><a href="#L-5567"><span class="linenos">5567</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-5568"><a href="#L-5568"><span class="linenos">5568</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-5569"><a href="#L-5569"><span class="linenos">5569</span></a> <span class="n">prefix</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-5570"><a href="#L-5570"><span class="linenos">5570</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-5571"><a href="#L-5571"><span class="linenos">5571</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-5572"><a href="#L-5572"><span class="linenos">5572</span></a> <span class="n">properties</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-5573"><a href="#L-5573"><span class="linenos">5573</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-5574"><a href="#L-5574"><span class="linenos">5574</span></a><span class="p">):</span>
+</span><span id="L-5575"><a href="#L-5575"><span class="linenos">5575</span></a> <span class="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-5576"><a href="#L-5576"><span class="linenos">5576</span></a> <span class="n">parsed</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="L-5577"><a href="#L-5577"><span class="linenos">5577</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-5578"><a href="#L-5578"><span class="linenos">5578</span></a> <span class="k">if</span> <span class="n">expression</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="L-5579"><a href="#L-5579"><span class="linenos">5579</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-5580"><a href="#L-5580"><span class="linenos">5580</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-5581"><a href="#L-5581"><span class="linenos">5581</span></a>
+</span><span id="L-5582"><a href="#L-5582"><span class="linenos">5582</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span>
+</span><span id="L-5583"><a href="#L-5583"><span class="linenos">5583</span></a> <span class="n">expression</span><span class="p">,</span>
+</span><span id="L-5584"><a href="#L-5584"><span class="linenos">5584</span></a> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span>
+</span><span id="L-5585"><a href="#L-5585"><span class="linenos">5585</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-5586"><a href="#L-5586"><span class="linenos">5586</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span>
+</span><span id="L-5587"><a href="#L-5587"><span class="linenos">5587</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-5588"><a href="#L-5588"><span class="linenos">5588</span></a> <span class="p">)</span>
+</span><span id="L-5589"><a href="#L-5589"><span class="linenos">5589</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-5590"><a href="#L-5590"><span class="linenos">5590</span></a>
+</span><span id="L-5591"><a href="#L-5591"><span class="linenos">5591</span></a> <span class="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-5592"><a href="#L-5592"><span class="linenos">5592</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-5593"><a href="#L-5593"><span class="linenos">5593</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-5594"><a href="#L-5594"><span class="linenos">5594</span></a>
+</span><span id="L-5595"><a href="#L-5595"><span class="linenos">5595</span></a> <span class="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-5596"><a href="#L-5596"><span class="linenos">5596</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-5597"><a href="#L-5597"><span class="linenos">5597</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-5598"><a href="#L-5598"><span class="linenos">5598</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-5599"><a href="#L-5599"><span class="linenos">5599</span></a>
+</span><span id="L-5600"><a href="#L-5600"><span class="linenos">5600</span></a> <span class="k">return</span> <span class="n">instance</span>
+</span><span id="L-5601"><a href="#L-5601"><span class="linenos">5601</span></a>
+</span><span id="L-5602"><a href="#L-5602"><span class="linenos">5602</span></a>
+</span><span id="L-5603"><a href="#L-5603"><span class="linenos">5603</span></a><span class="k">def</span> <span class="nf">_apply_list_builder</span><span class="p">(</span>
+</span><span id="L-5604"><a href="#L-5604"><span class="linenos">5604</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-5605"><a href="#L-5605"><span class="linenos">5605</span></a> <span class="n">instance</span><span class="p">,</span>
+</span><span id="L-5606"><a href="#L-5606"><span class="linenos">5606</span></a> <span class="n">arg</span><span class="p">,</span>
+</span><span id="L-5607"><a href="#L-5607"><span class="linenos">5607</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-5608"><a href="#L-5608"><span class="linenos">5608</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-5609"><a href="#L-5609"><span class="linenos">5609</span></a> <span class="n">prefix</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-5610"><a href="#L-5610"><span class="linenos">5610</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-5611"><a href="#L-5611"><span class="linenos">5611</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-5612"><a href="#L-5612"><span class="linenos">5612</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-5613"><a href="#L-5613"><span class="linenos">5613</span></a><span class="p">):</span>
+</span><span id="L-5614"><a href="#L-5614"><span class="linenos">5614</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-5615"><a href="#L-5615"><span class="linenos">5615</span></a>
+</span><span id="L-5616"><a href="#L-5616"><span class="linenos">5616</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[</span>
+</span><span id="L-5617"><a href="#L-5617"><span class="linenos">5617</span></a> <span class="n">maybe_parse</span><span class="p">(</span>
+</span><span id="L-5618"><a href="#L-5618"><span class="linenos">5618</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-5619"><a href="#L-5619"><span class="linenos">5619</span></a> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span>
+</span><span id="L-5620"><a href="#L-5620"><span class="linenos">5620</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span>
+</span><span id="L-5621"><a href="#L-5621"><span class="linenos">5621</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-5622"><a href="#L-5622"><span class="linenos">5622</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-5623"><a href="#L-5623"><span class="linenos">5623</span></a> <span class="p">)</span>
+</span><span id="L-5624"><a href="#L-5624"><span class="linenos">5624</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-5625"><a href="#L-5625"><span class="linenos">5625</span></a> <span class="k">if</span> <span class="n">expression</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span>
+</span><span id="L-5626"><a href="#L-5626"><span class="linenos">5626</span></a> <span class="p">]</span>
+</span><span id="L-5627"><a href="#L-5627"><span class="linenos">5627</span></a>
+</span><span id="L-5628"><a href="#L-5628"><span class="linenos">5628</span></a> <span class="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-5629"><a href="#L-5629"><span class="linenos">5629</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-5630"><a href="#L-5630"><span class="linenos">5630</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-5631"><a href="#L-5631"><span class="linenos">5631</span></a>
-</span><span id="L-5632"><a href="#L-5632"><span class="linenos">5632</span></a>
-</span><span id="L-5633"><a href="#L-5633"><span class="linenos">5633</span></a><span class="k">def</span> <span class="nf">except_</span><span class="p">(</span>
-</span><span id="L-5634"><a href="#L-5634"><span class="linenos">5634</span></a> <span class="n">left</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-5635"><a href="#L-5635"><span class="linenos">5635</span></a> <span class="n">right</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-5636"><a href="#L-5636"><span class="linenos">5636</span></a> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-5637"><a href="#L-5637"><span class="linenos">5637</span></a> <span class="n">dialect</span><span 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-5638"><a href="#L-5638"><span class="linenos">5638</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-5639"><a href="#L-5639"><span class="linenos">5639</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-5640"><a href="#L-5640"><span class="linenos">5640</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Except</span><span class="p">:</span>
-</span><span id="L-5641"><a href="#L-5641"><span class="linenos">5641</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5642"><a href="#L-5642"><span class="linenos">5642</span></a><span class="sd"> Initializes a syntax tree from one EXCEPT expression.</span>
-</span><span id="L-5643"><a href="#L-5643"><span class="linenos">5643</span></a>
-</span><span id="L-5644"><a href="#L-5644"><span class="linenos">5644</span></a><span class="sd"> Example:</span>
-</span><span id="L-5645"><a href="#L-5645"><span class="linenos">5645</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-5646"><a href="#L-5646"><span class="linenos">5646</span></a><span class="sd"> &#39;SELECT * FROM foo EXCEPT SELECT * FROM bla&#39;</span>
-</span><span id="L-5647"><a href="#L-5647"><span class="linenos">5647</span></a>
-</span><span id="L-5648"><a href="#L-5648"><span class="linenos">5648</span></a><span class="sd"> Args:</span>
-</span><span id="L-5649"><a href="#L-5649"><span class="linenos">5649</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
-</span><span id="L-5650"><a href="#L-5650"><span class="linenos">5650</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-5651"><a href="#L-5651"><span class="linenos">5651</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
-</span><span id="L-5652"><a href="#L-5652"><span class="linenos">5652</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-5653"><a href="#L-5653"><span class="linenos">5653</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
-</span><span id="L-5654"><a href="#L-5654"><span class="linenos">5654</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-5655"><a href="#L-5655"><span class="linenos">5655</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
-</span><span id="L-5656"><a href="#L-5656"><span class="linenos">5656</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-5632"><a href="#L-5632"><span class="linenos">5632</span></a> <span 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-5633"><a href="#L-5633"><span class="linenos">5633</span></a> <span class="k">return</span> <span class="n">inst</span>
+</span><span id="L-5634"><a href="#L-5634"><span class="linenos">5634</span></a>
+</span><span id="L-5635"><a href="#L-5635"><span class="linenos">5635</span></a>
+</span><span id="L-5636"><a href="#L-5636"><span class="linenos">5636</span></a><span class="k">def</span> <span class="nf">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="L-5637"><a href="#L-5637"><span class="linenos">5637</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-5638"><a href="#L-5638"><span class="linenos">5638</span></a> <span class="n">instance</span><span class="p">,</span>
+</span><span id="L-5639"><a href="#L-5639"><span class="linenos">5639</span></a> <span class="n">arg</span><span class="p">,</span>
+</span><span id="L-5640"><a href="#L-5640"><span class="linenos">5640</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-5641"><a href="#L-5641"><span class="linenos">5641</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-5642"><a href="#L-5642"><span class="linenos">5642</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-5643"><a href="#L-5643"><span class="linenos">5643</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-5644"><a href="#L-5644"><span class="linenos">5644</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-5645"><a href="#L-5645"><span class="linenos">5645</span></a><span class="p">):</span>
+</span><span id="L-5646"><a href="#L-5646"><span class="linenos">5646</span></a> <span 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-5647"><a href="#L-5647"><span class="linenos">5647</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-5648"><a href="#L-5648"><span class="linenos">5648</span></a> <span class="k">return</span> <span class="n">instance</span>
+</span><span id="L-5649"><a href="#L-5649"><span class="linenos">5649</span></a>
+</span><span id="L-5650"><a href="#L-5650"><span class="linenos">5650</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-5651"><a href="#L-5651"><span class="linenos">5651</span></a>
+</span><span id="L-5652"><a href="#L-5652"><span class="linenos">5652</span></a> <span class="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-5653"><a href="#L-5653"><span class="linenos">5653</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-5654"><a href="#L-5654"><span class="linenos">5654</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-5655"><a href="#L-5655"><span class="linenos">5655</span></a>
+</span><span id="L-5656"><a href="#L-5656"><span class="linenos">5656</span></a> <span class="n">node</span> <span class="o">=</span> <span class="n">and_</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="L-5657"><a href="#L-5657"><span class="linenos">5657</span></a>
-</span><span id="L-5658"><a href="#L-5658"><span class="linenos">5658</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5659"><a href="#L-5659"><span class="linenos">5659</span></a><span class="sd"> The new Except instance.</span>
-</span><span id="L-5660"><a href="#L-5660"><span class="linenos">5660</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5661"><a href="#L-5661"><span class="linenos">5661</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-5662"><a href="#L-5662"><span class="linenos">5662</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-5663"><a href="#L-5663"><span class="linenos">5663</span></a>
-</span><span id="L-5664"><a href="#L-5664"><span class="linenos">5664</span></a> <span class="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-5665"><a href="#L-5665"><span class="linenos">5665</span></a>
-</span><span id="L-5666"><a href="#L-5666"><span class="linenos">5666</span></a>
-</span><span id="L-5667"><a href="#L-5667"><span class="linenos">5667</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-5668"><a href="#L-5668"><span class="linenos">5668</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5669"><a href="#L-5669"><span class="linenos">5669</span></a><span class="sd"> Initializes a syntax tree from one or multiple SELECT expressions.</span>
-</span><span id="L-5670"><a href="#L-5670"><span class="linenos">5670</span></a>
-</span><span id="L-5671"><a href="#L-5671"><span class="linenos">5671</span></a><span class="sd"> Example:</span>
-</span><span id="L-5672"><a href="#L-5672"><span class="linenos">5672</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-5673"><a href="#L-5673"><span class="linenos">5673</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
-</span><span id="L-5674"><a href="#L-5674"><span class="linenos">5674</span></a>
-</span><span id="L-5675"><a href="#L-5675"><span class="linenos">5675</span></a><span class="sd"> Args:</span>
-</span><span id="L-5676"><a href="#L-5676"><span class="linenos">5676</span></a><span class="sd"> *expressions: the SQL code string to parse as the expressions of a</span>
-</span><span id="L-5677"><a href="#L-5677"><span class="linenos">5677</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-5678"><a href="#L-5678"><span class="linenos">5678</span></a><span class="sd"> dialect: the dialect used to parse the input expressions (in the case that an</span>
-</span><span id="L-5679"><a href="#L-5679"><span class="linenos">5679</span></a><span class="sd"> input expression is a SQL string).</span>
-</span><span id="L-5680"><a href="#L-5680"><span class="linenos">5680</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
-</span><span id="L-5681"><a href="#L-5681"><span class="linenos">5681</span></a><span class="sd"> that an input expression is a SQL string).</span>
-</span><span id="L-5682"><a href="#L-5682"><span class="linenos">5682</span></a>
-</span><span id="L-5683"><a href="#L-5683"><span class="linenos">5683</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5684"><a href="#L-5684"><span class="linenos">5684</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
-</span><span id="L-5685"><a href="#L-5685"><span class="linenos">5685</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5686"><a href="#L-5686"><span class="linenos">5686</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-5687"><a href="#L-5687"><span class="linenos">5687</span></a>
-</span><span id="L-5688"><a href="#L-5688"><span class="linenos">5688</span></a>
-</span><span id="L-5689"><a href="#L-5689"><span class="linenos">5689</span></a><span class="k">def</span> <span class="nf">from_</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-5690"><a href="#L-5690"><span class="linenos">5690</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5691"><a href="#L-5691"><span class="linenos">5691</span></a><span class="sd"> Initializes a syntax tree from a FROM expression.</span>
-</span><span id="L-5692"><a href="#L-5692"><span class="linenos">5692</span></a>
-</span><span id="L-5693"><a href="#L-5693"><span class="linenos">5693</span></a><span class="sd"> Example:</span>
-</span><span id="L-5694"><a href="#L-5694"><span class="linenos">5694</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-5695"><a href="#L-5695"><span class="linenos">5695</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
-</span><span id="L-5696"><a href="#L-5696"><span class="linenos">5696</span></a>
-</span><span id="L-5697"><a href="#L-5697"><span class="linenos">5697</span></a><span class="sd"> Args:</span>
-</span><span id="L-5698"><a href="#L-5698"><span class="linenos">5698</span></a><span class="sd"> *expression: the SQL code string to parse as the FROM expressions of a</span>
-</span><span id="L-5699"><a href="#L-5699"><span class="linenos">5699</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-5700"><a href="#L-5700"><span class="linenos">5700</span></a><span class="sd"> dialect: the dialect used to parse the input expression (in the case that the</span>
-</span><span id="L-5701"><a href="#L-5701"><span class="linenos">5701</span></a><span class="sd"> input expression is a SQL string).</span>
-</span><span id="L-5702"><a href="#L-5702"><span class="linenos">5702</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
-</span><span id="L-5703"><a href="#L-5703"><span class="linenos">5703</span></a><span class="sd"> that the input expression is a SQL string).</span>
+</span><span id="L-5658"><a href="#L-5658"><span class="linenos">5658</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-5659"><a href="#L-5659"><span class="linenos">5659</span></a> <span class="k">return</span> <span class="n">inst</span>
+</span><span id="L-5660"><a href="#L-5660"><span class="linenos">5660</span></a>
+</span><span id="L-5661"><a href="#L-5661"><span class="linenos">5661</span></a>
+</span><span id="L-5662"><a href="#L-5662"><span class="linenos">5662</span></a><span class="k">def</span> <span class="nf">_apply_cte_builder</span><span class="p">(</span>
+</span><span id="L-5663"><a href="#L-5663"><span class="linenos">5663</span></a> <span class="n">instance</span><span class="p">:</span> <span class="n">E</span><span class="p">,</span>
+</span><span id="L-5664"><a href="#L-5664"><span class="linenos">5664</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-5665"><a href="#L-5665"><span class="linenos">5665</span></a> <span class="n">as_</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-5666"><a href="#L-5666"><span class="linenos">5666</span></a> <span class="n">recursive</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-5667"><a href="#L-5667"><span class="linenos">5667</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-5668"><a href="#L-5668"><span class="linenos">5668</span></a> <span class="n">dialect</span><span 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-5669"><a href="#L-5669"><span class="linenos">5669</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-5670"><a href="#L-5670"><span class="linenos">5670</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-5671"><a href="#L-5671"><span class="linenos">5671</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
+</span><span id="L-5672"><a href="#L-5672"><span class="linenos">5672</span></a> <span class="n">alias_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">alias</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">TableAlias</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-5673"><a href="#L-5673"><span class="linenos">5673</span></a> <span class="n">as_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">as_</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-5674"><a href="#L-5674"><span class="linenos">5674</span></a> <span class="n">cte</span> <span class="o">=</span> <span class="n">CTE</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">as_expression</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="n">alias_expression</span><span class="p">)</span>
+</span><span id="L-5675"><a href="#L-5675"><span class="linenos">5675</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
+</span><span id="L-5676"><a href="#L-5676"><span class="linenos">5676</span></a> <span class="n">cte</span><span class="p">,</span>
+</span><span id="L-5677"><a href="#L-5677"><span class="linenos">5677</span></a> <span class="n">instance</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span>
+</span><span id="L-5678"><a href="#L-5678"><span class="linenos">5678</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-5679"><a href="#L-5679"><span class="linenos">5679</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-5680"><a href="#L-5680"><span class="linenos">5680</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-5681"><a href="#L-5681"><span class="linenos">5681</span></a> <span class="n">into</span><span class="o">=</span><span class="n">With</span><span class="p">,</span>
+</span><span id="L-5682"><a href="#L-5682"><span class="linenos">5682</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-5683"><a href="#L-5683"><span class="linenos">5683</span></a> <span class="p">)</span>
+</span><span id="L-5684"><a href="#L-5684"><span class="linenos">5684</span></a>
+</span><span id="L-5685"><a href="#L-5685"><span class="linenos">5685</span></a>
+</span><span id="L-5686"><a href="#L-5686"><span class="linenos">5686</span></a><span class="k">def</span> <span class="nf">_combine</span><span class="p">(</span>
+</span><span id="L-5687"><a href="#L-5687"><span class="linenos">5687</span></a> <span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]],</span>
+</span><span id="L-5688"><a href="#L-5688"><span class="linenos">5688</span></a> <span class="n">operator</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">Connector</span><span class="p">],</span>
+</span><span id="L-5689"><a href="#L-5689"><span class="linenos">5689</span></a> <span class="n">dialect</span><span 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-5690"><a href="#L-5690"><span class="linenos">5690</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-5691"><a href="#L-5691"><span class="linenos">5691</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-5692"><a href="#L-5692"><span class="linenos">5692</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="L-5693"><a href="#L-5693"><span class="linenos">5693</span></a> <span class="n">conditions</span> <span class="o">=</span> <span class="p">[</span>
+</span><span id="L-5694"><a href="#L-5694"><span class="linenos">5694</span></a> <span class="n">condition</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-5695"><a href="#L-5695"><span class="linenos">5695</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-5696"><a href="#L-5696"><span class="linenos">5696</span></a> <span class="k">if</span> <span class="n">expression</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span>
+</span><span id="L-5697"><a href="#L-5697"><span class="linenos">5697</span></a> <span class="p">]</span>
+</span><span id="L-5698"><a href="#L-5698"><span class="linenos">5698</span></a>
+</span><span id="L-5699"><a href="#L-5699"><span class="linenos">5699</span></a> <span class="n">this</span><span class="p">,</span> <span class="o">*</span><span class="n">rest</span> <span class="o">=</span> <span class="n">conditions</span>
+</span><span id="L-5700"><a href="#L-5700"><span class="linenos">5700</span></a> <span class="k">if</span> <span class="n">rest</span><span class="p">:</span>
+</span><span id="L-5701"><a href="#L-5701"><span class="linenos">5701</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">_wrap</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">Connector</span><span class="p">)</span>
+</span><span id="L-5702"><a href="#L-5702"><span class="linenos">5702</span></a> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="n">rest</span><span class="p">:</span>
+</span><span id="L-5703"><a href="#L-5703"><span class="linenos">5703</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">operator</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">_wrap</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">Connector</span><span class="p">))</span>
</span><span id="L-5704"><a href="#L-5704"><span class="linenos">5704</span></a>
-</span><span id="L-5705"><a href="#L-5705"><span class="linenos">5705</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5706"><a href="#L-5706"><span class="linenos">5706</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
-</span><span id="L-5707"><a href="#L-5707"><span class="linenos">5707</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5708"><a href="#L-5708"><span class="linenos">5708</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-5709"><a href="#L-5709"><span class="linenos">5709</span></a>
+</span><span id="L-5705"><a href="#L-5705"><span class="linenos">5705</span></a> <span class="k">return</span> <span class="n">this</span>
+</span><span id="L-5706"><a href="#L-5706"><span class="linenos">5706</span></a>
+</span><span id="L-5707"><a href="#L-5707"><span class="linenos">5707</span></a>
+</span><span id="L-5708"><a href="#L-5708"><span class="linenos">5708</span></a><span class="k">def</span> <span class="nf">_wrap</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">E</span><span class="p">,</span> <span class="n">kind</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">Expression</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">E</span> <span class="o">|</span> <span class="n">Paren</span><span class="p">:</span>
+</span><span id="L-5709"><a href="#L-5709"><span class="linenos">5709</span></a> <span class="k">return</span> <span class="n">Paren</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">kind</span><span class="p">)</span> <span class="k">else</span> <span class="n">expression</span>
</span><span id="L-5710"><a href="#L-5710"><span class="linenos">5710</span></a>
-</span><span id="L-5711"><a href="#L-5711"><span class="linenos">5711</span></a><span class="k">def</span> <span class="nf">update</span><span class="p">(</span>
-</span><span id="L-5712"><a href="#L-5712"><span class="linenos">5712</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-5713"><a href="#L-5713"><span class="linenos">5713</span></a> <span class="n">properties</span><span class="p">:</span> <span class="nb">dict</span><span class="p">,</span>
-</span><span id="L-5714"><a href="#L-5714"><span class="linenos">5714</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-5715"><a href="#L-5715"><span class="linenos">5715</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-5711"><a href="#L-5711"><span class="linenos">5711</span></a>
+</span><span id="L-5712"><a href="#L-5712"><span class="linenos">5712</span></a><span class="k">def</span> <span class="nf">union</span><span class="p">(</span>
+</span><span id="L-5713"><a href="#L-5713"><span class="linenos">5713</span></a> <span class="n">left</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-5714"><a href="#L-5714"><span class="linenos">5714</span></a> <span class="n">right</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-5715"><a href="#L-5715"><span class="linenos">5715</span></a> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-5716"><a href="#L-5716"><span class="linenos">5716</span></a> <span class="n">dialect</span><span 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-5717"><a href="#L-5717"><span class="linenos">5717</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-5718"><a href="#L-5718"><span class="linenos">5718</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Update</span><span class="p">:</span>
-</span><span id="L-5719"><a href="#L-5719"><span class="linenos">5719</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5720"><a href="#L-5720"><span class="linenos">5720</span></a><span class="sd"> Creates an update statement.</span>
-</span><span id="L-5721"><a href="#L-5721"><span class="linenos">5721</span></a>
-</span><span id="L-5722"><a href="#L-5722"><span class="linenos">5722</span></a><span class="sd"> Example:</span>
-</span><span id="L-5723"><a href="#L-5723"><span class="linenos">5723</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-5724"><a href="#L-5724"><span class="linenos">5724</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-5725"><a href="#L-5725"><span class="linenos">5725</span></a>
-</span><span id="L-5726"><a href="#L-5726"><span class="linenos">5726</span></a><span class="sd"> Args:</span>
-</span><span id="L-5727"><a href="#L-5727"><span class="linenos">5727</span></a><span class="sd"> *properties: dictionary of properties to set which are</span>
-</span><span id="L-5728"><a href="#L-5728"><span class="linenos">5728</span></a><span class="sd"> auto converted to sql objects eg None -&gt; NULL</span>
-</span><span id="L-5729"><a href="#L-5729"><span class="linenos">5729</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span>
-</span><span id="L-5730"><a href="#L-5730"><span class="linenos">5730</span></a><span class="sd"> from_: sql statement parsed into a FROM statement</span>
-</span><span id="L-5731"><a href="#L-5731"><span class="linenos">5731</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="L-5732"><a href="#L-5732"><span class="linenos">5732</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="L-5733"><a href="#L-5733"><span class="linenos">5733</span></a>
-</span><span id="L-5734"><a href="#L-5734"><span class="linenos">5734</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5735"><a href="#L-5735"><span class="linenos">5735</span></a><span class="sd"> Update: the syntax tree for the UPDATE statement.</span>
-</span><span id="L-5736"><a href="#L-5736"><span class="linenos">5736</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5737"><a href="#L-5737"><span class="linenos">5737</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-5738"><a href="#L-5738"><span class="linenos">5738</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-5739"><a href="#L-5739"><span class="linenos">5739</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
-</span><span id="L-5740"><a href="#L-5740"><span class="linenos">5740</span></a> <span class="p">[</span>
-</span><span id="L-5741"><a href="#L-5741"><span class="linenos">5741</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-5742"><a href="#L-5742"><span class="linenos">5742</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-5743"><a href="#L-5743"><span class="linenos">5743</span></a> <span class="p">],</span>
-</span><span id="L-5744"><a href="#L-5744"><span class="linenos">5744</span></a> <span class="p">)</span>
-</span><span id="L-5745"><a href="#L-5745"><span class="linenos">5745</span></a> <span class="k">if</span> <span class="n">from_</span><span class="p">:</span>
-</span><span id="L-5746"><a href="#L-5746"><span class="linenos">5746</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-5747"><a href="#L-5747"><span class="linenos">5747</span></a> <span class="s2">&quot;from&quot;</span><span class="p">,</span>
-</span><span id="L-5748"><a href="#L-5748"><span class="linenos">5748</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-5749"><a href="#L-5749"><span class="linenos">5749</span></a> <span class="p">)</span>
-</span><span id="L-5750"><a href="#L-5750"><span class="linenos">5750</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-5751"><a href="#L-5751"><span class="linenos">5751</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-5752"><a href="#L-5752"><span class="linenos">5752</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
-</span><span id="L-5753"><a href="#L-5753"><span class="linenos">5753</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-5754"><a href="#L-5754"><span class="linenos">5754</span></a> <span class="s2">&quot;where&quot;</span><span class="p">,</span>
-</span><span id="L-5755"><a href="#L-5755"><span class="linenos">5755</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-5756"><a href="#L-5756"><span class="linenos">5756</span></a> <span class="p">)</span>
-</span><span id="L-5757"><a href="#L-5757"><span class="linenos">5757</span></a> <span class="k">return</span> <span class="n">update_expr</span>
-</span><span id="L-5758"><a href="#L-5758"><span class="linenos">5758</span></a>
-</span><span id="L-5759"><a href="#L-5759"><span class="linenos">5759</span></a>
-</span><span id="L-5760"><a href="#L-5760"><span class="linenos">5760</span></a><span class="k">def</span> <span class="nf">delete</span><span class="p">(</span>
-</span><span id="L-5761"><a href="#L-5761"><span class="linenos">5761</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-5762"><a href="#L-5762"><span class="linenos">5762</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-5763"><a href="#L-5763"><span class="linenos">5763</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-5764"><a href="#L-5764"><span class="linenos">5764</span></a> <span class="n">dialect</span><span 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-5765"><a href="#L-5765"><span class="linenos">5765</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-5766"><a href="#L-5766"><span class="linenos">5766</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
-</span><span id="L-5767"><a href="#L-5767"><span class="linenos">5767</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5768"><a href="#L-5768"><span class="linenos">5768</span></a><span class="sd"> Builds a delete statement.</span>
-</span><span id="L-5769"><a href="#L-5769"><span class="linenos">5769</span></a>
-</span><span id="L-5770"><a href="#L-5770"><span class="linenos">5770</span></a><span class="sd"> Example:</span>
-</span><span id="L-5771"><a href="#L-5771"><span class="linenos">5771</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-5772"><a href="#L-5772"><span class="linenos">5772</span></a><span class="sd"> &#39;DELETE FROM my_table WHERE id &gt; 1&#39;</span>
-</span><span id="L-5773"><a href="#L-5773"><span class="linenos">5773</span></a>
-</span><span id="L-5774"><a href="#L-5774"><span class="linenos">5774</span></a><span class="sd"> Args:</span>
-</span><span id="L-5775"><a href="#L-5775"><span class="linenos">5775</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span>
-</span><span id="L-5776"><a href="#L-5776"><span class="linenos">5776</span></a><span class="sd"> returning: sql conditional parsed into a RETURNING statement</span>
-</span><span id="L-5777"><a href="#L-5777"><span class="linenos">5777</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="L-5778"><a href="#L-5778"><span class="linenos">5778</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="L-5717"><a href="#L-5717"><span class="linenos">5717</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-5718"><a href="#L-5718"><span class="linenos">5718</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-5719"><a href="#L-5719"><span class="linenos">5719</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Union</span><span class="p">:</span>
+</span><span id="L-5720"><a href="#L-5720"><span class="linenos">5720</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5721"><a href="#L-5721"><span class="linenos">5721</span></a><span class="sd"> Initializes a syntax tree from one UNION expression.</span>
+</span><span id="L-5722"><a href="#L-5722"><span class="linenos">5722</span></a>
+</span><span id="L-5723"><a href="#L-5723"><span class="linenos">5723</span></a><span class="sd"> Example:</span>
+</span><span id="L-5724"><a href="#L-5724"><span class="linenos">5724</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-5725"><a href="#L-5725"><span class="linenos">5725</span></a><span class="sd"> &#39;SELECT * FROM foo UNION SELECT * FROM bla&#39;</span>
+</span><span id="L-5726"><a href="#L-5726"><span class="linenos">5726</span></a>
+</span><span id="L-5727"><a href="#L-5727"><span class="linenos">5727</span></a><span class="sd"> Args:</span>
+</span><span id="L-5728"><a href="#L-5728"><span class="linenos">5728</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
+</span><span id="L-5729"><a href="#L-5729"><span class="linenos">5729</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-5730"><a href="#L-5730"><span class="linenos">5730</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
+</span><span id="L-5731"><a href="#L-5731"><span class="linenos">5731</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-5732"><a href="#L-5732"><span class="linenos">5732</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
+</span><span id="L-5733"><a href="#L-5733"><span class="linenos">5733</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-5734"><a href="#L-5734"><span class="linenos">5734</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
+</span><span id="L-5735"><a href="#L-5735"><span class="linenos">5735</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-5736"><a href="#L-5736"><span class="linenos">5736</span></a>
+</span><span id="L-5737"><a href="#L-5737"><span class="linenos">5737</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5738"><a href="#L-5738"><span class="linenos">5738</span></a><span class="sd"> The new Union instance.</span>
+</span><span id="L-5739"><a href="#L-5739"><span class="linenos">5739</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5740"><a href="#L-5740"><span class="linenos">5740</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-5741"><a href="#L-5741"><span class="linenos">5741</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-5742"><a href="#L-5742"><span class="linenos">5742</span></a>
+</span><span id="L-5743"><a href="#L-5743"><span class="linenos">5743</span></a> <span class="k">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-5744"><a href="#L-5744"><span class="linenos">5744</span></a>
+</span><span id="L-5745"><a href="#L-5745"><span class="linenos">5745</span></a>
+</span><span id="L-5746"><a href="#L-5746"><span class="linenos">5746</span></a><span class="k">def</span> <span class="nf">intersect</span><span class="p">(</span>
+</span><span id="L-5747"><a href="#L-5747"><span class="linenos">5747</span></a> <span class="n">left</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-5748"><a href="#L-5748"><span class="linenos">5748</span></a> <span class="n">right</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-5749"><a href="#L-5749"><span class="linenos">5749</span></a> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-5750"><a href="#L-5750"><span class="linenos">5750</span></a> <span class="n">dialect</span><span 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-5751"><a href="#L-5751"><span class="linenos">5751</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-5752"><a href="#L-5752"><span class="linenos">5752</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-5753"><a href="#L-5753"><span class="linenos">5753</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Intersect</span><span class="p">:</span>
+</span><span id="L-5754"><a href="#L-5754"><span class="linenos">5754</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5755"><a href="#L-5755"><span class="linenos">5755</span></a><span class="sd"> Initializes a syntax tree from one INTERSECT expression.</span>
+</span><span id="L-5756"><a href="#L-5756"><span class="linenos">5756</span></a>
+</span><span id="L-5757"><a href="#L-5757"><span class="linenos">5757</span></a><span class="sd"> Example:</span>
+</span><span id="L-5758"><a href="#L-5758"><span class="linenos">5758</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-5759"><a href="#L-5759"><span class="linenos">5759</span></a><span class="sd"> &#39;SELECT * FROM foo INTERSECT SELECT * FROM bla&#39;</span>
+</span><span id="L-5760"><a href="#L-5760"><span class="linenos">5760</span></a>
+</span><span id="L-5761"><a href="#L-5761"><span class="linenos">5761</span></a><span class="sd"> Args:</span>
+</span><span id="L-5762"><a href="#L-5762"><span class="linenos">5762</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
+</span><span id="L-5763"><a href="#L-5763"><span class="linenos">5763</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-5764"><a href="#L-5764"><span class="linenos">5764</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
+</span><span id="L-5765"><a href="#L-5765"><span class="linenos">5765</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-5766"><a href="#L-5766"><span class="linenos">5766</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
+</span><span id="L-5767"><a href="#L-5767"><span class="linenos">5767</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-5768"><a href="#L-5768"><span class="linenos">5768</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
+</span><span id="L-5769"><a href="#L-5769"><span class="linenos">5769</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-5770"><a href="#L-5770"><span class="linenos">5770</span></a>
+</span><span id="L-5771"><a href="#L-5771"><span class="linenos">5771</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5772"><a href="#L-5772"><span class="linenos">5772</span></a><span class="sd"> The new Intersect instance.</span>
+</span><span id="L-5773"><a href="#L-5773"><span class="linenos">5773</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5774"><a href="#L-5774"><span class="linenos">5774</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-5775"><a href="#L-5775"><span class="linenos">5775</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-5776"><a href="#L-5776"><span class="linenos">5776</span></a>
+</span><span id="L-5777"><a href="#L-5777"><span class="linenos">5777</span></a> <span class="k">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-5778"><a href="#L-5778"><span class="linenos">5778</span></a>
</span><span id="L-5779"><a href="#L-5779"><span class="linenos">5779</span></a>
-</span><span id="L-5780"><a href="#L-5780"><span class="linenos">5780</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5781"><a href="#L-5781"><span class="linenos">5781</span></a><span class="sd"> Delete: the syntax tree for the DELETE statement.</span>
-</span><span id="L-5782"><a href="#L-5782"><span class="linenos">5782</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5783"><a href="#L-5783"><span class="linenos">5783</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-5784"><a href="#L-5784"><span class="linenos">5784</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
-</span><span id="L-5785"><a href="#L-5785"><span class="linenos">5785</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-5786"><a href="#L-5786"><span class="linenos">5786</span></a> <span class="k">if</span> <span class="n">returning</span><span class="p">:</span>
-</span><span id="L-5787"><a href="#L-5787"><span class="linenos">5787</span></a> <span class="n">delete_expr</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span>
-</span><span id="L-5788"><a href="#L-5788"><span class="linenos">5788</span></a> <span class="n">Delete</span><span class="p">,</span> <span class="n">delete_expr</span><span class="o">.</span><span class="n">returning</span><span class="p">(</span><span class="n">returning</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-5789"><a href="#L-5789"><span class="linenos">5789</span></a> <span class="p">)</span>
-</span><span id="L-5790"><a href="#L-5790"><span class="linenos">5790</span></a> <span class="k">return</span> <span class="n">delete_expr</span>
-</span><span id="L-5791"><a href="#L-5791"><span class="linenos">5791</span></a>
-</span><span id="L-5792"><a href="#L-5792"><span class="linenos">5792</span></a>
-</span><span id="L-5793"><a href="#L-5793"><span class="linenos">5793</span></a><span class="k">def</span> <span class="nf">insert</span><span class="p">(</span>
-</span><span id="L-5794"><a href="#L-5794"><span class="linenos">5794</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-5795"><a href="#L-5795"><span class="linenos">5795</span></a> <span class="n">into</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-5796"><a href="#L-5796"><span class="linenos">5796</span></a> <span class="n">columns</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5797"><a href="#L-5797"><span class="linenos">5797</span></a> <span class="n">overwrite</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5798"><a href="#L-5798"><span class="linenos">5798</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-5799"><a href="#L-5799"><span class="linenos">5799</span></a> <span class="n">dialect</span><span 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-5800"><a href="#L-5800"><span class="linenos">5800</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-5801"><a href="#L-5801"><span class="linenos">5801</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-5802"><a href="#L-5802"><span class="linenos">5802</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Insert</span><span class="p">:</span>
-</span><span id="L-5803"><a href="#L-5803"><span class="linenos">5803</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5804"><a href="#L-5804"><span class="linenos">5804</span></a><span class="sd"> Builds an INSERT statement.</span>
-</span><span id="L-5805"><a href="#L-5805"><span class="linenos">5805</span></a>
-</span><span id="L-5806"><a href="#L-5806"><span class="linenos">5806</span></a><span class="sd"> Example:</span>
-</span><span id="L-5807"><a href="#L-5807"><span class="linenos">5807</span></a><span class="sd"> &gt;&gt;&gt; insert(&quot;VALUES (1, 2, 3)&quot;, &quot;tbl&quot;).sql()</span>
-</span><span id="L-5808"><a href="#L-5808"><span class="linenos">5808</span></a><span class="sd"> &#39;INSERT INTO tbl VALUES (1, 2, 3)&#39;</span>
-</span><span id="L-5809"><a href="#L-5809"><span class="linenos">5809</span></a>
-</span><span id="L-5810"><a href="#L-5810"><span class="linenos">5810</span></a><span class="sd"> Args:</span>
-</span><span id="L-5811"><a href="#L-5811"><span class="linenos">5811</span></a><span class="sd"> expression: the sql string or expression of the INSERT statement</span>
-</span><span id="L-5812"><a href="#L-5812"><span class="linenos">5812</span></a><span class="sd"> into: the tbl to insert data to.</span>
-</span><span id="L-5813"><a href="#L-5813"><span class="linenos">5813</span></a><span class="sd"> columns: optionally the table&#39;s column names.</span>
-</span><span id="L-5814"><a href="#L-5814"><span class="linenos">5814</span></a><span class="sd"> overwrite: whether to INSERT OVERWRITE or not.</span>
-</span><span id="L-5815"><a href="#L-5815"><span class="linenos">5815</span></a><span class="sd"> returning: sql conditional parsed into a RETURNING statement</span>
-</span><span id="L-5816"><a href="#L-5816"><span class="linenos">5816</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="L-5817"><a href="#L-5817"><span class="linenos">5817</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
-</span><span id="L-5818"><a href="#L-5818"><span class="linenos">5818</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="L-5819"><a href="#L-5819"><span class="linenos">5819</span></a>
-</span><span id="L-5820"><a href="#L-5820"><span class="linenos">5820</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5821"><a href="#L-5821"><span class="linenos">5821</span></a><span class="sd"> Insert: the syntax tree for the INSERT statement.</span>
-</span><span id="L-5822"><a href="#L-5822"><span class="linenos">5822</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5823"><a href="#L-5823"><span class="linenos">5823</span></a> <span class="n">expr</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-5824"><a href="#L-5824"><span class="linenos">5824</span></a> <span class="n">this</span><span class="p">:</span> <span class="n">Table</span> <span class="o">|</span> <span class="n">Schema</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">into</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-5825"><a href="#L-5825"><span class="linenos">5825</span></a>
-</span><span id="L-5826"><a href="#L-5826"><span class="linenos">5826</span></a> <span class="k">if</span> <span class="n">columns</span><span class="p">:</span>
-</span><span id="L-5827"><a href="#L-5827"><span class="linenos">5827</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="L-5828"><a href="#L-5828"><span class="linenos">5828</span></a> <span class="o">*</span><span class="n">columns</span><span class="p">,</span>
-</span><span id="L-5829"><a href="#L-5829"><span class="linenos">5829</span></a> <span class="n">instance</span><span class="o">=</span><span class="n">Schema</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">),</span>
-</span><span id="L-5830"><a href="#L-5830"><span class="linenos">5830</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-5831"><a href="#L-5831"><span class="linenos">5831</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Identifier</span><span class="p">,</span>
-</span><span id="L-5832"><a href="#L-5832"><span class="linenos">5832</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
-</span><span id="L-5833"><a href="#L-5833"><span class="linenos">5833</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-5834"><a href="#L-5834"><span class="linenos">5834</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-5835"><a href="#L-5835"><span class="linenos">5835</span></a> <span class="p">)</span>
-</span><span id="L-5836"><a href="#L-5836"><span class="linenos">5836</span></a>
-</span><span id="L-5837"><a href="#L-5837"><span class="linenos">5837</span></a> <span class="n">insert</span> <span class="o">=</span> <span class="n">Insert</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expr</span><span class="p">,</span> <span class="n">overwrite</span><span class="o">=</span><span class="n">overwrite</span><span class="p">)</span>
-</span><span id="L-5838"><a href="#L-5838"><span class="linenos">5838</span></a>
-</span><span id="L-5839"><a href="#L-5839"><span class="linenos">5839</span></a> <span class="k">if</span> <span class="n">returning</span><span class="p">:</span>
-</span><span id="L-5840"><a href="#L-5840"><span class="linenos">5840</span></a> <span class="n">insert</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Insert</span><span class="p">,</span> <span class="n">insert</span><span class="o">.</span><span class="n">returning</span><span class="p">(</span><span class="n">returning</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
-</span><span id="L-5841"><a href="#L-5841"><span class="linenos">5841</span></a>
-</span><span id="L-5842"><a href="#L-5842"><span class="linenos">5842</span></a> <span class="k">return</span> <span class="n">insert</span>
+</span><span id="L-5780"><a href="#L-5780"><span class="linenos">5780</span></a><span class="k">def</span> <span class="nf">except_</span><span class="p">(</span>
+</span><span id="L-5781"><a href="#L-5781"><span class="linenos">5781</span></a> <span class="n">left</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-5782"><a href="#L-5782"><span class="linenos">5782</span></a> <span class="n">right</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-5783"><a href="#L-5783"><span class="linenos">5783</span></a> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-5784"><a href="#L-5784"><span class="linenos">5784</span></a> <span class="n">dialect</span><span 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-5785"><a href="#L-5785"><span class="linenos">5785</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-5786"><a href="#L-5786"><span class="linenos">5786</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-5787"><a href="#L-5787"><span class="linenos">5787</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Except</span><span class="p">:</span>
+</span><span id="L-5788"><a href="#L-5788"><span class="linenos">5788</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5789"><a href="#L-5789"><span class="linenos">5789</span></a><span class="sd"> Initializes a syntax tree from one EXCEPT expression.</span>
+</span><span id="L-5790"><a href="#L-5790"><span class="linenos">5790</span></a>
+</span><span id="L-5791"><a href="#L-5791"><span class="linenos">5791</span></a><span class="sd"> Example:</span>
+</span><span id="L-5792"><a href="#L-5792"><span class="linenos">5792</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-5793"><a href="#L-5793"><span class="linenos">5793</span></a><span class="sd"> &#39;SELECT * FROM foo EXCEPT SELECT * FROM bla&#39;</span>
+</span><span id="L-5794"><a href="#L-5794"><span class="linenos">5794</span></a>
+</span><span id="L-5795"><a href="#L-5795"><span class="linenos">5795</span></a><span class="sd"> Args:</span>
+</span><span id="L-5796"><a href="#L-5796"><span class="linenos">5796</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
+</span><span id="L-5797"><a href="#L-5797"><span class="linenos">5797</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-5798"><a href="#L-5798"><span class="linenos">5798</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
+</span><span id="L-5799"><a href="#L-5799"><span class="linenos">5799</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-5800"><a href="#L-5800"><span class="linenos">5800</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
+</span><span id="L-5801"><a href="#L-5801"><span class="linenos">5801</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-5802"><a href="#L-5802"><span class="linenos">5802</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
+</span><span id="L-5803"><a href="#L-5803"><span class="linenos">5803</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-5804"><a href="#L-5804"><span class="linenos">5804</span></a>
+</span><span id="L-5805"><a href="#L-5805"><span class="linenos">5805</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5806"><a href="#L-5806"><span class="linenos">5806</span></a><span class="sd"> The new Except instance.</span>
+</span><span id="L-5807"><a href="#L-5807"><span class="linenos">5807</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5808"><a href="#L-5808"><span class="linenos">5808</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-5809"><a href="#L-5809"><span class="linenos">5809</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-5810"><a href="#L-5810"><span class="linenos">5810</span></a>
+</span><span id="L-5811"><a href="#L-5811"><span class="linenos">5811</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-5812"><a href="#L-5812"><span class="linenos">5812</span></a>
+</span><span id="L-5813"><a href="#L-5813"><span class="linenos">5813</span></a>
+</span><span id="L-5814"><a href="#L-5814"><span class="linenos">5814</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-5815"><a href="#L-5815"><span class="linenos">5815</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5816"><a href="#L-5816"><span class="linenos">5816</span></a><span class="sd"> Initializes a syntax tree from one or multiple SELECT expressions.</span>
+</span><span id="L-5817"><a href="#L-5817"><span class="linenos">5817</span></a>
+</span><span id="L-5818"><a href="#L-5818"><span class="linenos">5818</span></a><span class="sd"> Example:</span>
+</span><span id="L-5819"><a href="#L-5819"><span class="linenos">5819</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-5820"><a href="#L-5820"><span class="linenos">5820</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
+</span><span id="L-5821"><a href="#L-5821"><span class="linenos">5821</span></a>
+</span><span id="L-5822"><a href="#L-5822"><span class="linenos">5822</span></a><span class="sd"> Args:</span>
+</span><span id="L-5823"><a href="#L-5823"><span class="linenos">5823</span></a><span class="sd"> *expressions: the SQL code string to parse as the expressions of a</span>
+</span><span id="L-5824"><a href="#L-5824"><span class="linenos">5824</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-5825"><a href="#L-5825"><span class="linenos">5825</span></a><span class="sd"> dialect: the dialect used to parse the input expressions (in the case that an</span>
+</span><span id="L-5826"><a href="#L-5826"><span class="linenos">5826</span></a><span class="sd"> input expression is a SQL string).</span>
+</span><span id="L-5827"><a href="#L-5827"><span class="linenos">5827</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
+</span><span id="L-5828"><a href="#L-5828"><span class="linenos">5828</span></a><span class="sd"> that an input expression is a SQL string).</span>
+</span><span id="L-5829"><a href="#L-5829"><span class="linenos">5829</span></a>
+</span><span id="L-5830"><a href="#L-5830"><span class="linenos">5830</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5831"><a href="#L-5831"><span class="linenos">5831</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
+</span><span id="L-5832"><a href="#L-5832"><span class="linenos">5832</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5833"><a href="#L-5833"><span class="linenos">5833</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-5834"><a href="#L-5834"><span class="linenos">5834</span></a>
+</span><span id="L-5835"><a href="#L-5835"><span class="linenos">5835</span></a>
+</span><span id="L-5836"><a href="#L-5836"><span class="linenos">5836</span></a><span class="k">def</span> <span class="nf">from_</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-5837"><a href="#L-5837"><span class="linenos">5837</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5838"><a href="#L-5838"><span class="linenos">5838</span></a><span class="sd"> Initializes a syntax tree from a FROM expression.</span>
+</span><span id="L-5839"><a href="#L-5839"><span class="linenos">5839</span></a>
+</span><span id="L-5840"><a href="#L-5840"><span class="linenos">5840</span></a><span class="sd"> Example:</span>
+</span><span id="L-5841"><a href="#L-5841"><span class="linenos">5841</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-5842"><a href="#L-5842"><span class="linenos">5842</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
</span><span id="L-5843"><a href="#L-5843"><span class="linenos">5843</span></a>
-</span><span id="L-5844"><a href="#L-5844"><span class="linenos">5844</span></a>
-</span><span id="L-5845"><a href="#L-5845"><span class="linenos">5845</span></a><span class="k">def</span> <span class="nf">condition</span><span class="p">(</span>
-</span><span id="L-5846"><a href="#L-5846"><span class="linenos">5846</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="L-5847"><a href="#L-5847"><span class="linenos">5847</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
-</span><span id="L-5848"><a href="#L-5848"><span class="linenos">5848</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5849"><a href="#L-5849"><span class="linenos">5849</span></a><span class="sd"> Initialize a logical condition expression.</span>
-</span><span id="L-5850"><a href="#L-5850"><span class="linenos">5850</span></a>
-</span><span id="L-5851"><a href="#L-5851"><span class="linenos">5851</span></a><span class="sd"> Example:</span>
-</span><span id="L-5852"><a href="#L-5852"><span class="linenos">5852</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).sql()</span>
-</span><span id="L-5853"><a href="#L-5853"><span class="linenos">5853</span></a><span class="sd"> &#39;x = 1&#39;</span>
-</span><span id="L-5854"><a href="#L-5854"><span class="linenos">5854</span></a>
-</span><span id="L-5855"><a href="#L-5855"><span class="linenos">5855</span></a><span class="sd"> This is helpful for composing larger logical syntax trees:</span>
-</span><span id="L-5856"><a href="#L-5856"><span class="linenos">5856</span></a><span class="sd"> &gt;&gt;&gt; where = condition(&quot;x=1&quot;)</span>
-</span><span id="L-5857"><a href="#L-5857"><span class="linenos">5857</span></a><span class="sd"> &gt;&gt;&gt; where = where.and_(&quot;y=1&quot;)</span>
-</span><span id="L-5858"><a href="#L-5858"><span class="linenos">5858</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;*&quot;).where(where).sql()</span>
-</span><span id="L-5859"><a href="#L-5859"><span class="linenos">5859</span></a><span class="sd"> &#39;SELECT * FROM tbl WHERE x = 1 AND y = 1&#39;</span>
-</span><span id="L-5860"><a href="#L-5860"><span class="linenos">5860</span></a>
-</span><span id="L-5861"><a href="#L-5861"><span class="linenos">5861</span></a><span class="sd"> Args:</span>
-</span><span id="L-5862"><a href="#L-5862"><span class="linenos">5862</span></a><span class="sd"> *expression: the SQL code string to parse.</span>
-</span><span id="L-5863"><a href="#L-5863"><span class="linenos">5863</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-5864"><a href="#L-5864"><span class="linenos">5864</span></a><span class="sd"> dialect: the dialect used to parse the input expression (in the case that the</span>
-</span><span id="L-5865"><a href="#L-5865"><span class="linenos">5865</span></a><span class="sd"> input expression is a SQL string).</span>
-</span><span id="L-5866"><a href="#L-5866"><span class="linenos">5866</span></a><span class="sd"> copy: Whether or not to copy `expression` (only applies to expressions).</span>
-</span><span id="L-5867"><a href="#L-5867"><span class="linenos">5867</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
-</span><span id="L-5868"><a href="#L-5868"><span class="linenos">5868</span></a><span class="sd"> that the input expression is a SQL string).</span>
-</span><span id="L-5869"><a href="#L-5869"><span class="linenos">5869</span></a>
-</span><span id="L-5870"><a href="#L-5870"><span class="linenos">5870</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5871"><a href="#L-5871"><span class="linenos">5871</span></a><span class="sd"> The new Condition instance</span>
-</span><span id="L-5872"><a href="#L-5872"><span class="linenos">5872</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5873"><a href="#L-5873"><span class="linenos">5873</span></a> <span class="k">return</span> <span class="n">maybe_parse</span><span class="p">(</span>
-</span><span id="L-5874"><a href="#L-5874"><span class="linenos">5874</span></a> <span class="n">expression</span><span class="p">,</span>
-</span><span id="L-5875"><a href="#L-5875"><span class="linenos">5875</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Condition</span><span class="p">,</span>
-</span><span id="L-5876"><a href="#L-5876"><span class="linenos">5876</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-5877"><a href="#L-5877"><span class="linenos">5877</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-5878"><a href="#L-5878"><span class="linenos">5878</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-5879"><a href="#L-5879"><span class="linenos">5879</span></a> <span class="p">)</span>
+</span><span id="L-5844"><a href="#L-5844"><span class="linenos">5844</span></a><span class="sd"> Args:</span>
+</span><span id="L-5845"><a href="#L-5845"><span class="linenos">5845</span></a><span class="sd"> *expression: the SQL code string to parse as the FROM expressions of a</span>
+</span><span id="L-5846"><a href="#L-5846"><span class="linenos">5846</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-5847"><a href="#L-5847"><span class="linenos">5847</span></a><span class="sd"> dialect: the dialect used to parse the input expression (in the case that the</span>
+</span><span id="L-5848"><a href="#L-5848"><span class="linenos">5848</span></a><span class="sd"> input expression is a SQL string).</span>
+</span><span id="L-5849"><a href="#L-5849"><span class="linenos">5849</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
+</span><span id="L-5850"><a href="#L-5850"><span class="linenos">5850</span></a><span class="sd"> that the input expression is a SQL string).</span>
+</span><span id="L-5851"><a href="#L-5851"><span class="linenos">5851</span></a>
+</span><span id="L-5852"><a href="#L-5852"><span class="linenos">5852</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5853"><a href="#L-5853"><span class="linenos">5853</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
+</span><span id="L-5854"><a href="#L-5854"><span class="linenos">5854</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5855"><a href="#L-5855"><span class="linenos">5855</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-5856"><a href="#L-5856"><span class="linenos">5856</span></a>
+</span><span id="L-5857"><a href="#L-5857"><span class="linenos">5857</span></a>
+</span><span id="L-5858"><a href="#L-5858"><span class="linenos">5858</span></a><span class="k">def</span> <span class="nf">update</span><span class="p">(</span>
+</span><span id="L-5859"><a href="#L-5859"><span class="linenos">5859</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-5860"><a href="#L-5860"><span class="linenos">5860</span></a> <span class="n">properties</span><span class="p">:</span> <span class="nb">dict</span><span class="p">,</span>
+</span><span id="L-5861"><a href="#L-5861"><span class="linenos">5861</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-5862"><a href="#L-5862"><span class="linenos">5862</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-5863"><a href="#L-5863"><span class="linenos">5863</span></a> <span class="n">dialect</span><span 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-5864"><a href="#L-5864"><span class="linenos">5864</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-5865"><a href="#L-5865"><span class="linenos">5865</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Update</span><span class="p">:</span>
+</span><span id="L-5866"><a href="#L-5866"><span class="linenos">5866</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5867"><a href="#L-5867"><span class="linenos">5867</span></a><span class="sd"> Creates an update statement.</span>
+</span><span id="L-5868"><a href="#L-5868"><span class="linenos">5868</span></a>
+</span><span id="L-5869"><a href="#L-5869"><span class="linenos">5869</span></a><span class="sd"> Example:</span>
+</span><span id="L-5870"><a href="#L-5870"><span class="linenos">5870</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-5871"><a href="#L-5871"><span class="linenos">5871</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-5872"><a href="#L-5872"><span class="linenos">5872</span></a>
+</span><span id="L-5873"><a href="#L-5873"><span class="linenos">5873</span></a><span class="sd"> Args:</span>
+</span><span id="L-5874"><a href="#L-5874"><span class="linenos">5874</span></a><span class="sd"> *properties: dictionary of properties to set which are</span>
+</span><span id="L-5875"><a href="#L-5875"><span class="linenos">5875</span></a><span class="sd"> auto converted to sql objects eg None -&gt; NULL</span>
+</span><span id="L-5876"><a href="#L-5876"><span class="linenos">5876</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span>
+</span><span id="L-5877"><a href="#L-5877"><span class="linenos">5877</span></a><span class="sd"> from_: sql statement parsed into a FROM statement</span>
+</span><span id="L-5878"><a href="#L-5878"><span class="linenos">5878</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="L-5879"><a href="#L-5879"><span class="linenos">5879</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
</span><span id="L-5880"><a href="#L-5880"><span class="linenos">5880</span></a>
-</span><span id="L-5881"><a href="#L-5881"><span class="linenos">5881</span></a>
-</span><span id="L-5882"><a href="#L-5882"><span class="linenos">5882</span></a><span class="k">def</span> <span class="nf">and_</span><span class="p">(</span>
-</span><span id="L-5883"><a href="#L-5883"><span class="linenos">5883</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="L-5884"><a href="#L-5884"><span class="linenos">5884</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
-</span><span id="L-5885"><a href="#L-5885"><span class="linenos">5885</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5886"><a href="#L-5886"><span class="linenos">5886</span></a><span class="sd"> Combine multiple conditions with an AND logical operator.</span>
-</span><span id="L-5887"><a href="#L-5887"><span class="linenos">5887</span></a>
-</span><span id="L-5888"><a href="#L-5888"><span class="linenos">5888</span></a><span class="sd"> Example:</span>
-</span><span id="L-5889"><a href="#L-5889"><span class="linenos">5889</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-5890"><a href="#L-5890"><span class="linenos">5890</span></a><span class="sd"> &#39;x = 1 AND (y = 1 AND z = 1)&#39;</span>
-</span><span id="L-5891"><a href="#L-5891"><span class="linenos">5891</span></a>
-</span><span id="L-5892"><a href="#L-5892"><span class="linenos">5892</span></a><span class="sd"> Args:</span>
-</span><span id="L-5893"><a href="#L-5893"><span class="linenos">5893</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="L-5894"><a href="#L-5894"><span class="linenos">5894</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-5895"><a href="#L-5895"><span class="linenos">5895</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-5896"><a href="#L-5896"><span class="linenos">5896</span></a><span class="sd"> copy: whether or not to copy `expressions` (only applies to Expressions).</span>
-</span><span id="L-5897"><a href="#L-5897"><span class="linenos">5897</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="L-5898"><a href="#L-5898"><span class="linenos">5898</span></a>
-</span><span id="L-5899"><a href="#L-5899"><span class="linenos">5899</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5900"><a href="#L-5900"><span class="linenos">5900</span></a><span class="sd"> And: the new condition</span>
-</span><span id="L-5901"><a href="#L-5901"><span class="linenos">5901</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5902"><a href="#L-5902"><span class="linenos">5902</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Condition</span><span class="p">,</span> <span class="n">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">And</span><span class="p">,</span> <span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
-</span><span id="L-5903"><a href="#L-5903"><span class="linenos">5903</span></a>
-</span><span id="L-5904"><a href="#L-5904"><span class="linenos">5904</span></a>
-</span><span id="L-5905"><a href="#L-5905"><span class="linenos">5905</span></a><span class="k">def</span> <span class="nf">or_</span><span class="p">(</span>
-</span><span id="L-5906"><a href="#L-5906"><span class="linenos">5906</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="L-5907"><a href="#L-5907"><span class="linenos">5907</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
-</span><span id="L-5908"><a href="#L-5908"><span class="linenos">5908</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5909"><a href="#L-5909"><span class="linenos">5909</span></a><span class="sd"> Combine multiple conditions with an OR logical operator.</span>
-</span><span id="L-5910"><a href="#L-5910"><span class="linenos">5910</span></a>
-</span><span id="L-5911"><a href="#L-5911"><span class="linenos">5911</span></a><span class="sd"> Example:</span>
-</span><span id="L-5912"><a href="#L-5912"><span class="linenos">5912</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-5913"><a href="#L-5913"><span class="linenos">5913</span></a><span class="sd"> &#39;x = 1 OR (y = 1 OR z = 1)&#39;</span>
-</span><span id="L-5914"><a href="#L-5914"><span class="linenos">5914</span></a>
-</span><span id="L-5915"><a href="#L-5915"><span class="linenos">5915</span></a><span class="sd"> Args:</span>
-</span><span id="L-5916"><a href="#L-5916"><span class="linenos">5916</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="L-5917"><a href="#L-5917"><span class="linenos">5917</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-5918"><a href="#L-5918"><span class="linenos">5918</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-5919"><a href="#L-5919"><span class="linenos">5919</span></a><span class="sd"> copy: whether or not to copy `expressions` (only applies to Expressions).</span>
-</span><span id="L-5920"><a href="#L-5920"><span class="linenos">5920</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="L-5921"><a href="#L-5921"><span class="linenos">5921</span></a>
-</span><span id="L-5922"><a href="#L-5922"><span class="linenos">5922</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5923"><a href="#L-5923"><span class="linenos">5923</span></a><span class="sd"> Or: the new condition</span>
-</span><span id="L-5924"><a href="#L-5924"><span class="linenos">5924</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5925"><a href="#L-5925"><span class="linenos">5925</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Condition</span><span class="p">,</span> <span class="n">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">Or</span><span class="p">,</span> <span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
+</span><span id="L-5881"><a href="#L-5881"><span class="linenos">5881</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5882"><a href="#L-5882"><span class="linenos">5882</span></a><span class="sd"> Update: the syntax tree for the UPDATE statement.</span>
+</span><span id="L-5883"><a href="#L-5883"><span class="linenos">5883</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5884"><a href="#L-5884"><span class="linenos">5884</span></a> <span class="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-5885"><a href="#L-5885"><span class="linenos">5885</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-5886"><a href="#L-5886"><span class="linenos">5886</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
+</span><span id="L-5887"><a href="#L-5887"><span class="linenos">5887</span></a> <span class="p">[</span>
+</span><span id="L-5888"><a href="#L-5888"><span class="linenos">5888</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-5889"><a href="#L-5889"><span class="linenos">5889</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-5890"><a href="#L-5890"><span class="linenos">5890</span></a> <span class="p">],</span>
+</span><span id="L-5891"><a href="#L-5891"><span class="linenos">5891</span></a> <span class="p">)</span>
+</span><span id="L-5892"><a href="#L-5892"><span class="linenos">5892</span></a> <span class="k">if</span> <span class="n">from_</span><span class="p">:</span>
+</span><span id="L-5893"><a href="#L-5893"><span class="linenos">5893</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-5894"><a href="#L-5894"><span class="linenos">5894</span></a> <span class="s2">&quot;from&quot;</span><span class="p">,</span>
+</span><span id="L-5895"><a href="#L-5895"><span class="linenos">5895</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-5896"><a href="#L-5896"><span class="linenos">5896</span></a> <span class="p">)</span>
+</span><span id="L-5897"><a href="#L-5897"><span class="linenos">5897</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-5898"><a href="#L-5898"><span class="linenos">5898</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-5899"><a href="#L-5899"><span class="linenos">5899</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
+</span><span id="L-5900"><a href="#L-5900"><span class="linenos">5900</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-5901"><a href="#L-5901"><span class="linenos">5901</span></a> <span class="s2">&quot;where&quot;</span><span class="p">,</span>
+</span><span id="L-5902"><a href="#L-5902"><span class="linenos">5902</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-5903"><a href="#L-5903"><span class="linenos">5903</span></a> <span class="p">)</span>
+</span><span id="L-5904"><a href="#L-5904"><span class="linenos">5904</span></a> <span class="k">return</span> <span class="n">update_expr</span>
+</span><span id="L-5905"><a href="#L-5905"><span class="linenos">5905</span></a>
+</span><span id="L-5906"><a href="#L-5906"><span class="linenos">5906</span></a>
+</span><span id="L-5907"><a href="#L-5907"><span class="linenos">5907</span></a><span class="k">def</span> <span class="nf">delete</span><span class="p">(</span>
+</span><span id="L-5908"><a href="#L-5908"><span class="linenos">5908</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-5909"><a href="#L-5909"><span class="linenos">5909</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-5910"><a href="#L-5910"><span class="linenos">5910</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-5911"><a href="#L-5911"><span class="linenos">5911</span></a> <span class="n">dialect</span><span 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-5912"><a href="#L-5912"><span class="linenos">5912</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-5913"><a href="#L-5913"><span class="linenos">5913</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
+</span><span id="L-5914"><a href="#L-5914"><span class="linenos">5914</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5915"><a href="#L-5915"><span class="linenos">5915</span></a><span class="sd"> Builds a delete statement.</span>
+</span><span id="L-5916"><a href="#L-5916"><span class="linenos">5916</span></a>
+</span><span id="L-5917"><a href="#L-5917"><span class="linenos">5917</span></a><span class="sd"> Example:</span>
+</span><span id="L-5918"><a href="#L-5918"><span class="linenos">5918</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-5919"><a href="#L-5919"><span class="linenos">5919</span></a><span class="sd"> &#39;DELETE FROM my_table WHERE id &gt; 1&#39;</span>
+</span><span id="L-5920"><a href="#L-5920"><span class="linenos">5920</span></a>
+</span><span id="L-5921"><a href="#L-5921"><span class="linenos">5921</span></a><span class="sd"> Args:</span>
+</span><span id="L-5922"><a href="#L-5922"><span class="linenos">5922</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span>
+</span><span id="L-5923"><a href="#L-5923"><span class="linenos">5923</span></a><span class="sd"> returning: sql conditional parsed into a RETURNING statement</span>
+</span><span id="L-5924"><a href="#L-5924"><span class="linenos">5924</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="L-5925"><a href="#L-5925"><span class="linenos">5925</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
</span><span id="L-5926"><a href="#L-5926"><span class="linenos">5926</span></a>
-</span><span id="L-5927"><a href="#L-5927"><span class="linenos">5927</span></a>
-</span><span id="L-5928"><a href="#L-5928"><span class="linenos">5928</span></a><span class="k">def</span> <span class="nf">not_</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Not</span><span class="p">:</span>
-</span><span id="L-5929"><a href="#L-5929"><span class="linenos">5929</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5930"><a href="#L-5930"><span class="linenos">5930</span></a><span class="sd"> Wrap a condition with a NOT operator.</span>
-</span><span id="L-5931"><a href="#L-5931"><span class="linenos">5931</span></a>
-</span><span id="L-5932"><a href="#L-5932"><span class="linenos">5932</span></a><span class="sd"> Example:</span>
-</span><span id="L-5933"><a href="#L-5933"><span class="linenos">5933</span></a><span class="sd"> &gt;&gt;&gt; not_(&quot;this_suit=&#39;black&#39;&quot;).sql()</span>
-</span><span id="L-5934"><a href="#L-5934"><span class="linenos">5934</span></a><span class="sd"> &quot;NOT this_suit = &#39;black&#39;&quot;</span>
-</span><span id="L-5935"><a href="#L-5935"><span class="linenos">5935</span></a>
-</span><span id="L-5936"><a href="#L-5936"><span class="linenos">5936</span></a><span class="sd"> Args:</span>
-</span><span id="L-5937"><a href="#L-5937"><span class="linenos">5937</span></a><span class="sd"> expression: the SQL code string to parse.</span>
-</span><span id="L-5938"><a href="#L-5938"><span class="linenos">5938</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-5939"><a href="#L-5939"><span class="linenos">5939</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-5940"><a href="#L-5940"><span class="linenos">5940</span></a><span class="sd"> copy: whether to copy the expression or not.</span>
-</span><span id="L-5941"><a href="#L-5941"><span class="linenos">5941</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="L-5942"><a href="#L-5942"><span class="linenos">5942</span></a>
-</span><span id="L-5943"><a href="#L-5943"><span class="linenos">5943</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5944"><a href="#L-5944"><span class="linenos">5944</span></a><span class="sd"> The new condition.</span>
-</span><span id="L-5945"><a href="#L-5945"><span class="linenos">5945</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5946"><a href="#L-5946"><span class="linenos">5946</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">condition</span><span class="p">(</span>
-</span><span id="L-5947"><a href="#L-5947"><span class="linenos">5947</span></a> <span class="n">expression</span><span class="p">,</span>
-</span><span id="L-5948"><a href="#L-5948"><span class="linenos">5948</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-5949"><a href="#L-5949"><span class="linenos">5949</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-5950"><a href="#L-5950"><span class="linenos">5950</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-5951"><a href="#L-5951"><span class="linenos">5951</span></a> <span class="p">)</span>
-</span><span id="L-5952"><a href="#L-5952"><span class="linenos">5952</span></a> <span class="k">return</span> <span class="n">Not</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">_wrap</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">Connector</span><span class="p">))</span>
-</span><span id="L-5953"><a href="#L-5953"><span class="linenos">5953</span></a>
-</span><span id="L-5954"><a href="#L-5954"><span class="linenos">5954</span></a>
-</span><span id="L-5955"><a href="#L-5955"><span class="linenos">5955</span></a><span class="k">def</span> <span class="nf">paren</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Paren</span><span class="p">:</span>
-</span><span id="L-5956"><a href="#L-5956"><span class="linenos">5956</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5957"><a href="#L-5957"><span class="linenos">5957</span></a><span class="sd"> Wrap an expression in parentheses.</span>
-</span><span id="L-5958"><a href="#L-5958"><span class="linenos">5958</span></a>
-</span><span id="L-5959"><a href="#L-5959"><span class="linenos">5959</span></a><span class="sd"> Example:</span>
-</span><span id="L-5960"><a href="#L-5960"><span class="linenos">5960</span></a><span class="sd"> &gt;&gt;&gt; paren(&quot;5 + 3&quot;).sql()</span>
-</span><span id="L-5961"><a href="#L-5961"><span class="linenos">5961</span></a><span class="sd"> &#39;(5 + 3)&#39;</span>
-</span><span id="L-5962"><a href="#L-5962"><span class="linenos">5962</span></a>
-</span><span id="L-5963"><a href="#L-5963"><span class="linenos">5963</span></a><span class="sd"> Args:</span>
-</span><span id="L-5964"><a href="#L-5964"><span class="linenos">5964</span></a><span class="sd"> expression: the SQL code string to parse.</span>
-</span><span id="L-5965"><a href="#L-5965"><span class="linenos">5965</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-5966"><a href="#L-5966"><span class="linenos">5966</span></a><span class="sd"> copy: whether to copy the expression or not.</span>
-</span><span id="L-5967"><a href="#L-5967"><span class="linenos">5967</span></a>
-</span><span id="L-5968"><a href="#L-5968"><span class="linenos">5968</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5969"><a href="#L-5969"><span class="linenos">5969</span></a><span class="sd"> The wrapped expression.</span>
-</span><span id="L-5970"><a href="#L-5970"><span class="linenos">5970</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5971"><a href="#L-5971"><span class="linenos">5971</span></a> <span class="k">return</span> <span class="n">Paren</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">))</span>
+</span><span id="L-5927"><a href="#L-5927"><span class="linenos">5927</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5928"><a href="#L-5928"><span class="linenos">5928</span></a><span class="sd"> Delete: the syntax tree for the DELETE statement.</span>
+</span><span id="L-5929"><a href="#L-5929"><span class="linenos">5929</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5930"><a href="#L-5930"><span class="linenos">5930</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-5931"><a href="#L-5931"><span class="linenos">5931</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
+</span><span id="L-5932"><a href="#L-5932"><span class="linenos">5932</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-5933"><a href="#L-5933"><span class="linenos">5933</span></a> <span class="k">if</span> <span class="n">returning</span><span class="p">:</span>
+</span><span id="L-5934"><a href="#L-5934"><span class="linenos">5934</span></a> <span class="n">delete_expr</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span>
+</span><span id="L-5935"><a href="#L-5935"><span class="linenos">5935</span></a> <span class="n">Delete</span><span class="p">,</span> <span class="n">delete_expr</span><span class="o">.</span><span class="n">returning</span><span class="p">(</span><span class="n">returning</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-5936"><a href="#L-5936"><span class="linenos">5936</span></a> <span class="p">)</span>
+</span><span id="L-5937"><a href="#L-5937"><span class="linenos">5937</span></a> <span class="k">return</span> <span class="n">delete_expr</span>
+</span><span id="L-5938"><a href="#L-5938"><span class="linenos">5938</span></a>
+</span><span id="L-5939"><a href="#L-5939"><span class="linenos">5939</span></a>
+</span><span id="L-5940"><a href="#L-5940"><span class="linenos">5940</span></a><span class="k">def</span> <span class="nf">insert</span><span class="p">(</span>
+</span><span id="L-5941"><a href="#L-5941"><span class="linenos">5941</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-5942"><a href="#L-5942"><span class="linenos">5942</span></a> <span class="n">into</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-5943"><a href="#L-5943"><span class="linenos">5943</span></a> <span class="n">columns</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-5944"><a href="#L-5944"><span class="linenos">5944</span></a> <span class="n">overwrite</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-5945"><a href="#L-5945"><span class="linenos">5945</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-5946"><a href="#L-5946"><span class="linenos">5946</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-5947"><a href="#L-5947"><span class="linenos">5947</span></a> <span class="n">copy</span><span 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-5948"><a href="#L-5948"><span class="linenos">5948</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-5949"><a href="#L-5949"><span class="linenos">5949</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Insert</span><span class="p">:</span>
+</span><span id="L-5950"><a href="#L-5950"><span class="linenos">5950</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5951"><a href="#L-5951"><span class="linenos">5951</span></a><span class="sd"> Builds an INSERT statement.</span>
+</span><span id="L-5952"><a href="#L-5952"><span class="linenos">5952</span></a>
+</span><span id="L-5953"><a href="#L-5953"><span class="linenos">5953</span></a><span class="sd"> Example:</span>
+</span><span id="L-5954"><a href="#L-5954"><span class="linenos">5954</span></a><span class="sd"> &gt;&gt;&gt; insert(&quot;VALUES (1, 2, 3)&quot;, &quot;tbl&quot;).sql()</span>
+</span><span id="L-5955"><a href="#L-5955"><span class="linenos">5955</span></a><span class="sd"> &#39;INSERT INTO tbl VALUES (1, 2, 3)&#39;</span>
+</span><span id="L-5956"><a href="#L-5956"><span class="linenos">5956</span></a>
+</span><span id="L-5957"><a href="#L-5957"><span class="linenos">5957</span></a><span class="sd"> Args:</span>
+</span><span id="L-5958"><a href="#L-5958"><span class="linenos">5958</span></a><span class="sd"> expression: the sql string or expression of the INSERT statement</span>
+</span><span id="L-5959"><a href="#L-5959"><span class="linenos">5959</span></a><span class="sd"> into: the tbl to insert data to.</span>
+</span><span id="L-5960"><a href="#L-5960"><span class="linenos">5960</span></a><span class="sd"> columns: optionally the table&#39;s column names.</span>
+</span><span id="L-5961"><a href="#L-5961"><span class="linenos">5961</span></a><span class="sd"> overwrite: whether to INSERT OVERWRITE or not.</span>
+</span><span id="L-5962"><a href="#L-5962"><span class="linenos">5962</span></a><span class="sd"> returning: sql conditional parsed into a RETURNING statement</span>
+</span><span id="L-5963"><a href="#L-5963"><span class="linenos">5963</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="L-5964"><a href="#L-5964"><span class="linenos">5964</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
+</span><span id="L-5965"><a href="#L-5965"><span class="linenos">5965</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="L-5966"><a href="#L-5966"><span class="linenos">5966</span></a>
+</span><span id="L-5967"><a href="#L-5967"><span class="linenos">5967</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5968"><a href="#L-5968"><span class="linenos">5968</span></a><span class="sd"> Insert: the syntax tree for the INSERT statement.</span>
+</span><span id="L-5969"><a href="#L-5969"><span class="linenos">5969</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5970"><a href="#L-5970"><span class="linenos">5970</span></a> <span class="n">expr</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-5971"><a href="#L-5971"><span class="linenos">5971</span></a> <span class="n">this</span><span class="p">:</span> <span class="n">Table</span> <span class="o">|</span> <span class="n">Schema</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">into</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="L-5972"><a href="#L-5972"><span class="linenos">5972</span></a>
-</span><span id="L-5973"><a href="#L-5973"><span class="linenos">5973</span></a>
-</span><span id="L-5974"><a href="#L-5974"><span class="linenos">5974</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-5975"><a href="#L-5975"><span class="linenos">5975</span></a>
-</span><span id="L-5976"><a href="#L-5976"><span class="linenos">5976</span></a>
-</span><span id="L-5977"><a href="#L-5977"><span class="linenos">5977</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
-</span><span id="L-5978"><a href="#L-5978"><span class="linenos">5978</span></a><span class="k">def</span> <span class="nf">to_identifier</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="L-5979"><a href="#L-5979"><span class="linenos">5979</span></a> <span class="o">...</span>
-</span><span id="L-5980"><a href="#L-5980"><span class="linenos">5980</span></a>
-</span><span id="L-5981"><a href="#L-5981"><span class="linenos">5981</span></a>
-</span><span id="L-5982"><a href="#L-5982"><span class="linenos">5982</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
-</span><span id="L-5983"><a href="#L-5983"><span class="linenos">5983</span></a><span class="k">def</span> <span class="nf">to_identifier</span><span class="p">(</span>
-</span><span id="L-5984"><a href="#L-5984"><span class="linenos">5984</span></a> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">,</span> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-5985"><a href="#L-5985"><span class="linenos">5985</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Identifier</span><span class="p">:</span>
-</span><span id="L-5986"><a href="#L-5986"><span class="linenos">5986</span></a> <span class="o">...</span>
-</span><span id="L-5987"><a href="#L-5987"><span class="linenos">5987</span></a>
+</span><span id="L-5973"><a href="#L-5973"><span class="linenos">5973</span></a> <span class="k">if</span> <span class="n">columns</span><span class="p">:</span>
+</span><span id="L-5974"><a href="#L-5974"><span class="linenos">5974</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="L-5975"><a href="#L-5975"><span class="linenos">5975</span></a> <span class="o">*</span><span class="n">columns</span><span class="p">,</span>
+</span><span id="L-5976"><a href="#L-5976"><span class="linenos">5976</span></a> <span class="n">instance</span><span class="o">=</span><span class="n">Schema</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">),</span>
+</span><span id="L-5977"><a href="#L-5977"><span class="linenos">5977</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-5978"><a href="#L-5978"><span class="linenos">5978</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Identifier</span><span class="p">,</span>
+</span><span id="L-5979"><a href="#L-5979"><span class="linenos">5979</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
+</span><span id="L-5980"><a href="#L-5980"><span class="linenos">5980</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-5981"><a href="#L-5981"><span class="linenos">5981</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-5982"><a href="#L-5982"><span class="linenos">5982</span></a> <span class="p">)</span>
+</span><span id="L-5983"><a href="#L-5983"><span class="linenos">5983</span></a>
+</span><span id="L-5984"><a href="#L-5984"><span class="linenos">5984</span></a> <span class="n">insert</span> <span class="o">=</span> <span class="n">Insert</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expr</span><span class="p">,</span> <span class="n">overwrite</span><span class="o">=</span><span class="n">overwrite</span><span class="p">)</span>
+</span><span id="L-5985"><a href="#L-5985"><span class="linenos">5985</span></a>
+</span><span id="L-5986"><a href="#L-5986"><span class="linenos">5986</span></a> <span class="k">if</span> <span class="n">returning</span><span class="p">:</span>
+</span><span id="L-5987"><a href="#L-5987"><span class="linenos">5987</span></a> <span class="n">insert</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Insert</span><span class="p">,</span> <span class="n">insert</span><span class="o">.</span><span class="n">returning</span><span class="p">(</span><span class="n">returning</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
</span><span id="L-5988"><a href="#L-5988"><span class="linenos">5988</span></a>
-</span><span id="L-5989"><a href="#L-5989"><span class="linenos">5989</span></a><span class="k">def</span> <span class="nf">to_identifier</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
-</span><span id="L-5990"><a href="#L-5990"><span class="linenos">5990</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Builds an identifier.</span>
+</span><span id="L-5989"><a href="#L-5989"><span class="linenos">5989</span></a> <span class="k">return</span> <span class="n">insert</span>
+</span><span id="L-5990"><a href="#L-5990"><span class="linenos">5990</span></a>
</span><span id="L-5991"><a href="#L-5991"><span class="linenos">5991</span></a>
-</span><span id="L-5992"><a href="#L-5992"><span class="linenos">5992</span></a><span class="sd"> Args:</span>
-</span><span id="L-5993"><a href="#L-5993"><span class="linenos">5993</span></a><span class="sd"> name: The name to turn into an identifier.</span>
-</span><span id="L-5994"><a href="#L-5994"><span class="linenos">5994</span></a><span class="sd"> quoted: Whether or not force quote the identifier.</span>
-</span><span id="L-5995"><a href="#L-5995"><span class="linenos">5995</span></a><span class="sd"> copy: Whether or not to copy name if it&#39;s an Identifier.</span>
-</span><span id="L-5996"><a href="#L-5996"><span class="linenos">5996</span></a>
-</span><span id="L-5997"><a href="#L-5997"><span class="linenos">5997</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5998"><a href="#L-5998"><span class="linenos">5998</span></a><span class="sd"> The identifier ast node.</span>
-</span><span id="L-5999"><a href="#L-5999"><span class="linenos">5999</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6000"><a href="#L-6000"><span class="linenos">6000</span></a>
-</span><span id="L-6001"><a href="#L-6001"><span class="linenos">6001</span></a> <span 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-6002"><a href="#L-6002"><span class="linenos">6002</span></a> <span class="k">return</span> <span class="kc">None</span>
-</span><span id="L-6003"><a href="#L-6003"><span class="linenos">6003</span></a>
-</span><span id="L-6004"><a href="#L-6004"><span class="linenos">6004</span></a> <span class="k">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-6005"><a href="#L-6005"><span class="linenos">6005</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
-</span><span id="L-6006"><a href="#L-6006"><span class="linenos">6006</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-6007"><a href="#L-6007"><span class="linenos">6007</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="n">Identifier</span><span class="p">(</span>
-</span><span id="L-6008"><a href="#L-6008"><span class="linenos">6008</span></a> <span class="n">this</span><span class="o">=</span><span class="n">name</span><span class="p">,</span>
-</span><span id="L-6009"><a href="#L-6009"><span class="linenos">6009</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-6010"><a href="#L-6010"><span class="linenos">6010</span></a> <span class="p">)</span>
-</span><span id="L-6011"><a href="#L-6011"><span class="linenos">6011</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-6012"><a href="#L-6012"><span class="linenos">6012</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-6013"><a href="#L-6013"><span class="linenos">6013</span></a> <span class="k">return</span> <span class="n">identifier</span>
-</span><span id="L-6014"><a href="#L-6014"><span class="linenos">6014</span></a>
-</span><span id="L-6015"><a href="#L-6015"><span class="linenos">6015</span></a>
-</span><span id="L-6016"><a href="#L-6016"><span class="linenos">6016</span></a><span class="k">def</span> <span class="nf">parse_identifier</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Identifier</span><span class="p">:</span>
-</span><span id="L-6017"><a href="#L-6017"><span class="linenos">6017</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-6018"><a href="#L-6018"><span class="linenos">6018</span></a><span class="sd"> Parses a given string into an identifier.</span>
-</span><span id="L-6019"><a href="#L-6019"><span class="linenos">6019</span></a>
-</span><span id="L-6020"><a href="#L-6020"><span class="linenos">6020</span></a><span class="sd"> Args:</span>
-</span><span id="L-6021"><a href="#L-6021"><span class="linenos">6021</span></a><span class="sd"> name: The name to parse into an identifier.</span>
-</span><span id="L-6022"><a href="#L-6022"><span class="linenos">6022</span></a><span class="sd"> dialect: The dialect to parse against.</span>
-</span><span id="L-6023"><a href="#L-6023"><span class="linenos">6023</span></a>
-</span><span id="L-6024"><a href="#L-6024"><span class="linenos">6024</span></a><span class="sd"> Returns:</span>
-</span><span id="L-6025"><a href="#L-6025"><span class="linenos">6025</span></a><span class="sd"> The identifier ast node.</span>
-</span><span id="L-6026"><a href="#L-6026"><span class="linenos">6026</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6027"><a href="#L-6027"><span class="linenos">6027</span></a> <span class="k">try</span><span class="p">:</span>
-</span><span id="L-6028"><a href="#L-6028"><span class="linenos">6028</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Identifier</span><span class="p">)</span>
-</span><span id="L-6029"><a href="#L-6029"><span class="linenos">6029</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span>
-</span><span id="L-6030"><a href="#L-6030"><span class="linenos">6030</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">to_identifier</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
-</span><span id="L-6031"><a href="#L-6031"><span class="linenos">6031</span></a>
-</span><span id="L-6032"><a href="#L-6032"><span class="linenos">6032</span></a> <span class="k">return</span> <span class="n">expression</span>
-</span><span id="L-6033"><a href="#L-6033"><span class="linenos">6033</span></a>
+</span><span id="L-5992"><a href="#L-5992"><span class="linenos">5992</span></a><span class="k">def</span> <span class="nf">condition</span><span class="p">(</span>
+</span><span id="L-5993"><a href="#L-5993"><span class="linenos">5993</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="L-5994"><a href="#L-5994"><span class="linenos">5994</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
+</span><span id="L-5995"><a href="#L-5995"><span class="linenos">5995</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5996"><a href="#L-5996"><span class="linenos">5996</span></a><span class="sd"> Initialize a logical condition expression.</span>
+</span><span id="L-5997"><a href="#L-5997"><span class="linenos">5997</span></a>
+</span><span id="L-5998"><a href="#L-5998"><span class="linenos">5998</span></a><span class="sd"> Example:</span>
+</span><span id="L-5999"><a href="#L-5999"><span class="linenos">5999</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).sql()</span>
+</span><span id="L-6000"><a href="#L-6000"><span class="linenos">6000</span></a><span class="sd"> &#39;x = 1&#39;</span>
+</span><span id="L-6001"><a href="#L-6001"><span class="linenos">6001</span></a>
+</span><span id="L-6002"><a href="#L-6002"><span class="linenos">6002</span></a><span class="sd"> This is helpful for composing larger logical syntax trees:</span>
+</span><span id="L-6003"><a href="#L-6003"><span class="linenos">6003</span></a><span class="sd"> &gt;&gt;&gt; where = condition(&quot;x=1&quot;)</span>
+</span><span id="L-6004"><a href="#L-6004"><span class="linenos">6004</span></a><span class="sd"> &gt;&gt;&gt; where = where.and_(&quot;y=1&quot;)</span>
+</span><span id="L-6005"><a href="#L-6005"><span class="linenos">6005</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;*&quot;).where(where).sql()</span>
+</span><span id="L-6006"><a href="#L-6006"><span class="linenos">6006</span></a><span class="sd"> &#39;SELECT * FROM tbl WHERE x = 1 AND y = 1&#39;</span>
+</span><span id="L-6007"><a href="#L-6007"><span class="linenos">6007</span></a>
+</span><span id="L-6008"><a href="#L-6008"><span class="linenos">6008</span></a><span class="sd"> Args:</span>
+</span><span id="L-6009"><a href="#L-6009"><span class="linenos">6009</span></a><span class="sd"> *expression: the SQL code string to parse.</span>
+</span><span id="L-6010"><a href="#L-6010"><span class="linenos">6010</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-6011"><a href="#L-6011"><span class="linenos">6011</span></a><span class="sd"> dialect: the dialect used to parse the input expression (in the case that the</span>
+</span><span id="L-6012"><a href="#L-6012"><span class="linenos">6012</span></a><span class="sd"> input expression is a SQL string).</span>
+</span><span id="L-6013"><a href="#L-6013"><span class="linenos">6013</span></a><span class="sd"> copy: Whether or not to copy `expression` (only applies to expressions).</span>
+</span><span id="L-6014"><a href="#L-6014"><span class="linenos">6014</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
+</span><span id="L-6015"><a href="#L-6015"><span class="linenos">6015</span></a><span class="sd"> that the input expression is a SQL string).</span>
+</span><span id="L-6016"><a href="#L-6016"><span class="linenos">6016</span></a>
+</span><span id="L-6017"><a href="#L-6017"><span class="linenos">6017</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6018"><a href="#L-6018"><span class="linenos">6018</span></a><span class="sd"> The new Condition instance</span>
+</span><span id="L-6019"><a href="#L-6019"><span class="linenos">6019</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6020"><a href="#L-6020"><span class="linenos">6020</span></a> <span class="k">return</span> <span class="n">maybe_parse</span><span class="p">(</span>
+</span><span id="L-6021"><a href="#L-6021"><span class="linenos">6021</span></a> <span class="n">expression</span><span class="p">,</span>
+</span><span id="L-6022"><a href="#L-6022"><span class="linenos">6022</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Condition</span><span class="p">,</span>
+</span><span id="L-6023"><a href="#L-6023"><span class="linenos">6023</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-6024"><a href="#L-6024"><span class="linenos">6024</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-6025"><a href="#L-6025"><span class="linenos">6025</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-6026"><a href="#L-6026"><span class="linenos">6026</span></a> <span class="p">)</span>
+</span><span id="L-6027"><a href="#L-6027"><span class="linenos">6027</span></a>
+</span><span id="L-6028"><a href="#L-6028"><span class="linenos">6028</span></a>
+</span><span id="L-6029"><a href="#L-6029"><span class="linenos">6029</span></a><span class="k">def</span> <span class="nf">and_</span><span class="p">(</span>
+</span><span id="L-6030"><a href="#L-6030"><span class="linenos">6030</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="L-6031"><a href="#L-6031"><span class="linenos">6031</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
+</span><span id="L-6032"><a href="#L-6032"><span class="linenos">6032</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-6033"><a href="#L-6033"><span class="linenos">6033</span></a><span class="sd"> Combine multiple conditions with an AND logical operator.</span>
</span><span id="L-6034"><a href="#L-6034"><span class="linenos">6034</span></a>
-</span><span id="L-6035"><a href="#L-6035"><span class="linenos">6035</span></a><span class="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-6036"><a href="#L-6036"><span class="linenos">6036</span></a>
-</span><span id="L-6037"><a href="#L-6037"><span class="linenos">6037</span></a>
-</span><span id="L-6038"><a href="#L-6038"><span class="linenos">6038</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-6039"><a href="#L-6039"><span class="linenos">6039</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-6040"><a href="#L-6040"><span class="linenos">6040</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-6041"><a href="#L-6041"><span class="linenos">6041</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-6042"><a href="#L-6042"><span class="linenos">6042</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-6043"><a href="#L-6043"><span class="linenos">6043</span></a>
-</span><span id="L-6044"><a href="#L-6044"><span class="linenos">6044</span></a> <span 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-6035"><a href="#L-6035"><span class="linenos">6035</span></a><span class="sd"> Example:</span>
+</span><span id="L-6036"><a href="#L-6036"><span class="linenos">6036</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-6037"><a href="#L-6037"><span class="linenos">6037</span></a><span class="sd"> &#39;x = 1 AND (y = 1 AND z = 1)&#39;</span>
+</span><span id="L-6038"><a href="#L-6038"><span class="linenos">6038</span></a>
+</span><span id="L-6039"><a href="#L-6039"><span class="linenos">6039</span></a><span class="sd"> Args:</span>
+</span><span id="L-6040"><a href="#L-6040"><span class="linenos">6040</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="L-6041"><a href="#L-6041"><span class="linenos">6041</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-6042"><a href="#L-6042"><span class="linenos">6042</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-6043"><a href="#L-6043"><span class="linenos">6043</span></a><span class="sd"> copy: whether or not to copy `expressions` (only applies to Expressions).</span>
+</span><span id="L-6044"><a href="#L-6044"><span class="linenos">6044</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
</span><span id="L-6045"><a href="#L-6045"><span class="linenos">6045</span></a>
-</span><span id="L-6046"><a href="#L-6046"><span class="linenos">6046</span></a> <span class="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-6047"><a href="#L-6047"><span class="linenos">6047</span></a>
-</span><span id="L-6048"><a href="#L-6048"><span class="linenos">6048</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-6049"><a href="#L-6049"><span class="linenos">6049</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-6046"><a href="#L-6046"><span class="linenos">6046</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6047"><a href="#L-6047"><span class="linenos">6047</span></a><span class="sd"> And: the new condition</span>
+</span><span id="L-6048"><a href="#L-6048"><span class="linenos">6048</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6049"><a href="#L-6049"><span class="linenos">6049</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Condition</span><span class="p">,</span> <span class="n">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">And</span><span class="p">,</span> <span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
</span><span id="L-6050"><a href="#L-6050"><span class="linenos">6050</span></a>
-</span><span id="L-6051"><a href="#L-6051"><span class="linenos">6051</span></a> <span class="k">return</span> <span class="n">Interval</span><span class="p">(</span>
-</span><span id="L-6052"><a href="#L-6052"><span class="linenos">6052</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-6053"><a href="#L-6053"><span class="linenos">6053</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-6054"><a href="#L-6054"><span class="linenos">6054</span></a> <span class="p">)</span>
-</span><span id="L-6055"><a href="#L-6055"><span class="linenos">6055</span></a>
-</span><span id="L-6056"><a href="#L-6056"><span class="linenos">6056</span></a>
-</span><span id="L-6057"><a href="#L-6057"><span class="linenos">6057</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
-</span><span id="L-6058"><a href="#L-6058"><span class="linenos">6058</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-6059"><a href="#L-6059"><span class="linenos">6059</span></a> <span class="o">...</span>
-</span><span id="L-6060"><a href="#L-6060"><span class="linenos">6060</span></a>
+</span><span id="L-6051"><a href="#L-6051"><span class="linenos">6051</span></a>
+</span><span id="L-6052"><a href="#L-6052"><span class="linenos">6052</span></a><span class="k">def</span> <span class="nf">or_</span><span class="p">(</span>
+</span><span id="L-6053"><a href="#L-6053"><span class="linenos">6053</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="L-6054"><a href="#L-6054"><span class="linenos">6054</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
+</span><span id="L-6055"><a href="#L-6055"><span class="linenos">6055</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-6056"><a href="#L-6056"><span class="linenos">6056</span></a><span class="sd"> Combine multiple conditions with an OR logical operator.</span>
+</span><span id="L-6057"><a href="#L-6057"><span class="linenos">6057</span></a>
+</span><span id="L-6058"><a href="#L-6058"><span class="linenos">6058</span></a><span class="sd"> Example:</span>
+</span><span id="L-6059"><a href="#L-6059"><span class="linenos">6059</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-6060"><a href="#L-6060"><span class="linenos">6060</span></a><span class="sd"> &#39;x = 1 OR (y = 1 OR z = 1)&#39;</span>
</span><span id="L-6061"><a href="#L-6061"><span class="linenos">6061</span></a>
-</span><span id="L-6062"><a href="#L-6062"><span class="linenos">6062</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
-</span><span id="L-6063"><a href="#L-6063"><span class="linenos">6063</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-6064"><a href="#L-6064"><span class="linenos">6064</span></a> <span class="o">...</span>
-</span><span id="L-6065"><a href="#L-6065"><span class="linenos">6065</span></a>
-</span><span id="L-6066"><a href="#L-6066"><span class="linenos">6066</span></a>
-</span><span id="L-6067"><a href="#L-6067"><span class="linenos">6067</span></a><span class="k">def</span> <span class="nf">to_table</span><span class="p">(</span>
-</span><span id="L-6068"><a href="#L-6068"><span class="linenos">6068</span></a> <span class="n">sql_path</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">],</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span>
-</span><span id="L-6069"><a href="#L-6069"><span class="linenos">6069</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Table</span><span class="p">]:</span>
-</span><span id="L-6070"><a href="#L-6070"><span class="linenos">6070</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-6071"><a href="#L-6071"><span class="linenos">6071</span></a><span class="sd"> Create a table expression from a `[catalog].[schema].[table]` sql path. Catalog and schema are optional.</span>
-</span><span id="L-6072"><a href="#L-6072"><span class="linenos">6072</span></a><span class="sd"> If a table is passed in then that table is returned.</span>
+</span><span id="L-6062"><a href="#L-6062"><span class="linenos">6062</span></a><span class="sd"> Args:</span>
+</span><span id="L-6063"><a href="#L-6063"><span class="linenos">6063</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="L-6064"><a href="#L-6064"><span class="linenos">6064</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-6065"><a href="#L-6065"><span class="linenos">6065</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-6066"><a href="#L-6066"><span class="linenos">6066</span></a><span class="sd"> copy: whether or not to copy `expressions` (only applies to Expressions).</span>
+</span><span id="L-6067"><a href="#L-6067"><span class="linenos">6067</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="L-6068"><a href="#L-6068"><span class="linenos">6068</span></a>
+</span><span id="L-6069"><a href="#L-6069"><span class="linenos">6069</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6070"><a href="#L-6070"><span class="linenos">6070</span></a><span class="sd"> Or: the new condition</span>
+</span><span id="L-6071"><a href="#L-6071"><span class="linenos">6071</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6072"><a href="#L-6072"><span class="linenos">6072</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Condition</span><span class="p">,</span> <span class="n">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">Or</span><span class="p">,</span> <span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
</span><span id="L-6073"><a href="#L-6073"><span class="linenos">6073</span></a>
-</span><span id="L-6074"><a href="#L-6074"><span class="linenos">6074</span></a><span class="sd"> Args:</span>
-</span><span id="L-6075"><a href="#L-6075"><span class="linenos">6075</span></a><span class="sd"> sql_path: a `[catalog].[schema].[table]` string.</span>
-</span><span id="L-6076"><a href="#L-6076"><span class="linenos">6076</span></a><span class="sd"> dialect: the source dialect according to which the table name will be parsed.</span>
-</span><span id="L-6077"><a href="#L-6077"><span class="linenos">6077</span></a><span class="sd"> copy: Whether or not to copy a table if it is passed in.</span>
-</span><span id="L-6078"><a href="#L-6078"><span class="linenos">6078</span></a><span class="sd"> kwargs: the kwargs to instantiate the resulting `Table` expression with.</span>
-</span><span id="L-6079"><a href="#L-6079"><span class="linenos">6079</span></a>
-</span><span id="L-6080"><a href="#L-6080"><span class="linenos">6080</span></a><span class="sd"> Returns:</span>
-</span><span id="L-6081"><a href="#L-6081"><span class="linenos">6081</span></a><span class="sd"> A table expression.</span>
-</span><span id="L-6082"><a href="#L-6082"><span class="linenos">6082</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6083"><a href="#L-6083"><span class="linenos">6083</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-6084"><a href="#L-6084"><span class="linenos">6084</span></a> <span class="k">return</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span>
-</span><span id="L-6085"><a href="#L-6085"><span class="linenos">6085</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-6086"><a href="#L-6086"><span class="linenos">6086</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-6087"><a href="#L-6087"><span class="linenos">6087</span></a>
-</span><span id="L-6088"><a href="#L-6088"><span class="linenos">6088</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span>
-</span><span id="L-6089"><a href="#L-6089"><span class="linenos">6089</span></a> <span class="k">if</span> <span class="n">table</span><span class="p">:</span>
-</span><span id="L-6090"><a href="#L-6090"><span class="linenos">6090</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
-</span><span id="L-6091"><a href="#L-6091"><span class="linenos">6091</span></a> <span class="n">table</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
-</span><span id="L-6092"><a href="#L-6092"><span class="linenos">6092</span></a>
-</span><span id="L-6093"><a href="#L-6093"><span class="linenos">6093</span></a> <span class="k">return</span> <span class="n">table</span>
-</span><span id="L-6094"><a href="#L-6094"><span class="linenos">6094</span></a>
-</span><span id="L-6095"><a href="#L-6095"><span class="linenos">6095</span></a>
-</span><span id="L-6096"><a href="#L-6096"><span class="linenos">6096</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-6097"><a href="#L-6097"><span class="linenos">6097</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-6098"><a href="#L-6098"><span class="linenos">6098</span></a><span class="sd"> Create a column from a `[table].[column]` sql path. Schema is optional.</span>
-</span><span id="L-6099"><a href="#L-6099"><span class="linenos">6099</span></a>
-</span><span id="L-6100"><a href="#L-6100"><span class="linenos">6100</span></a><span class="sd"> If a column is passed in then that column is returned.</span>
+</span><span id="L-6074"><a href="#L-6074"><span class="linenos">6074</span></a>
+</span><span id="L-6075"><a href="#L-6075"><span class="linenos">6075</span></a><span class="k">def</span> <span class="nf">not_</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Not</span><span class="p">:</span>
+</span><span id="L-6076"><a href="#L-6076"><span class="linenos">6076</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-6077"><a href="#L-6077"><span class="linenos">6077</span></a><span class="sd"> Wrap a condition with a NOT operator.</span>
+</span><span id="L-6078"><a href="#L-6078"><span class="linenos">6078</span></a>
+</span><span id="L-6079"><a href="#L-6079"><span class="linenos">6079</span></a><span class="sd"> Example:</span>
+</span><span id="L-6080"><a href="#L-6080"><span class="linenos">6080</span></a><span class="sd"> &gt;&gt;&gt; not_(&quot;this_suit=&#39;black&#39;&quot;).sql()</span>
+</span><span id="L-6081"><a href="#L-6081"><span class="linenos">6081</span></a><span class="sd"> &quot;NOT this_suit = &#39;black&#39;&quot;</span>
+</span><span id="L-6082"><a href="#L-6082"><span class="linenos">6082</span></a>
+</span><span id="L-6083"><a href="#L-6083"><span class="linenos">6083</span></a><span class="sd"> Args:</span>
+</span><span id="L-6084"><a href="#L-6084"><span class="linenos">6084</span></a><span class="sd"> expression: the SQL code string to parse.</span>
+</span><span id="L-6085"><a href="#L-6085"><span class="linenos">6085</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-6086"><a href="#L-6086"><span class="linenos">6086</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-6087"><a href="#L-6087"><span class="linenos">6087</span></a><span class="sd"> copy: whether to copy the expression or not.</span>
+</span><span id="L-6088"><a href="#L-6088"><span class="linenos">6088</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="L-6089"><a href="#L-6089"><span class="linenos">6089</span></a>
+</span><span id="L-6090"><a href="#L-6090"><span class="linenos">6090</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6091"><a href="#L-6091"><span class="linenos">6091</span></a><span class="sd"> The new condition.</span>
+</span><span id="L-6092"><a href="#L-6092"><span class="linenos">6092</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6093"><a href="#L-6093"><span class="linenos">6093</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">condition</span><span class="p">(</span>
+</span><span id="L-6094"><a href="#L-6094"><span class="linenos">6094</span></a> <span class="n">expression</span><span class="p">,</span>
+</span><span id="L-6095"><a href="#L-6095"><span class="linenos">6095</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-6096"><a href="#L-6096"><span class="linenos">6096</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-6097"><a href="#L-6097"><span class="linenos">6097</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-6098"><a href="#L-6098"><span class="linenos">6098</span></a> <span class="p">)</span>
+</span><span id="L-6099"><a href="#L-6099"><span class="linenos">6099</span></a> <span class="k">return</span> <span class="n">Not</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">_wrap</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">Connector</span><span class="p">))</span>
+</span><span id="L-6100"><a href="#L-6100"><span class="linenos">6100</span></a>
</span><span id="L-6101"><a href="#L-6101"><span class="linenos">6101</span></a>
-</span><span id="L-6102"><a href="#L-6102"><span class="linenos">6102</span></a><span class="sd"> Args:</span>
-</span><span id="L-6103"><a href="#L-6103"><span class="linenos">6103</span></a><span class="sd"> sql_path: `[table].[column]` string</span>
-</span><span id="L-6104"><a href="#L-6104"><span class="linenos">6104</span></a><span class="sd"> Returns:</span>
-</span><span id="L-6105"><a href="#L-6105"><span class="linenos">6105</span></a><span class="sd"> Table: A column expression</span>
-</span><span id="L-6106"><a href="#L-6106"><span class="linenos">6106</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6107"><a href="#L-6107"><span class="linenos">6107</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-6108"><a href="#L-6108"><span class="linenos">6108</span></a> <span class="k">return</span> <span class="n">sql_path</span>
-</span><span id="L-6109"><a href="#L-6109"><span class="linenos">6109</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-6110"><a href="#L-6110"><span class="linenos">6110</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-6111"><a href="#L-6111"><span class="linenos">6111</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-6112"><a href="#L-6112"><span class="linenos">6112</span></a>
-</span><span id="L-6113"><a href="#L-6113"><span class="linenos">6113</span></a>
-</span><span id="L-6114"><a href="#L-6114"><span class="linenos">6114</span></a><span class="k">def</span> <span class="nf">alias_</span><span class="p">(</span>
-</span><span id="L-6115"><a href="#L-6115"><span class="linenos">6115</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-6116"><a href="#L-6116"><span class="linenos">6116</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-6117"><a href="#L-6117"><span class="linenos">6117</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-6118"><a href="#L-6118"><span class="linenos">6118</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-6119"><a href="#L-6119"><span class="linenos">6119</span></a> <span class="n">dialect</span><span 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-6120"><a href="#L-6120"><span class="linenos">6120</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-6121"><a href="#L-6121"><span class="linenos">6121</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-6122"><a href="#L-6122"><span class="linenos">6122</span></a><span class="p">):</span>
-</span><span id="L-6123"><a href="#L-6123"><span class="linenos">6123</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Create an Alias expression.</span>
-</span><span id="L-6124"><a href="#L-6124"><span class="linenos">6124</span></a>
-</span><span id="L-6125"><a href="#L-6125"><span class="linenos">6125</span></a><span class="sd"> Example:</span>
-</span><span id="L-6126"><a href="#L-6126"><span class="linenos">6126</span></a><span class="sd"> &gt;&gt;&gt; alias_(&#39;foo&#39;, &#39;bar&#39;).sql()</span>
-</span><span id="L-6127"><a href="#L-6127"><span class="linenos">6127</span></a><span class="sd"> &#39;foo AS bar&#39;</span>
+</span><span id="L-6102"><a href="#L-6102"><span class="linenos">6102</span></a><span class="k">def</span> <span class="nf">paren</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Paren</span><span class="p">:</span>
+</span><span id="L-6103"><a href="#L-6103"><span class="linenos">6103</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-6104"><a href="#L-6104"><span class="linenos">6104</span></a><span class="sd"> Wrap an expression in parentheses.</span>
+</span><span id="L-6105"><a href="#L-6105"><span class="linenos">6105</span></a>
+</span><span id="L-6106"><a href="#L-6106"><span class="linenos">6106</span></a><span class="sd"> Example:</span>
+</span><span id="L-6107"><a href="#L-6107"><span class="linenos">6107</span></a><span class="sd"> &gt;&gt;&gt; paren(&quot;5 + 3&quot;).sql()</span>
+</span><span id="L-6108"><a href="#L-6108"><span class="linenos">6108</span></a><span class="sd"> &#39;(5 + 3)&#39;</span>
+</span><span id="L-6109"><a href="#L-6109"><span class="linenos">6109</span></a>
+</span><span id="L-6110"><a href="#L-6110"><span class="linenos">6110</span></a><span class="sd"> Args:</span>
+</span><span id="L-6111"><a href="#L-6111"><span class="linenos">6111</span></a><span class="sd"> expression: the SQL code string to parse.</span>
+</span><span id="L-6112"><a href="#L-6112"><span class="linenos">6112</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-6113"><a href="#L-6113"><span class="linenos">6113</span></a><span class="sd"> copy: whether to copy the expression or not.</span>
+</span><span id="L-6114"><a href="#L-6114"><span class="linenos">6114</span></a>
+</span><span id="L-6115"><a href="#L-6115"><span class="linenos">6115</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6116"><a href="#L-6116"><span class="linenos">6116</span></a><span class="sd"> The wrapped expression.</span>
+</span><span id="L-6117"><a href="#L-6117"><span class="linenos">6117</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6118"><a href="#L-6118"><span class="linenos">6118</span></a> <span class="k">return</span> <span class="n">Paren</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">))</span>
+</span><span id="L-6119"><a href="#L-6119"><span class="linenos">6119</span></a>
+</span><span id="L-6120"><a href="#L-6120"><span class="linenos">6120</span></a>
+</span><span id="L-6121"><a href="#L-6121"><span class="linenos">6121</span></a><span class="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-6122"><a href="#L-6122"><span class="linenos">6122</span></a>
+</span><span id="L-6123"><a href="#L-6123"><span class="linenos">6123</span></a>
+</span><span id="L-6124"><a href="#L-6124"><span class="linenos">6124</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="L-6125"><a href="#L-6125"><span class="linenos">6125</span></a><span class="k">def</span> <span class="nf">to_identifier</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="L-6126"><a href="#L-6126"><span class="linenos">6126</span></a> <span class="o">...</span>
+</span><span id="L-6127"><a href="#L-6127"><span class="linenos">6127</span></a>
</span><span id="L-6128"><a href="#L-6128"><span class="linenos">6128</span></a>
-</span><span id="L-6129"><a href="#L-6129"><span class="linenos">6129</span></a><span class="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-6130"><a href="#L-6130"><span class="linenos">6130</span></a><span class="sd"> &#39;(SELECT 1, 2) AS bar(a, b)&#39;</span>
-</span><span id="L-6131"><a href="#L-6131"><span class="linenos">6131</span></a>
-</span><span id="L-6132"><a href="#L-6132"><span class="linenos">6132</span></a><span class="sd"> Args:</span>
-</span><span id="L-6133"><a href="#L-6133"><span class="linenos">6133</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
-</span><span id="L-6134"><a href="#L-6134"><span class="linenos">6134</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-6135"><a href="#L-6135"><span class="linenos">6135</span></a><span class="sd"> alias: the alias name to use. If the name has</span>
-</span><span id="L-6136"><a href="#L-6136"><span class="linenos">6136</span></a><span class="sd"> special characters it is quoted.</span>
-</span><span id="L-6137"><a href="#L-6137"><span class="linenos">6137</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-6138"><a href="#L-6138"><span class="linenos">6138</span></a><span class="sd"> quoted: whether or not to quote the alias</span>
-</span><span id="L-6139"><a href="#L-6139"><span class="linenos">6139</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-6140"><a href="#L-6140"><span class="linenos">6140</span></a><span class="sd"> copy: Whether or not to copy the expression.</span>
-</span><span id="L-6141"><a href="#L-6141"><span class="linenos">6141</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="L-6142"><a href="#L-6142"><span class="linenos">6142</span></a>
-</span><span id="L-6143"><a href="#L-6143"><span class="linenos">6143</span></a><span class="sd"> Returns:</span>
-</span><span id="L-6144"><a href="#L-6144"><span class="linenos">6144</span></a><span class="sd"> Alias: the aliased expression</span>
-</span><span id="L-6145"><a href="#L-6145"><span class="linenos">6145</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6146"><a href="#L-6146"><span class="linenos">6146</span></a> <span class="n">exp</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-6147"><a href="#L-6147"><span class="linenos">6147</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-6148"><a href="#L-6148"><span class="linenos">6148</span></a>
-</span><span id="L-6149"><a href="#L-6149"><span class="linenos">6149</span></a> <span class="k">if</span> <span class="n">table</span><span class="p">:</span>
-</span><span id="L-6150"><a href="#L-6150"><span class="linenos">6150</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-6151"><a href="#L-6151"><span class="linenos">6151</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-6152"><a href="#L-6152"><span class="linenos">6152</span></a>
-</span><span id="L-6153"><a href="#L-6153"><span class="linenos">6153</span></a> <span class="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-6154"><a href="#L-6154"><span class="linenos">6154</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-6155"><a href="#L-6155"><span class="linenos">6155</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-6156"><a href="#L-6156"><span class="linenos">6156</span></a>
-</span><span id="L-6157"><a href="#L-6157"><span class="linenos">6157</span></a> <span class="k">return</span> <span class="n">exp</span>
-</span><span id="L-6158"><a href="#L-6158"><span class="linenos">6158</span></a>
-</span><span id="L-6159"><a href="#L-6159"><span class="linenos">6159</span></a> <span class="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-6160"><a href="#L-6160"><span class="linenos">6160</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-6161"><a href="#L-6161"><span class="linenos">6161</span></a> <span class="c1"># for the complete Window expression.</span>
-</span><span id="L-6162"><a href="#L-6162"><span class="linenos">6162</span></a> <span class="c1">#</span>
-</span><span id="L-6163"><a href="#L-6163"><span class="linenos">6163</span></a> <span class="c1"># [1]: https://cloud.google.com/bigquery/docs/reference/standard-sql/window-function-calls</span>
-</span><span id="L-6164"><a href="#L-6164"><span class="linenos">6164</span></a>
-</span><span id="L-6165"><a href="#L-6165"><span class="linenos">6165</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-6166"><a href="#L-6166"><span class="linenos">6166</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-6167"><a href="#L-6167"><span class="linenos">6167</span></a> <span class="k">return</span> <span class="n">exp</span>
-</span><span id="L-6168"><a href="#L-6168"><span class="linenos">6168</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-6169"><a href="#L-6169"><span class="linenos">6169</span></a>
+</span><span id="L-6129"><a href="#L-6129"><span class="linenos">6129</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="L-6130"><a href="#L-6130"><span class="linenos">6130</span></a><span class="k">def</span> <span class="nf">to_identifier</span><span class="p">(</span>
+</span><span id="L-6131"><a href="#L-6131"><span class="linenos">6131</span></a> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">,</span> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-6132"><a href="#L-6132"><span class="linenos">6132</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Identifier</span><span class="p">:</span>
+</span><span id="L-6133"><a href="#L-6133"><span class="linenos">6133</span></a> <span class="o">...</span>
+</span><span id="L-6134"><a href="#L-6134"><span class="linenos">6134</span></a>
+</span><span id="L-6135"><a href="#L-6135"><span class="linenos">6135</span></a>
+</span><span id="L-6136"><a href="#L-6136"><span class="linenos">6136</span></a><span class="k">def</span> <span class="nf">to_identifier</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
+</span><span id="L-6137"><a href="#L-6137"><span class="linenos">6137</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Builds an identifier.</span>
+</span><span id="L-6138"><a href="#L-6138"><span class="linenos">6138</span></a>
+</span><span id="L-6139"><a href="#L-6139"><span class="linenos">6139</span></a><span class="sd"> Args:</span>
+</span><span id="L-6140"><a href="#L-6140"><span class="linenos">6140</span></a><span class="sd"> name: The name to turn into an identifier.</span>
+</span><span id="L-6141"><a href="#L-6141"><span class="linenos">6141</span></a><span class="sd"> quoted: Whether or not force quote the identifier.</span>
+</span><span id="L-6142"><a href="#L-6142"><span class="linenos">6142</span></a><span class="sd"> copy: Whether or not to copy name if it&#39;s an Identifier.</span>
+</span><span id="L-6143"><a href="#L-6143"><span class="linenos">6143</span></a>
+</span><span id="L-6144"><a href="#L-6144"><span class="linenos">6144</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6145"><a href="#L-6145"><span class="linenos">6145</span></a><span class="sd"> The identifier ast node.</span>
+</span><span id="L-6146"><a href="#L-6146"><span class="linenos">6146</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6147"><a href="#L-6147"><span class="linenos">6147</span></a>
+</span><span id="L-6148"><a href="#L-6148"><span class="linenos">6148</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-6149"><a href="#L-6149"><span class="linenos">6149</span></a> <span class="k">return</span> <span class="kc">None</span>
+</span><span id="L-6150"><a href="#L-6150"><span class="linenos">6150</span></a>
+</span><span id="L-6151"><a href="#L-6151"><span class="linenos">6151</span></a> <span class="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-6152"><a href="#L-6152"><span class="linenos">6152</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
+</span><span id="L-6153"><a href="#L-6153"><span class="linenos">6153</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-6154"><a href="#L-6154"><span class="linenos">6154</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="n">Identifier</span><span class="p">(</span>
+</span><span id="L-6155"><a href="#L-6155"><span class="linenos">6155</span></a> <span class="n">this</span><span class="o">=</span><span class="n">name</span><span class="p">,</span>
+</span><span id="L-6156"><a href="#L-6156"><span class="linenos">6156</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-6157"><a href="#L-6157"><span class="linenos">6157</span></a> <span class="p">)</span>
+</span><span id="L-6158"><a href="#L-6158"><span class="linenos">6158</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-6159"><a href="#L-6159"><span class="linenos">6159</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-6160"><a href="#L-6160"><span class="linenos">6160</span></a> <span class="k">return</span> <span class="n">identifier</span>
+</span><span id="L-6161"><a href="#L-6161"><span class="linenos">6161</span></a>
+</span><span id="L-6162"><a href="#L-6162"><span class="linenos">6162</span></a>
+</span><span id="L-6163"><a href="#L-6163"><span class="linenos">6163</span></a><span class="k">def</span> <span class="nf">parse_identifier</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Identifier</span><span class="p">:</span>
+</span><span id="L-6164"><a href="#L-6164"><span class="linenos">6164</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-6165"><a href="#L-6165"><span class="linenos">6165</span></a><span class="sd"> Parses a given string into an identifier.</span>
+</span><span id="L-6166"><a href="#L-6166"><span class="linenos">6166</span></a>
+</span><span id="L-6167"><a href="#L-6167"><span class="linenos">6167</span></a><span class="sd"> Args:</span>
+</span><span id="L-6168"><a href="#L-6168"><span class="linenos">6168</span></a><span class="sd"> name: The name to parse into an identifier.</span>
+</span><span id="L-6169"><a href="#L-6169"><span class="linenos">6169</span></a><span class="sd"> dialect: The dialect to parse against.</span>
</span><span id="L-6170"><a href="#L-6170"><span class="linenos">6170</span></a>
-</span><span id="L-6171"><a href="#L-6171"><span class="linenos">6171</span></a><span class="k">def</span> <span class="nf">subquery</span><span class="p">(</span>
-</span><span id="L-6172"><a href="#L-6172"><span class="linenos">6172</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-6173"><a href="#L-6173"><span class="linenos">6173</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-6174"><a href="#L-6174"><span class="linenos">6174</span></a> <span class="n">dialect</span><span 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-6175"><a href="#L-6175"><span class="linenos">6175</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-6176"><a href="#L-6176"><span class="linenos">6176</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-6177"><a href="#L-6177"><span class="linenos">6177</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-6178"><a href="#L-6178"><span class="linenos">6178</span></a><span class="sd"> Build a subquery expression.</span>
-</span><span id="L-6179"><a href="#L-6179"><span class="linenos">6179</span></a>
-</span><span id="L-6180"><a href="#L-6180"><span class="linenos">6180</span></a><span class="sd"> Example:</span>
-</span><span id="L-6181"><a href="#L-6181"><span class="linenos">6181</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-6182"><a href="#L-6182"><span class="linenos">6182</span></a><span class="sd"> &#39;SELECT x FROM (SELECT x FROM tbl) AS bar&#39;</span>
+</span><span id="L-6171"><a href="#L-6171"><span class="linenos">6171</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6172"><a href="#L-6172"><span class="linenos">6172</span></a><span class="sd"> The identifier ast node.</span>
+</span><span id="L-6173"><a href="#L-6173"><span class="linenos">6173</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6174"><a href="#L-6174"><span class="linenos">6174</span></a> <span class="k">try</span><span class="p">:</span>
+</span><span id="L-6175"><a href="#L-6175"><span class="linenos">6175</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Identifier</span><span class="p">)</span>
+</span><span id="L-6176"><a href="#L-6176"><span class="linenos">6176</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span>
+</span><span id="L-6177"><a href="#L-6177"><span class="linenos">6177</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">to_identifier</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
+</span><span id="L-6178"><a href="#L-6178"><span class="linenos">6178</span></a>
+</span><span id="L-6179"><a href="#L-6179"><span class="linenos">6179</span></a> <span class="k">return</span> <span class="n">expression</span>
+</span><span id="L-6180"><a href="#L-6180"><span class="linenos">6180</span></a>
+</span><span id="L-6181"><a href="#L-6181"><span class="linenos">6181</span></a>
+</span><span id="L-6182"><a href="#L-6182"><span class="linenos">6182</span></a><span class="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-6183"><a href="#L-6183"><span class="linenos">6183</span></a>
-</span><span id="L-6184"><a href="#L-6184"><span class="linenos">6184</span></a><span class="sd"> Args:</span>
-</span><span id="L-6185"><a href="#L-6185"><span class="linenos">6185</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
-</span><span id="L-6186"><a href="#L-6186"><span class="linenos">6186</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-6187"><a href="#L-6187"><span class="linenos">6187</span></a><span class="sd"> alias: the alias name to use.</span>
-</span><span id="L-6188"><a href="#L-6188"><span class="linenos">6188</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-6189"><a href="#L-6189"><span class="linenos">6189</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="L-6184"><a href="#L-6184"><span class="linenos">6184</span></a>
+</span><span id="L-6185"><a href="#L-6185"><span class="linenos">6185</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-6186"><a href="#L-6186"><span class="linenos">6186</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-6187"><a href="#L-6187"><span class="linenos">6187</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-6188"><a href="#L-6188"><span class="linenos">6188</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-6189"><a href="#L-6189"><span class="linenos">6189</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-6190"><a href="#L-6190"><span class="linenos">6190</span></a>
-</span><span id="L-6191"><a href="#L-6191"><span class="linenos">6191</span></a><span class="sd"> Returns:</span>
-</span><span id="L-6192"><a href="#L-6192"><span class="linenos">6192</span></a><span class="sd"> A new Select instance with the subquery expression included.</span>
-</span><span id="L-6193"><a href="#L-6193"><span class="linenos">6193</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6191"><a href="#L-6191"><span class="linenos">6191</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-6192"><a href="#L-6192"><span class="linenos">6192</span></a>
+</span><span id="L-6193"><a href="#L-6193"><span class="linenos">6193</span></a> <span class="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-6194"><a href="#L-6194"><span class="linenos">6194</span></a>
-</span><span id="L-6195"><a href="#L-6195"><span class="linenos">6195</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-6196"><a href="#L-6196"><span class="linenos">6196</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-6195"><a href="#L-6195"><span class="linenos">6195</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-6196"><a href="#L-6196"><span class="linenos">6196</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-6197"><a href="#L-6197"><span class="linenos">6197</span></a>
-</span><span id="L-6198"><a href="#L-6198"><span class="linenos">6198</span></a>
-</span><span id="L-6199"><a href="#L-6199"><span class="linenos">6199</span></a><span class="k">def</span> <span class="nf">column</span><span class="p">(</span>
-</span><span id="L-6200"><a href="#L-6200"><span class="linenos">6200</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-6201"><a href="#L-6201"><span class="linenos">6201</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-6202"><a href="#L-6202"><span class="linenos">6202</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-6203"><a href="#L-6203"><span class="linenos">6203</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-6204"><a href="#L-6204"><span class="linenos">6204</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-6205"><a href="#L-6205"><span class="linenos">6205</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Column</span><span class="p">:</span>
-</span><span id="L-6206"><a href="#L-6206"><span class="linenos">6206</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-6207"><a href="#L-6207"><span class="linenos">6207</span></a><span class="sd"> Build a Column.</span>
+</span><span id="L-6198"><a href="#L-6198"><span class="linenos">6198</span></a> <span class="k">return</span> <span class="n">Interval</span><span class="p">(</span>
+</span><span id="L-6199"><a href="#L-6199"><span class="linenos">6199</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-6200"><a href="#L-6200"><span class="linenos">6200</span></a> <span class="n">unit</span><span class="o">=</span><span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">interval_parts</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()),</span>
+</span><span id="L-6201"><a href="#L-6201"><span class="linenos">6201</span></a> <span class="p">)</span>
+</span><span id="L-6202"><a href="#L-6202"><span class="linenos">6202</span></a>
+</span><span id="L-6203"><a href="#L-6203"><span class="linenos">6203</span></a>
+</span><span id="L-6204"><a href="#L-6204"><span class="linenos">6204</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="L-6205"><a href="#L-6205"><span class="linenos">6205</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-6206"><a href="#L-6206"><span class="linenos">6206</span></a> <span class="o">...</span>
+</span><span id="L-6207"><a href="#L-6207"><span class="linenos">6207</span></a>
</span><span id="L-6208"><a href="#L-6208"><span class="linenos">6208</span></a>
-</span><span id="L-6209"><a href="#L-6209"><span class="linenos">6209</span></a><span class="sd"> Args:</span>
-</span><span id="L-6210"><a href="#L-6210"><span class="linenos">6210</span></a><span class="sd"> col: Column name.</span>
-</span><span id="L-6211"><a href="#L-6211"><span class="linenos">6211</span></a><span class="sd"> table: Table name.</span>
-</span><span id="L-6212"><a href="#L-6212"><span class="linenos">6212</span></a><span class="sd"> db: Database name.</span>
-</span><span id="L-6213"><a href="#L-6213"><span class="linenos">6213</span></a><span class="sd"> catalog: Catalog name.</span>
-</span><span id="L-6214"><a href="#L-6214"><span class="linenos">6214</span></a><span class="sd"> quoted: Whether to force quotes on the column&#39;s identifiers.</span>
-</span><span id="L-6215"><a href="#L-6215"><span class="linenos">6215</span></a>
-</span><span id="L-6216"><a href="#L-6216"><span class="linenos">6216</span></a><span class="sd"> Returns:</span>
-</span><span id="L-6217"><a href="#L-6217"><span class="linenos">6217</span></a><span class="sd"> The new Column instance.</span>
-</span><span id="L-6218"><a href="#L-6218"><span class="linenos">6218</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6219"><a href="#L-6219"><span class="linenos">6219</span></a> <span class="k">return</span> <span class="n">Column</span><span class="p">(</span>
-</span><span id="L-6220"><a href="#L-6220"><span class="linenos">6220</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-6221"><a href="#L-6221"><span class="linenos">6221</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-6222"><a href="#L-6222"><span class="linenos">6222</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-6223"><a href="#L-6223"><span class="linenos">6223</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-6224"><a href="#L-6224"><span class="linenos">6224</span></a> <span class="p">)</span>
-</span><span id="L-6225"><a href="#L-6225"><span class="linenos">6225</span></a>
+</span><span id="L-6209"><a href="#L-6209"><span class="linenos">6209</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="L-6210"><a href="#L-6210"><span class="linenos">6210</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-6211"><a href="#L-6211"><span class="linenos">6211</span></a> <span class="o">...</span>
+</span><span id="L-6212"><a href="#L-6212"><span class="linenos">6212</span></a>
+</span><span id="L-6213"><a href="#L-6213"><span class="linenos">6213</span></a>
+</span><span id="L-6214"><a href="#L-6214"><span class="linenos">6214</span></a><span class="k">def</span> <span class="nf">to_table</span><span class="p">(</span>
+</span><span id="L-6215"><a href="#L-6215"><span class="linenos">6215</span></a> <span class="n">sql_path</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">],</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span>
+</span><span id="L-6216"><a href="#L-6216"><span class="linenos">6216</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Table</span><span class="p">]:</span>
+</span><span id="L-6217"><a href="#L-6217"><span class="linenos">6217</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-6218"><a href="#L-6218"><span class="linenos">6218</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-6219"><a href="#L-6219"><span class="linenos">6219</span></a><span class="sd"> If a table is passed in then that table is returned.</span>
+</span><span id="L-6220"><a href="#L-6220"><span class="linenos">6220</span></a>
+</span><span id="L-6221"><a href="#L-6221"><span class="linenos">6221</span></a><span class="sd"> Args:</span>
+</span><span id="L-6222"><a href="#L-6222"><span class="linenos">6222</span></a><span class="sd"> sql_path: a `[catalog].[schema].[table]` string.</span>
+</span><span id="L-6223"><a href="#L-6223"><span class="linenos">6223</span></a><span class="sd"> dialect: the source dialect according to which the table name will be parsed.</span>
+</span><span id="L-6224"><a href="#L-6224"><span class="linenos">6224</span></a><span class="sd"> copy: Whether or not to copy a table if it is passed in.</span>
+</span><span id="L-6225"><a href="#L-6225"><span class="linenos">6225</span></a><span class="sd"> kwargs: the kwargs to instantiate the resulting `Table` expression with.</span>
</span><span id="L-6226"><a href="#L-6226"><span class="linenos">6226</span></a>
-</span><span id="L-6227"><a href="#L-6227"><span class="linenos">6227</span></a><span class="k">def</span> <span class="nf">cast</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">to</span><span class="p">:</span> <span class="n">DATA_TYPE</span><span class="p">,</span> <span class="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-6228"><a href="#L-6228"><span class="linenos">6228</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Cast an expression to a data type.</span>
-</span><span id="L-6229"><a href="#L-6229"><span class="linenos">6229</span></a>
-</span><span id="L-6230"><a href="#L-6230"><span class="linenos">6230</span></a><span class="sd"> Example:</span>
-</span><span id="L-6231"><a href="#L-6231"><span class="linenos">6231</span></a><span class="sd"> &gt;&gt;&gt; cast(&#39;x + 1&#39;, &#39;int&#39;).sql()</span>
-</span><span id="L-6232"><a href="#L-6232"><span class="linenos">6232</span></a><span class="sd"> &#39;CAST(x + 1 AS INT)&#39;</span>
-</span><span id="L-6233"><a href="#L-6233"><span class="linenos">6233</span></a>
-</span><span id="L-6234"><a href="#L-6234"><span class="linenos">6234</span></a><span class="sd"> Args:</span>
-</span><span id="L-6235"><a href="#L-6235"><span class="linenos">6235</span></a><span class="sd"> expression: The expression to cast.</span>
-</span><span id="L-6236"><a href="#L-6236"><span class="linenos">6236</span></a><span class="sd"> to: The datatype to cast to.</span>
-</span><span id="L-6237"><a href="#L-6237"><span class="linenos">6237</span></a>
-</span><span id="L-6238"><a href="#L-6238"><span class="linenos">6238</span></a><span class="sd"> Returns:</span>
-</span><span id="L-6239"><a href="#L-6239"><span class="linenos">6239</span></a><span class="sd"> The new Cast instance.</span>
-</span><span id="L-6240"><a href="#L-6240"><span class="linenos">6240</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6241"><a href="#L-6241"><span class="linenos">6241</span></a> <span class="n">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-6242"><a href="#L-6242"><span class="linenos">6242</span></a> <span class="n">data_type</span> <span class="o">=</span> <span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">to</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-6243"><a href="#L-6243"><span class="linenos">6243</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">Cast</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">data_type</span><span class="p">)</span>
-</span><span id="L-6244"><a href="#L-6244"><span class="linenos">6244</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">type</span> <span class="o">=</span> <span class="n">data_type</span>
-</span><span id="L-6245"><a href="#L-6245"><span class="linenos">6245</span></a> <span class="k">return</span> <span class="n">expression</span>
+</span><span id="L-6227"><a href="#L-6227"><span class="linenos">6227</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6228"><a href="#L-6228"><span class="linenos">6228</span></a><span class="sd"> A table expression.</span>
+</span><span id="L-6229"><a href="#L-6229"><span class="linenos">6229</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6230"><a href="#L-6230"><span class="linenos">6230</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-6231"><a href="#L-6231"><span class="linenos">6231</span></a> <span class="k">return</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span>
+</span><span id="L-6232"><a href="#L-6232"><span class="linenos">6232</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-6233"><a href="#L-6233"><span class="linenos">6233</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-6234"><a href="#L-6234"><span class="linenos">6234</span></a>
+</span><span id="L-6235"><a href="#L-6235"><span class="linenos">6235</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span>
+</span><span id="L-6236"><a href="#L-6236"><span class="linenos">6236</span></a> <span class="k">if</span> <span class="n">table</span><span class="p">:</span>
+</span><span id="L-6237"><a href="#L-6237"><span class="linenos">6237</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+</span><span id="L-6238"><a href="#L-6238"><span class="linenos">6238</span></a> <span class="n">table</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
+</span><span id="L-6239"><a href="#L-6239"><span class="linenos">6239</span></a>
+</span><span id="L-6240"><a href="#L-6240"><span class="linenos">6240</span></a> <span class="k">return</span> <span class="n">table</span>
+</span><span id="L-6241"><a href="#L-6241"><span class="linenos">6241</span></a>
+</span><span id="L-6242"><a href="#L-6242"><span class="linenos">6242</span></a>
+</span><span id="L-6243"><a href="#L-6243"><span class="linenos">6243</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-6244"><a href="#L-6244"><span class="linenos">6244</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-6245"><a href="#L-6245"><span class="linenos">6245</span></a><span class="sd"> Create a column from a `[table].[column]` sql path. Schema is optional.</span>
</span><span id="L-6246"><a href="#L-6246"><span class="linenos">6246</span></a>
-</span><span id="L-6247"><a href="#L-6247"><span class="linenos">6247</span></a>
-</span><span id="L-6248"><a href="#L-6248"><span class="linenos">6248</span></a><span class="k">def</span> <span class="nf">table_</span><span class="p">(</span>
-</span><span id="L-6249"><a href="#L-6249"><span class="linenos">6249</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">,</span>
-</span><span id="L-6250"><a href="#L-6250"><span class="linenos">6250</span></a> <span class="n">db</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-6251"><a href="#L-6251"><span class="linenos">6251</span></a> <span class="n">catalog</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-6252"><a href="#L-6252"><span class="linenos">6252</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-6253"><a href="#L-6253"><span class="linenos">6253</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-6254"><a href="#L-6254"><span class="linenos">6254</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Table</span><span class="p">:</span>
-</span><span id="L-6255"><a href="#L-6255"><span class="linenos">6255</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a Table.</span>
-</span><span id="L-6256"><a href="#L-6256"><span class="linenos">6256</span></a>
-</span><span id="L-6257"><a href="#L-6257"><span class="linenos">6257</span></a><span class="sd"> Args:</span>
-</span><span id="L-6258"><a href="#L-6258"><span class="linenos">6258</span></a><span class="sd"> table: Table name.</span>
-</span><span id="L-6259"><a href="#L-6259"><span class="linenos">6259</span></a><span class="sd"> db: Database name.</span>
-</span><span id="L-6260"><a href="#L-6260"><span class="linenos">6260</span></a><span class="sd"> catalog: Catalog name.</span>
-</span><span id="L-6261"><a href="#L-6261"><span class="linenos">6261</span></a><span class="sd"> quote: Whether to force quotes on the table&#39;s identifiers.</span>
-</span><span id="L-6262"><a href="#L-6262"><span class="linenos">6262</span></a><span class="sd"> alias: Table&#39;s alias.</span>
-</span><span id="L-6263"><a href="#L-6263"><span class="linenos">6263</span></a>
-</span><span id="L-6264"><a href="#L-6264"><span class="linenos">6264</span></a><span class="sd"> Returns:</span>
-</span><span id="L-6265"><a href="#L-6265"><span class="linenos">6265</span></a><span class="sd"> The new Table instance.</span>
-</span><span id="L-6266"><a href="#L-6266"><span class="linenos">6266</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6267"><a href="#L-6267"><span class="linenos">6267</span></a> <span class="k">return</span> <span class="n">Table</span><span class="p">(</span>
-</span><span id="L-6268"><a href="#L-6268"><span class="linenos">6268</span></a> <span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">)</span> <span class="k">if</span> <span class="n">table</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-6269"><a href="#L-6269"><span class="linenos">6269</span></a> <span class="n">db</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">db</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">)</span> <span class="k">if</span> <span class="n">db</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-6270"><a href="#L-6270"><span class="linenos">6270</span></a> <span class="n">catalog</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">catalog</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">)</span> <span class="k">if</span> <span class="n">catalog</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-6271"><a href="#L-6271"><span class="linenos">6271</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-6272"><a href="#L-6272"><span class="linenos">6272</span></a> <span class="p">)</span>
-</span><span id="L-6273"><a href="#L-6273"><span class="linenos">6273</span></a>
-</span><span id="L-6274"><a href="#L-6274"><span class="linenos">6274</span></a>
-</span><span id="L-6275"><a href="#L-6275"><span class="linenos">6275</span></a><span class="k">def</span> <span class="nf">values</span><span class="p">(</span>
-</span><span id="L-6276"><a href="#L-6276"><span class="linenos">6276</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-6277"><a href="#L-6277"><span class="linenos">6277</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-6278"><a href="#L-6278"><span class="linenos">6278</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-6279"><a href="#L-6279"><span class="linenos">6279</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Values</span><span class="p">:</span>
-</span><span id="L-6280"><a href="#L-6280"><span class="linenos">6280</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build VALUES statement.</span>
-</span><span id="L-6281"><a href="#L-6281"><span class="linenos">6281</span></a>
-</span><span id="L-6282"><a href="#L-6282"><span class="linenos">6282</span></a><span class="sd"> Example:</span>
-</span><span id="L-6283"><a href="#L-6283"><span class="linenos">6283</span></a><span class="sd"> &gt;&gt;&gt; values([(1, &#39;2&#39;)]).sql()</span>
-</span><span id="L-6284"><a href="#L-6284"><span class="linenos">6284</span></a><span class="sd"> &quot;VALUES (1, &#39;2&#39;)&quot;</span>
-</span><span id="L-6285"><a href="#L-6285"><span class="linenos">6285</span></a>
-</span><span id="L-6286"><a href="#L-6286"><span class="linenos">6286</span></a><span class="sd"> Args:</span>
-</span><span id="L-6287"><a href="#L-6287"><span class="linenos">6287</span></a><span class="sd"> values: values statements that will be converted to SQL</span>
-</span><span id="L-6288"><a href="#L-6288"><span class="linenos">6288</span></a><span class="sd"> alias: optional alias</span>
-</span><span id="L-6289"><a href="#L-6289"><span class="linenos">6289</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-6290"><a href="#L-6290"><span class="linenos">6290</span></a><span class="sd"> If either are provided then an alias is also required.</span>
-</span><span id="L-6291"><a href="#L-6291"><span class="linenos">6291</span></a>
-</span><span id="L-6292"><a href="#L-6292"><span class="linenos">6292</span></a><span class="sd"> Returns:</span>
-</span><span id="L-6293"><a href="#L-6293"><span class="linenos">6293</span></a><span class="sd"> Values: the Values expression object</span>
-</span><span id="L-6294"><a href="#L-6294"><span class="linenos">6294</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6295"><a href="#L-6295"><span class="linenos">6295</span></a> <span class="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-6296"><a href="#L-6296"><span class="linenos">6296</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-6297"><a href="#L-6297"><span class="linenos">6297</span></a>
-</span><span id="L-6298"><a href="#L-6298"><span class="linenos">6298</span></a> <span class="k">return</span> <span class="n">Values</span><span class="p">(</span>
-</span><span id="L-6299"><a href="#L-6299"><span class="linenos">6299</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-6300"><a href="#L-6300"><span class="linenos">6300</span></a> <span class="n">alias</span><span class="o">=</span><span class="p">(</span>
-</span><span id="L-6301"><a href="#L-6301"><span class="linenos">6301</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-6302"><a href="#L-6302"><span class="linenos">6302</span></a> <span class="k">if</span> <span class="n">columns</span>
-</span><span id="L-6303"><a href="#L-6303"><span class="linenos">6303</span></a> <span class="k">else</span> <span class="p">(</span><span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">))</span> <span class="k">if</span> <span class="n">alias</span> <span class="k">else</span> <span class="kc">None</span><span class="p">)</span>
-</span><span id="L-6304"><a href="#L-6304"><span class="linenos">6304</span></a> <span class="p">),</span>
-</span><span id="L-6305"><a href="#L-6305"><span class="linenos">6305</span></a> <span class="p">)</span>
-</span><span id="L-6306"><a href="#L-6306"><span class="linenos">6306</span></a>
-</span><span id="L-6307"><a href="#L-6307"><span class="linenos">6307</span></a>
-</span><span id="L-6308"><a href="#L-6308"><span class="linenos">6308</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-6309"><a href="#L-6309"><span class="linenos">6309</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a SQL variable.</span>
-</span><span id="L-6310"><a href="#L-6310"><span class="linenos">6310</span></a>
-</span><span id="L-6311"><a href="#L-6311"><span class="linenos">6311</span></a><span class="sd"> Example:</span>
-</span><span id="L-6312"><a href="#L-6312"><span class="linenos">6312</span></a><span class="sd"> &gt;&gt;&gt; repr(var(&#39;x&#39;))</span>
-</span><span id="L-6313"><a href="#L-6313"><span class="linenos">6313</span></a><span class="sd"> &#39;(VAR this: x)&#39;</span>
-</span><span id="L-6314"><a href="#L-6314"><span class="linenos">6314</span></a>
-</span><span id="L-6315"><a href="#L-6315"><span class="linenos">6315</span></a><span class="sd"> &gt;&gt;&gt; repr(var(column(&#39;x&#39;, table=&#39;y&#39;)))</span>
-</span><span id="L-6316"><a href="#L-6316"><span class="linenos">6316</span></a><span class="sd"> &#39;(VAR this: x)&#39;</span>
+</span><span id="L-6247"><a href="#L-6247"><span class="linenos">6247</span></a><span class="sd"> If a column is passed in then that column is returned.</span>
+</span><span id="L-6248"><a href="#L-6248"><span class="linenos">6248</span></a>
+</span><span id="L-6249"><a href="#L-6249"><span class="linenos">6249</span></a><span class="sd"> Args:</span>
+</span><span id="L-6250"><a href="#L-6250"><span class="linenos">6250</span></a><span class="sd"> sql_path: `[table].[column]` string</span>
+</span><span id="L-6251"><a href="#L-6251"><span class="linenos">6251</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6252"><a href="#L-6252"><span class="linenos">6252</span></a><span class="sd"> Table: A column expression</span>
+</span><span id="L-6253"><a href="#L-6253"><span class="linenos">6253</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6254"><a href="#L-6254"><span class="linenos">6254</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-6255"><a href="#L-6255"><span class="linenos">6255</span></a> <span class="k">return</span> <span class="n">sql_path</span>
+</span><span id="L-6256"><a href="#L-6256"><span class="linenos">6256</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-6257"><a href="#L-6257"><span class="linenos">6257</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-6258"><a href="#L-6258"><span class="linenos">6258</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-6259"><a href="#L-6259"><span class="linenos">6259</span></a>
+</span><span id="L-6260"><a href="#L-6260"><span class="linenos">6260</span></a>
+</span><span id="L-6261"><a href="#L-6261"><span class="linenos">6261</span></a><span class="k">def</span> <span class="nf">alias_</span><span class="p">(</span>
+</span><span id="L-6262"><a href="#L-6262"><span class="linenos">6262</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-6263"><a href="#L-6263"><span class="linenos">6263</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-6264"><a href="#L-6264"><span class="linenos">6264</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-6265"><a href="#L-6265"><span class="linenos">6265</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-6266"><a href="#L-6266"><span class="linenos">6266</span></a> <span class="n">dialect</span><span 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-6267"><a href="#L-6267"><span class="linenos">6267</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-6268"><a href="#L-6268"><span class="linenos">6268</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-6269"><a href="#L-6269"><span class="linenos">6269</span></a><span class="p">):</span>
+</span><span id="L-6270"><a href="#L-6270"><span class="linenos">6270</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Create an Alias expression.</span>
+</span><span id="L-6271"><a href="#L-6271"><span class="linenos">6271</span></a>
+</span><span id="L-6272"><a href="#L-6272"><span class="linenos">6272</span></a><span class="sd"> Example:</span>
+</span><span id="L-6273"><a href="#L-6273"><span class="linenos">6273</span></a><span class="sd"> &gt;&gt;&gt; alias_(&#39;foo&#39;, &#39;bar&#39;).sql()</span>
+</span><span id="L-6274"><a href="#L-6274"><span class="linenos">6274</span></a><span class="sd"> &#39;foo AS bar&#39;</span>
+</span><span id="L-6275"><a href="#L-6275"><span class="linenos">6275</span></a>
+</span><span id="L-6276"><a href="#L-6276"><span class="linenos">6276</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-6277"><a href="#L-6277"><span class="linenos">6277</span></a><span class="sd"> &#39;(SELECT 1, 2) AS bar(a, b)&#39;</span>
+</span><span id="L-6278"><a href="#L-6278"><span class="linenos">6278</span></a>
+</span><span id="L-6279"><a href="#L-6279"><span class="linenos">6279</span></a><span class="sd"> Args:</span>
+</span><span id="L-6280"><a href="#L-6280"><span class="linenos">6280</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
+</span><span id="L-6281"><a href="#L-6281"><span class="linenos">6281</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-6282"><a href="#L-6282"><span class="linenos">6282</span></a><span class="sd"> alias: the alias name to use. If the name has</span>
+</span><span id="L-6283"><a href="#L-6283"><span class="linenos">6283</span></a><span class="sd"> special characters it is quoted.</span>
+</span><span id="L-6284"><a href="#L-6284"><span class="linenos">6284</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-6285"><a href="#L-6285"><span class="linenos">6285</span></a><span class="sd"> quoted: whether or not to quote the alias</span>
+</span><span id="L-6286"><a href="#L-6286"><span class="linenos">6286</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-6287"><a href="#L-6287"><span class="linenos">6287</span></a><span class="sd"> copy: Whether or not to copy the expression.</span>
+</span><span id="L-6288"><a href="#L-6288"><span class="linenos">6288</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="L-6289"><a href="#L-6289"><span class="linenos">6289</span></a>
+</span><span id="L-6290"><a href="#L-6290"><span class="linenos">6290</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6291"><a href="#L-6291"><span class="linenos">6291</span></a><span class="sd"> Alias: the aliased expression</span>
+</span><span id="L-6292"><a href="#L-6292"><span class="linenos">6292</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6293"><a href="#L-6293"><span class="linenos">6293</span></a> <span class="n">exp</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-6294"><a href="#L-6294"><span class="linenos">6294</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-6295"><a href="#L-6295"><span class="linenos">6295</span></a>
+</span><span id="L-6296"><a href="#L-6296"><span class="linenos">6296</span></a> <span class="k">if</span> <span class="n">table</span><span class="p">:</span>
+</span><span id="L-6297"><a href="#L-6297"><span class="linenos">6297</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-6298"><a href="#L-6298"><span class="linenos">6298</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-6299"><a href="#L-6299"><span class="linenos">6299</span></a>
+</span><span id="L-6300"><a href="#L-6300"><span class="linenos">6300</span></a> <span class="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-6301"><a href="#L-6301"><span class="linenos">6301</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-6302"><a href="#L-6302"><span class="linenos">6302</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-6303"><a href="#L-6303"><span class="linenos">6303</span></a>
+</span><span id="L-6304"><a href="#L-6304"><span class="linenos">6304</span></a> <span class="k">return</span> <span class="n">exp</span>
+</span><span id="L-6305"><a href="#L-6305"><span class="linenos">6305</span></a>
+</span><span id="L-6306"><a href="#L-6306"><span class="linenos">6306</span></a> <span class="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-6307"><a href="#L-6307"><span class="linenos">6307</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-6308"><a href="#L-6308"><span class="linenos">6308</span></a> <span class="c1"># for the complete Window expression.</span>
+</span><span id="L-6309"><a href="#L-6309"><span class="linenos">6309</span></a> <span class="c1">#</span>
+</span><span id="L-6310"><a href="#L-6310"><span class="linenos">6310</span></a> <span class="c1"># [1]: https://cloud.google.com/bigquery/docs/reference/standard-sql/window-function-calls</span>
+</span><span id="L-6311"><a href="#L-6311"><span class="linenos">6311</span></a>
+</span><span id="L-6312"><a href="#L-6312"><span class="linenos">6312</span></a> <span class="k">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-6313"><a href="#L-6313"><span class="linenos">6313</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-6314"><a href="#L-6314"><span class="linenos">6314</span></a> <span class="k">return</span> <span class="n">exp</span>
+</span><span id="L-6315"><a href="#L-6315"><span class="linenos">6315</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-6316"><a href="#L-6316"><span class="linenos">6316</span></a>
</span><span id="L-6317"><a href="#L-6317"><span class="linenos">6317</span></a>
-</span><span id="L-6318"><a href="#L-6318"><span class="linenos">6318</span></a><span class="sd"> Args:</span>
-</span><span id="L-6319"><a href="#L-6319"><span class="linenos">6319</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-6320"><a href="#L-6320"><span class="linenos">6320</span></a>
-</span><span id="L-6321"><a href="#L-6321"><span class="linenos">6321</span></a><span class="sd"> Returns:</span>
-</span><span id="L-6322"><a href="#L-6322"><span class="linenos">6322</span></a><span class="sd"> The new variable node.</span>
-</span><span id="L-6323"><a href="#L-6323"><span class="linenos">6323</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6324"><a href="#L-6324"><span class="linenos">6324</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-6325"><a href="#L-6325"><span class="linenos">6325</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-6318"><a href="#L-6318"><span class="linenos">6318</span></a><span class="k">def</span> <span class="nf">subquery</span><span class="p">(</span>
+</span><span id="L-6319"><a href="#L-6319"><span class="linenos">6319</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-6320"><a href="#L-6320"><span class="linenos">6320</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-6321"><a href="#L-6321"><span class="linenos">6321</span></a> <span class="n">dialect</span><span 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-6322"><a href="#L-6322"><span class="linenos">6322</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-6323"><a href="#L-6323"><span class="linenos">6323</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-6324"><a href="#L-6324"><span class="linenos">6324</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-6325"><a href="#L-6325"><span class="linenos">6325</span></a><span class="sd"> Build a subquery expression.</span>
</span><span id="L-6326"><a href="#L-6326"><span class="linenos">6326</span></a>
-</span><span id="L-6327"><a href="#L-6327"><span class="linenos">6327</span></a> <span 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-6328"><a href="#L-6328"><span class="linenos">6328</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-6329"><a href="#L-6329"><span class="linenos">6329</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-6327"><a href="#L-6327"><span class="linenos">6327</span></a><span class="sd"> Example:</span>
+</span><span id="L-6328"><a href="#L-6328"><span class="linenos">6328</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-6329"><a href="#L-6329"><span class="linenos">6329</span></a><span class="sd"> &#39;SELECT x FROM (SELECT x FROM tbl) AS bar&#39;</span>
</span><span id="L-6330"><a href="#L-6330"><span class="linenos">6330</span></a>
-</span><span id="L-6331"><a href="#L-6331"><span class="linenos">6331</span></a>
-</span><span id="L-6332"><a href="#L-6332"><span class="linenos">6332</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-6333"><a href="#L-6333"><span class="linenos">6333</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build ALTER TABLE... RENAME... expression</span>
-</span><span id="L-6334"><a href="#L-6334"><span class="linenos">6334</span></a>
-</span><span id="L-6335"><a href="#L-6335"><span class="linenos">6335</span></a><span class="sd"> Args:</span>
-</span><span id="L-6336"><a href="#L-6336"><span class="linenos">6336</span></a><span class="sd"> old_name: The old name of the table</span>
-</span><span id="L-6337"><a href="#L-6337"><span class="linenos">6337</span></a><span class="sd"> new_name: The new name of the table</span>
-</span><span id="L-6338"><a href="#L-6338"><span class="linenos">6338</span></a>
-</span><span id="L-6339"><a href="#L-6339"><span class="linenos">6339</span></a><span class="sd"> Returns:</span>
-</span><span id="L-6340"><a href="#L-6340"><span class="linenos">6340</span></a><span class="sd"> Alter table expression</span>
-</span><span id="L-6341"><a href="#L-6341"><span class="linenos">6341</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6342"><a href="#L-6342"><span class="linenos">6342</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-6343"><a href="#L-6343"><span class="linenos">6343</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-6344"><a href="#L-6344"><span class="linenos">6344</span></a> <span class="k">return</span> <span class="n">AlterTable</span><span class="p">(</span>
-</span><span id="L-6345"><a href="#L-6345"><span class="linenos">6345</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-6346"><a href="#L-6346"><span class="linenos">6346</span></a> <span class="n">actions</span><span class="o">=</span><span class="p">[</span>
-</span><span id="L-6347"><a href="#L-6347"><span class="linenos">6347</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-6348"><a href="#L-6348"><span class="linenos">6348</span></a> <span class="p">],</span>
-</span><span id="L-6349"><a href="#L-6349"><span class="linenos">6349</span></a> <span class="p">)</span>
-</span><span id="L-6350"><a href="#L-6350"><span class="linenos">6350</span></a>
-</span><span id="L-6351"><a href="#L-6351"><span class="linenos">6351</span></a>
-</span><span id="L-6352"><a href="#L-6352"><span class="linenos">6352</span></a><span class="k">def</span> <span class="nf">convert</span><span class="p">(</span><span class="n">value</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="L-6353"><a href="#L-6353"><span class="linenos">6353</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-6354"><a href="#L-6354"><span class="linenos">6354</span></a>
-</span><span id="L-6355"><a href="#L-6355"><span class="linenos">6355</span></a><span class="sd"> Raises an error if a conversion is not possible.</span>
-</span><span id="L-6356"><a href="#L-6356"><span class="linenos">6356</span></a>
-</span><span id="L-6357"><a href="#L-6357"><span class="linenos">6357</span></a><span class="sd"> Args:</span>
-</span><span id="L-6358"><a href="#L-6358"><span class="linenos">6358</span></a><span class="sd"> value: A python object.</span>
-</span><span id="L-6359"><a href="#L-6359"><span class="linenos">6359</span></a><span class="sd"> copy: Whether or not to copy `value` (only applies to Expressions and collections).</span>
-</span><span id="L-6360"><a href="#L-6360"><span class="linenos">6360</span></a>
-</span><span id="L-6361"><a href="#L-6361"><span class="linenos">6361</span></a><span class="sd"> Returns:</span>
-</span><span id="L-6362"><a href="#L-6362"><span class="linenos">6362</span></a><span class="sd"> Expression: the equivalent expression object.</span>
-</span><span id="L-6363"><a href="#L-6363"><span class="linenos">6363</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6364"><a href="#L-6364"><span class="linenos">6364</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-6365"><a href="#L-6365"><span class="linenos">6365</span></a> <span class="k">return</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
-</span><span id="L-6366"><a href="#L-6366"><span class="linenos">6366</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-6367"><a href="#L-6367"><span class="linenos">6367</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-6368"><a href="#L-6368"><span class="linenos">6368</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-6369"><a href="#L-6369"><span class="linenos">6369</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-6370"><a href="#L-6370"><span class="linenos">6370</span></a> <span class="k">if</span> <span class="n">value</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">float</span><span class="p">)</span> <span class="ow">and</span> <span class="n">math</span><span class="o">.</span><span class="n">isnan</span><span class="p">(</span><span class="n">value</span><span class="p">)):</span>
-</span><span id="L-6371"><a href="#L-6371"><span class="linenos">6371</span></a> <span class="k">return</span> <span class="n">NULL</span>
-</span><span id="L-6372"><a href="#L-6372"><span class="linenos">6372</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-6373"><a href="#L-6373"><span class="linenos">6373</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-6374"><a href="#L-6374"><span class="linenos">6374</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-6375"><a href="#L-6375"><span class="linenos">6375</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-6376"><a href="#L-6376"><span class="linenos">6376</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-6377"><a href="#L-6377"><span class="linenos">6377</span></a> <span class="p">)</span>
-</span><span id="L-6378"><a href="#L-6378"><span class="linenos">6378</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-6379"><a href="#L-6379"><span class="linenos">6379</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-6380"><a href="#L-6380"><span class="linenos">6380</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-6381"><a href="#L-6381"><span class="linenos">6381</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-6382"><a href="#L-6382"><span class="linenos">6382</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-6383"><a href="#L-6383"><span class="linenos">6383</span></a> <span class="k">return</span> <span class="n">Tuple</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">])</span>
-</span><span id="L-6384"><a href="#L-6384"><span class="linenos">6384</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-6385"><a href="#L-6385"><span class="linenos">6385</span></a> <span class="k">return</span> <span class="n">Array</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">])</span>
-</span><span id="L-6386"><a href="#L-6386"><span class="linenos">6386</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-6387"><a href="#L-6387"><span class="linenos">6387</span></a> <span class="k">return</span> <span class="n">Map</span><span class="p">(</span>
-</span><span id="L-6388"><a href="#L-6388"><span class="linenos">6388</span></a> <span class="n">keys</span><span class="o">=</span><span class="n">Array</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="n">value</span><span class="p">]),</span>
-</span><span id="L-6389"><a href="#L-6389"><span class="linenos">6389</span></a> <span class="n">values</span><span class="o">=</span><span class="n">Array</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="o">.</span><span class="n">values</span><span class="p">()]),</span>
-</span><span id="L-6390"><a href="#L-6390"><span class="linenos">6390</span></a> <span class="p">)</span>
-</span><span id="L-6391"><a href="#L-6391"><span class="linenos">6391</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-6392"><a href="#L-6392"><span class="linenos">6392</span></a>
-</span><span id="L-6393"><a href="#L-6393"><span class="linenos">6393</span></a>
-</span><span id="L-6394"><a href="#L-6394"><span class="linenos">6394</span></a><span class="k">def</span> <span class="nf">replace_children</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">fun</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="L-6395"><a href="#L-6395"><span class="linenos">6395</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-6396"><a href="#L-6396"><span class="linenos">6396</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-6397"><a href="#L-6397"><span class="linenos">6397</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6398"><a href="#L-6398"><span class="linenos">6398</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-6399"><a href="#L-6399"><span class="linenos">6399</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-6400"><a href="#L-6400"><span class="linenos">6400</span></a>
-</span><span id="L-6401"><a href="#L-6401"><span class="linenos">6401</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-6402"><a href="#L-6402"><span class="linenos">6402</span></a> <span class="n">new_child_nodes</span> <span class="o">=</span> <span class="p">[]</span>
-</span><span id="L-6403"><a href="#L-6403"><span class="linenos">6403</span></a>
-</span><span id="L-6404"><a href="#L-6404"><span class="linenos">6404</span></a> <span 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-6405"><a href="#L-6405"><span class="linenos">6405</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-6406"><a href="#L-6406"><span class="linenos">6406</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-6407"><a href="#L-6407"><span class="linenos">6407</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-6408"><a href="#L-6408"><span class="linenos">6408</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-6409"><a href="#L-6409"><span class="linenos">6409</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-6410"><a href="#L-6410"><span class="linenos">6410</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-6411"><a href="#L-6411"><span class="linenos">6411</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-6412"><a href="#L-6412"><span class="linenos">6412</span></a>
-</span><span id="L-6413"><a href="#L-6413"><span class="linenos">6413</span></a> <span 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-6414"><a href="#L-6414"><span class="linenos">6414</span></a>
-</span><span id="L-6415"><a href="#L-6415"><span class="linenos">6415</span></a>
-</span><span id="L-6416"><a href="#L-6416"><span class="linenos">6416</span></a><span class="k">def</span> <span class="nf">column_table_names</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">exclude</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Set</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
-</span><span id="L-6417"><a href="#L-6417"><span class="linenos">6417</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-6418"><a href="#L-6418"><span class="linenos">6418</span></a><span class="sd"> Return all table names referenced through columns in an expression.</span>
-</span><span id="L-6419"><a href="#L-6419"><span class="linenos">6419</span></a>
-</span><span id="L-6420"><a href="#L-6420"><span class="linenos">6420</span></a><span class="sd"> Example:</span>
-</span><span id="L-6421"><a href="#L-6421"><span class="linenos">6421</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="L-6422"><a href="#L-6422"><span class="linenos">6422</span></a><span class="sd"> &gt;&gt;&gt; sorted(column_table_names(sqlglot.parse_one(&quot;a.b AND c.d AND c.e&quot;)))</span>
-</span><span id="L-6423"><a href="#L-6423"><span class="linenos">6423</span></a><span class="sd"> [&#39;a&#39;, &#39;c&#39;]</span>
-</span><span id="L-6424"><a href="#L-6424"><span class="linenos">6424</span></a>
-</span><span id="L-6425"><a href="#L-6425"><span class="linenos">6425</span></a><span class="sd"> Args:</span>
-</span><span id="L-6426"><a href="#L-6426"><span class="linenos">6426</span></a><span class="sd"> expression: expression to find table names.</span>
-</span><span id="L-6427"><a href="#L-6427"><span class="linenos">6427</span></a><span class="sd"> exclude: a table name to exclude</span>
-</span><span id="L-6428"><a href="#L-6428"><span class="linenos">6428</span></a>
-</span><span id="L-6429"><a href="#L-6429"><span class="linenos">6429</span></a><span class="sd"> Returns:</span>
-</span><span id="L-6430"><a href="#L-6430"><span class="linenos">6430</span></a><span class="sd"> A list of unique names.</span>
-</span><span id="L-6431"><a href="#L-6431"><span class="linenos">6431</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6432"><a href="#L-6432"><span class="linenos">6432</span></a> <span class="k">return</span> <span class="p">{</span>
-</span><span id="L-6433"><a href="#L-6433"><span class="linenos">6433</span></a> <span class="n">table</span>
-</span><span id="L-6434"><a href="#L-6434"><span class="linenos">6434</span></a> <span class="k">for</span> <span class="n">table</span> <span class="ow">in</span> <span class="p">(</span><span class="n">column</span><span class="o">.</span><span class="n">table</span> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="n">Column</span><span class="p">))</span>
-</span><span id="L-6435"><a href="#L-6435"><span class="linenos">6435</span></a> <span class="k">if</span> <span class="n">table</span> <span class="ow">and</span> <span class="n">table</span> <span class="o">!=</span> <span class="n">exclude</span>
-</span><span id="L-6436"><a href="#L-6436"><span class="linenos">6436</span></a> <span class="p">}</span>
-</span><span id="L-6437"><a href="#L-6437"><span class="linenos">6437</span></a>
-</span><span id="L-6438"><a href="#L-6438"><span class="linenos">6438</span></a>
-</span><span id="L-6439"><a href="#L-6439"><span class="linenos">6439</span></a><span class="k">def</span> <span class="nf">table_name</span><span class="p">(</span><span class="n">table</span><span class="p">:</span> <span class="n">Table</span> <span class="o">|</span> <span class="nb">str</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">identify</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-6440"><a href="#L-6440"><span class="linenos">6440</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-6441"><a href="#L-6441"><span class="linenos">6441</span></a>
-</span><span id="L-6442"><a href="#L-6442"><span class="linenos">6442</span></a><span class="sd"> Args:</span>
-</span><span id="L-6443"><a href="#L-6443"><span class="linenos">6443</span></a><span class="sd"> table: Table expression node or string.</span>
-</span><span id="L-6444"><a href="#L-6444"><span class="linenos">6444</span></a><span class="sd"> dialect: The dialect to generate the table name for.</span>
-</span><span id="L-6445"><a href="#L-6445"><span class="linenos">6445</span></a><span class="sd"> identify: Determines when an identifier should be quoted. Possible values are:</span>
-</span><span id="L-6446"><a href="#L-6446"><span class="linenos">6446</span></a><span class="sd"> False (default): Never quote, except in cases where it&#39;s mandatory by the dialect.</span>
-</span><span id="L-6447"><a href="#L-6447"><span class="linenos">6447</span></a><span class="sd"> True: Always quote.</span>
-</span><span id="L-6448"><a href="#L-6448"><span class="linenos">6448</span></a>
-</span><span id="L-6449"><a href="#L-6449"><span class="linenos">6449</span></a><span class="sd"> Examples:</span>
-</span><span id="L-6450"><a href="#L-6450"><span class="linenos">6450</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
-</span><span id="L-6451"><a href="#L-6451"><span class="linenos">6451</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-6452"><a href="#L-6452"><span class="linenos">6452</span></a><span class="sd"> &#39;a.b.c&#39;</span>
-</span><span id="L-6453"><a href="#L-6453"><span class="linenos">6453</span></a>
-</span><span id="L-6454"><a href="#L-6454"><span class="linenos">6454</span></a><span class="sd"> Returns:</span>
-</span><span id="L-6455"><a href="#L-6455"><span class="linenos">6455</span></a><span class="sd"> The table name.</span>
-</span><span id="L-6456"><a href="#L-6456"><span class="linenos">6456</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6331"><a href="#L-6331"><span class="linenos">6331</span></a><span class="sd"> Args:</span>
+</span><span id="L-6332"><a href="#L-6332"><span class="linenos">6332</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
+</span><span id="L-6333"><a href="#L-6333"><span class="linenos">6333</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-6334"><a href="#L-6334"><span class="linenos">6334</span></a><span class="sd"> alias: the alias name to use.</span>
+</span><span id="L-6335"><a href="#L-6335"><span class="linenos">6335</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-6336"><a href="#L-6336"><span class="linenos">6336</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="L-6337"><a href="#L-6337"><span class="linenos">6337</span></a>
+</span><span id="L-6338"><a href="#L-6338"><span class="linenos">6338</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6339"><a href="#L-6339"><span class="linenos">6339</span></a><span class="sd"> A new Select instance with the subquery expression included.</span>
+</span><span id="L-6340"><a href="#L-6340"><span class="linenos">6340</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6341"><a href="#L-6341"><span class="linenos">6341</span></a>
+</span><span id="L-6342"><a href="#L-6342"><span class="linenos">6342</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-6343"><a href="#L-6343"><span class="linenos">6343</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-6344"><a href="#L-6344"><span class="linenos">6344</span></a>
+</span><span id="L-6345"><a href="#L-6345"><span class="linenos">6345</span></a>
+</span><span id="L-6346"><a href="#L-6346"><span class="linenos">6346</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="L-6347"><a href="#L-6347"><span class="linenos">6347</span></a><span class="k">def</span> <span class="nf">column</span><span class="p">(</span>
+</span><span id="L-6348"><a href="#L-6348"><span class="linenos">6348</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-6349"><a href="#L-6349"><span class="linenos">6349</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-6350"><a href="#L-6350"><span class="linenos">6350</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-6351"><a href="#L-6351"><span class="linenos">6351</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-6352"><a href="#L-6352"><span class="linenos">6352</span></a> <span class="o">*</span><span class="p">,</span>
+</span><span id="L-6353"><a href="#L-6353"><span class="linenos">6353</span></a> <span class="n">fields</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Collection</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Identifier</span><span class="p">]],</span>
+</span><span id="L-6354"><a href="#L-6354"><span class="linenos">6354</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-6355"><a href="#L-6355"><span class="linenos">6355</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-6356"><a href="#L-6356"><span class="linenos">6356</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Dot</span><span class="p">:</span>
+</span><span id="L-6357"><a href="#L-6357"><span class="linenos">6357</span></a> <span class="k">pass</span>
+</span><span id="L-6358"><a href="#L-6358"><span class="linenos">6358</span></a>
+</span><span id="L-6359"><a href="#L-6359"><span class="linenos">6359</span></a>
+</span><span id="L-6360"><a href="#L-6360"><span class="linenos">6360</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="L-6361"><a href="#L-6361"><span class="linenos">6361</span></a><span class="k">def</span> <span class="nf">column</span><span class="p">(</span>
+</span><span id="L-6362"><a href="#L-6362"><span class="linenos">6362</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-6363"><a href="#L-6363"><span class="linenos">6363</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-6364"><a href="#L-6364"><span class="linenos">6364</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-6365"><a href="#L-6365"><span class="linenos">6365</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-6366"><a href="#L-6366"><span class="linenos">6366</span></a> <span class="o">*</span><span class="p">,</span>
+</span><span id="L-6367"><a href="#L-6367"><span class="linenos">6367</span></a> <span class="n">fields</span><span class="p">:</span> <span class="n">Lit</span><span class="p">[</span><span class="kc">None</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-6368"><a href="#L-6368"><span class="linenos">6368</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-6369"><a href="#L-6369"><span class="linenos">6369</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-6370"><a href="#L-6370"><span class="linenos">6370</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Column</span><span class="p">:</span>
+</span><span id="L-6371"><a href="#L-6371"><span class="linenos">6371</span></a> <span class="k">pass</span>
+</span><span id="L-6372"><a href="#L-6372"><span class="linenos">6372</span></a>
+</span><span id="L-6373"><a href="#L-6373"><span class="linenos">6373</span></a>
+</span><span id="L-6374"><a href="#L-6374"><span class="linenos">6374</span></a><span class="k">def</span> <span class="nf">column</span><span class="p">(</span>
+</span><span id="L-6375"><a href="#L-6375"><span class="linenos">6375</span></a> <span class="n">col</span><span class="p">,</span>
+</span><span id="L-6376"><a href="#L-6376"><span class="linenos">6376</span></a> <span class="n">table</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-6377"><a href="#L-6377"><span class="linenos">6377</span></a> <span class="n">db</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-6378"><a href="#L-6378"><span class="linenos">6378</span></a> <span class="n">catalog</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-6379"><a href="#L-6379"><span class="linenos">6379</span></a> <span class="o">*</span><span class="p">,</span>
+</span><span id="L-6380"><a href="#L-6380"><span class="linenos">6380</span></a> <span class="n">fields</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-6381"><a href="#L-6381"><span class="linenos">6381</span></a> <span class="n">quoted</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-6382"><a href="#L-6382"><span class="linenos">6382</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-6383"><a href="#L-6383"><span class="linenos">6383</span></a><span class="p">):</span>
+</span><span id="L-6384"><a href="#L-6384"><span class="linenos">6384</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-6385"><a href="#L-6385"><span class="linenos">6385</span></a><span class="sd"> Build a Column.</span>
+</span><span id="L-6386"><a href="#L-6386"><span class="linenos">6386</span></a>
+</span><span id="L-6387"><a href="#L-6387"><span class="linenos">6387</span></a><span class="sd"> Args:</span>
+</span><span id="L-6388"><a href="#L-6388"><span class="linenos">6388</span></a><span class="sd"> col: Column name.</span>
+</span><span id="L-6389"><a href="#L-6389"><span class="linenos">6389</span></a><span class="sd"> table: Table name.</span>
+</span><span id="L-6390"><a href="#L-6390"><span class="linenos">6390</span></a><span class="sd"> db: Database name.</span>
+</span><span id="L-6391"><a href="#L-6391"><span class="linenos">6391</span></a><span class="sd"> catalog: Catalog name.</span>
+</span><span id="L-6392"><a href="#L-6392"><span class="linenos">6392</span></a><span class="sd"> fields: Additional fields using dots.</span>
+</span><span id="L-6393"><a href="#L-6393"><span class="linenos">6393</span></a><span class="sd"> quoted: Whether to force quotes on the column&#39;s identifiers.</span>
+</span><span id="L-6394"><a href="#L-6394"><span class="linenos">6394</span></a><span class="sd"> copy: Whether or not to copy identifiers if passed in.</span>
+</span><span id="L-6395"><a href="#L-6395"><span class="linenos">6395</span></a>
+</span><span id="L-6396"><a href="#L-6396"><span class="linenos">6396</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6397"><a href="#L-6397"><span class="linenos">6397</span></a><span class="sd"> The new Column instance.</span>
+</span><span id="L-6398"><a href="#L-6398"><span class="linenos">6398</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6399"><a href="#L-6399"><span class="linenos">6399</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">Column</span><span class="p">(</span>
+</span><span id="L-6400"><a href="#L-6400"><span class="linenos">6400</span></a> <span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">col</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">),</span>
+</span><span id="L-6401"><a href="#L-6401"><span class="linenos">6401</span></a> <span class="n">table</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">),</span>
+</span><span id="L-6402"><a href="#L-6402"><span class="linenos">6402</span></a> <span class="n">db</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">db</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">),</span>
+</span><span id="L-6403"><a href="#L-6403"><span class="linenos">6403</span></a> <span class="n">catalog</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">catalog</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">),</span>
+</span><span id="L-6404"><a href="#L-6404"><span class="linenos">6404</span></a> <span class="p">)</span>
+</span><span id="L-6405"><a href="#L-6405"><span class="linenos">6405</span></a>
+</span><span id="L-6406"><a href="#L-6406"><span class="linenos">6406</span></a> <span class="k">if</span> <span class="n">fields</span><span class="p">:</span>
+</span><span id="L-6407"><a href="#L-6407"><span class="linenos">6407</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">Dot</span><span class="o">.</span><span class="n">build</span><span class="p">((</span><span class="n">this</span><span class="p">,</span> <span class="o">*</span><span class="p">(</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">field</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">field</span> <span class="ow">in</span> <span class="n">fields</span><span class="p">)))</span>
+</span><span id="L-6408"><a href="#L-6408"><span class="linenos">6408</span></a> <span class="k">return</span> <span class="n">this</span>
+</span><span id="L-6409"><a href="#L-6409"><span class="linenos">6409</span></a>
+</span><span id="L-6410"><a href="#L-6410"><span class="linenos">6410</span></a>
+</span><span id="L-6411"><a href="#L-6411"><span class="linenos">6411</span></a><span class="k">def</span> <span class="nf">cast</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">to</span><span class="p">:</span> <span class="n">DATA_TYPE</span><span class="p">,</span> <span class="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-6412"><a href="#L-6412"><span class="linenos">6412</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Cast an expression to a data type.</span>
+</span><span id="L-6413"><a href="#L-6413"><span class="linenos">6413</span></a>
+</span><span id="L-6414"><a href="#L-6414"><span class="linenos">6414</span></a><span class="sd"> Example:</span>
+</span><span id="L-6415"><a href="#L-6415"><span class="linenos">6415</span></a><span class="sd"> &gt;&gt;&gt; cast(&#39;x + 1&#39;, &#39;int&#39;).sql()</span>
+</span><span id="L-6416"><a href="#L-6416"><span class="linenos">6416</span></a><span class="sd"> &#39;CAST(x + 1 AS INT)&#39;</span>
+</span><span id="L-6417"><a href="#L-6417"><span class="linenos">6417</span></a>
+</span><span id="L-6418"><a href="#L-6418"><span class="linenos">6418</span></a><span class="sd"> Args:</span>
+</span><span id="L-6419"><a href="#L-6419"><span class="linenos">6419</span></a><span class="sd"> expression: The expression to cast.</span>
+</span><span id="L-6420"><a href="#L-6420"><span class="linenos">6420</span></a><span class="sd"> to: The datatype to cast to.</span>
+</span><span id="L-6421"><a href="#L-6421"><span class="linenos">6421</span></a>
+</span><span id="L-6422"><a href="#L-6422"><span class="linenos">6422</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6423"><a href="#L-6423"><span class="linenos">6423</span></a><span class="sd"> The new Cast instance.</span>
+</span><span id="L-6424"><a href="#L-6424"><span class="linenos">6424</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6425"><a href="#L-6425"><span class="linenos">6425</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-6426"><a href="#L-6426"><span class="linenos">6426</span></a> <span class="n">data_type</span> <span class="o">=</span> <span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">to</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-6427"><a href="#L-6427"><span class="linenos">6427</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">Cast</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">data_type</span><span class="p">)</span>
+</span><span id="L-6428"><a href="#L-6428"><span class="linenos">6428</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">type</span> <span class="o">=</span> <span class="n">data_type</span>
+</span><span id="L-6429"><a href="#L-6429"><span class="linenos">6429</span></a> <span class="k">return</span> <span class="n">expression</span>
+</span><span id="L-6430"><a href="#L-6430"><span class="linenos">6430</span></a>
+</span><span id="L-6431"><a href="#L-6431"><span class="linenos">6431</span></a>
+</span><span id="L-6432"><a href="#L-6432"><span class="linenos">6432</span></a><span class="k">def</span> <span class="nf">table_</span><span class="p">(</span>
+</span><span id="L-6433"><a href="#L-6433"><span class="linenos">6433</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">,</span>
+</span><span id="L-6434"><a href="#L-6434"><span class="linenos">6434</span></a> <span class="n">db</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-6435"><a href="#L-6435"><span class="linenos">6435</span></a> <span class="n">catalog</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-6436"><a href="#L-6436"><span class="linenos">6436</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-6437"><a href="#L-6437"><span class="linenos">6437</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-6438"><a href="#L-6438"><span class="linenos">6438</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Table</span><span class="p">:</span>
+</span><span id="L-6439"><a href="#L-6439"><span class="linenos">6439</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a Table.</span>
+</span><span id="L-6440"><a href="#L-6440"><span class="linenos">6440</span></a>
+</span><span id="L-6441"><a href="#L-6441"><span class="linenos">6441</span></a><span class="sd"> Args:</span>
+</span><span id="L-6442"><a href="#L-6442"><span class="linenos">6442</span></a><span class="sd"> table: Table name.</span>
+</span><span id="L-6443"><a href="#L-6443"><span class="linenos">6443</span></a><span class="sd"> db: Database name.</span>
+</span><span id="L-6444"><a href="#L-6444"><span class="linenos">6444</span></a><span class="sd"> catalog: Catalog name.</span>
+</span><span id="L-6445"><a href="#L-6445"><span class="linenos">6445</span></a><span class="sd"> quote: Whether to force quotes on the table&#39;s identifiers.</span>
+</span><span id="L-6446"><a href="#L-6446"><span class="linenos">6446</span></a><span class="sd"> alias: Table&#39;s alias.</span>
+</span><span id="L-6447"><a href="#L-6447"><span class="linenos">6447</span></a>
+</span><span id="L-6448"><a href="#L-6448"><span class="linenos">6448</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6449"><a href="#L-6449"><span class="linenos">6449</span></a><span class="sd"> The new Table instance.</span>
+</span><span id="L-6450"><a href="#L-6450"><span class="linenos">6450</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6451"><a href="#L-6451"><span class="linenos">6451</span></a> <span class="k">return</span> <span class="n">Table</span><span class="p">(</span>
+</span><span id="L-6452"><a href="#L-6452"><span class="linenos">6452</span></a> <span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">)</span> <span class="k">if</span> <span class="n">table</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-6453"><a href="#L-6453"><span class="linenos">6453</span></a> <span class="n">db</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">db</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">)</span> <span class="k">if</span> <span class="n">db</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-6454"><a href="#L-6454"><span class="linenos">6454</span></a> <span class="n">catalog</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">catalog</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">)</span> <span class="k">if</span> <span class="n">catalog</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-6455"><a href="#L-6455"><span class="linenos">6455</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-6456"><a href="#L-6456"><span class="linenos">6456</span></a> <span class="p">)</span>
</span><span id="L-6457"><a href="#L-6457"><span class="linenos">6457</span></a>
-</span><span id="L-6458"><a href="#L-6458"><span class="linenos">6458</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span>
-</span><span id="L-6459"><a href="#L-6459"><span class="linenos">6459</span></a>
-</span><span id="L-6460"><a href="#L-6460"><span class="linenos">6460</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">table</span><span class="p">:</span>
-</span><span id="L-6461"><a href="#L-6461"><span class="linenos">6461</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-6462"><a href="#L-6462"><span class="linenos">6462</span></a>
-</span><span id="L-6463"><a href="#L-6463"><span class="linenos">6463</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-6464"><a href="#L-6464"><span class="linenos">6464</span></a> <span class="n">part</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">identify</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</span><span id="L-6465"><a href="#L-6465"><span class="linenos">6465</span></a> <span class="k">if</span> <span class="n">identify</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">SAFE_IDENTIFIER_RE</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">part</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
-</span><span id="L-6466"><a href="#L-6466"><span class="linenos">6466</span></a> <span class="k">else</span> <span class="n">part</span><span class="o">.</span><span class="n">name</span>
-</span><span id="L-6467"><a href="#L-6467"><span class="linenos">6467</span></a> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="n">table</span><span class="o">.</span><span class="n">parts</span>
-</span><span id="L-6468"><a href="#L-6468"><span class="linenos">6468</span></a> <span class="p">)</span>
+</span><span id="L-6458"><a href="#L-6458"><span class="linenos">6458</span></a>
+</span><span id="L-6459"><a href="#L-6459"><span class="linenos">6459</span></a><span class="k">def</span> <span class="nf">values</span><span class="p">(</span>
+</span><span id="L-6460"><a href="#L-6460"><span class="linenos">6460</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-6461"><a href="#L-6461"><span class="linenos">6461</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-6462"><a href="#L-6462"><span class="linenos">6462</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-6463"><a href="#L-6463"><span class="linenos">6463</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Values</span><span class="p">:</span>
+</span><span id="L-6464"><a href="#L-6464"><span class="linenos">6464</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build VALUES statement.</span>
+</span><span id="L-6465"><a href="#L-6465"><span class="linenos">6465</span></a>
+</span><span id="L-6466"><a href="#L-6466"><span class="linenos">6466</span></a><span class="sd"> Example:</span>
+</span><span id="L-6467"><a href="#L-6467"><span class="linenos">6467</span></a><span class="sd"> &gt;&gt;&gt; values([(1, &#39;2&#39;)]).sql()</span>
+</span><span id="L-6468"><a href="#L-6468"><span class="linenos">6468</span></a><span class="sd"> &quot;VALUES (1, &#39;2&#39;)&quot;</span>
</span><span id="L-6469"><a href="#L-6469"><span class="linenos">6469</span></a>
-</span><span id="L-6470"><a href="#L-6470"><span class="linenos">6470</span></a>
-</span><span id="L-6471"><a href="#L-6471"><span class="linenos">6471</span></a><span class="k">def</span> <span class="nf">normalize_table_name</span><span class="p">(</span><span class="n">table</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-6472"><a href="#L-6472"><span class="linenos">6472</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Returns a case normalized table name without quotes.</span>
-</span><span id="L-6473"><a href="#L-6473"><span class="linenos">6473</span></a>
-</span><span id="L-6474"><a href="#L-6474"><span class="linenos">6474</span></a><span class="sd"> Args:</span>
-</span><span id="L-6475"><a href="#L-6475"><span class="linenos">6475</span></a><span class="sd"> table: the table to normalize</span>
-</span><span id="L-6476"><a href="#L-6476"><span class="linenos">6476</span></a><span class="sd"> dialect: the dialect to use for normalization rules</span>
-</span><span id="L-6477"><a href="#L-6477"><span class="linenos">6477</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
-</span><span id="L-6478"><a href="#L-6478"><span class="linenos">6478</span></a>
-</span><span id="L-6479"><a href="#L-6479"><span class="linenos">6479</span></a><span class="sd"> Examples:</span>
-</span><span id="L-6480"><a href="#L-6480"><span class="linenos">6480</span></a><span class="sd"> &gt;&gt;&gt; normalize_table_name(&quot;`A-B`.c&quot;, dialect=&quot;bigquery&quot;)</span>
-</span><span id="L-6481"><a href="#L-6481"><span class="linenos">6481</span></a><span class="sd"> &#39;A-B.c&#39;</span>
-</span><span id="L-6482"><a href="#L-6482"><span class="linenos">6482</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6483"><a href="#L-6483"><span class="linenos">6483</span></a> <span class="kn">from</span> <span class="nn">sqlglot.optimizer.normalize_identifiers</span> <span class="kn">import</span> <span class="n">normalize_identifiers</span>
-</span><span id="L-6484"><a href="#L-6484"><span class="linenos">6484</span></a>
-</span><span id="L-6485"><a href="#L-6485"><span class="linenos">6485</span></a> <span class="k">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-6486"><a href="#L-6486"><span class="linenos">6486</span></a> <span class="n">p</span><span class="o">.</span><span class="n">name</span>
-</span><span id="L-6487"><a href="#L-6487"><span class="linenos">6487</span></a> <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">normalize_identifiers</span><span class="p">(</span>
-</span><span id="L-6488"><a href="#L-6488"><span class="linenos">6488</span></a> <span class="n">to_table</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">),</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span>
-</span><span id="L-6489"><a href="#L-6489"><span class="linenos">6489</span></a> <span class="p">)</span><span class="o">.</span><span class="n">parts</span>
-</span><span id="L-6490"><a href="#L-6490"><span class="linenos">6490</span></a> <span class="p">)</span>
+</span><span id="L-6470"><a href="#L-6470"><span class="linenos">6470</span></a><span class="sd"> Args:</span>
+</span><span id="L-6471"><a href="#L-6471"><span class="linenos">6471</span></a><span class="sd"> values: values statements that will be converted to SQL</span>
+</span><span id="L-6472"><a href="#L-6472"><span class="linenos">6472</span></a><span class="sd"> alias: optional alias</span>
+</span><span id="L-6473"><a href="#L-6473"><span class="linenos">6473</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-6474"><a href="#L-6474"><span class="linenos">6474</span></a><span class="sd"> If either are provided then an alias is also required.</span>
+</span><span id="L-6475"><a href="#L-6475"><span class="linenos">6475</span></a>
+</span><span id="L-6476"><a href="#L-6476"><span class="linenos">6476</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6477"><a href="#L-6477"><span class="linenos">6477</span></a><span class="sd"> Values: the Values expression object</span>
+</span><span id="L-6478"><a href="#L-6478"><span class="linenos">6478</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6479"><a href="#L-6479"><span class="linenos">6479</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-6480"><a href="#L-6480"><span class="linenos">6480</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-6481"><a href="#L-6481"><span class="linenos">6481</span></a>
+</span><span id="L-6482"><a href="#L-6482"><span class="linenos">6482</span></a> <span class="k">return</span> <span class="n">Values</span><span class="p">(</span>
+</span><span id="L-6483"><a href="#L-6483"><span class="linenos">6483</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-6484"><a href="#L-6484"><span class="linenos">6484</span></a> <span class="n">alias</span><span class="o">=</span><span class="p">(</span>
+</span><span id="L-6485"><a href="#L-6485"><span class="linenos">6485</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-6486"><a href="#L-6486"><span class="linenos">6486</span></a> <span class="k">if</span> <span class="n">columns</span>
+</span><span id="L-6487"><a href="#L-6487"><span class="linenos">6487</span></a> <span class="k">else</span> <span class="p">(</span><span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">))</span> <span class="k">if</span> <span class="n">alias</span> <span class="k">else</span> <span class="kc">None</span><span class="p">)</span>
+</span><span id="L-6488"><a href="#L-6488"><span class="linenos">6488</span></a> <span class="p">),</span>
+</span><span id="L-6489"><a href="#L-6489"><span class="linenos">6489</span></a> <span class="p">)</span>
+</span><span id="L-6490"><a href="#L-6490"><span class="linenos">6490</span></a>
</span><span id="L-6491"><a href="#L-6491"><span class="linenos">6491</span></a>
-</span><span id="L-6492"><a href="#L-6492"><span class="linenos">6492</span></a>
-</span><span id="L-6493"><a href="#L-6493"><span class="linenos">6493</span></a><span class="k">def</span> <span class="nf">replace_tables</span><span class="p">(</span>
-</span><span id="L-6494"><a href="#L-6494"><span class="linenos">6494</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">E</span><span class="p">,</span> <span class="n">mapping</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span><span class="p">],</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-6495"><a href="#L-6495"><span class="linenos">6495</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
-</span><span id="L-6496"><a href="#L-6496"><span class="linenos">6496</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-6497"><a href="#L-6497"><span class="linenos">6497</span></a>
-</span><span id="L-6498"><a href="#L-6498"><span class="linenos">6498</span></a><span class="sd"> Args:</span>
-</span><span id="L-6499"><a href="#L-6499"><span class="linenos">6499</span></a><span class="sd"> expression: expression node to be transformed and replaced.</span>
-</span><span id="L-6500"><a href="#L-6500"><span class="linenos">6500</span></a><span class="sd"> mapping: mapping of table names.</span>
-</span><span id="L-6501"><a href="#L-6501"><span class="linenos">6501</span></a><span class="sd"> dialect: the dialect of the mapping table</span>
-</span><span id="L-6502"><a href="#L-6502"><span class="linenos">6502</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
-</span><span id="L-6503"><a href="#L-6503"><span class="linenos">6503</span></a>
-</span><span id="L-6504"><a href="#L-6504"><span class="linenos">6504</span></a><span class="sd"> Examples:</span>
-</span><span id="L-6505"><a href="#L-6505"><span class="linenos">6505</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
-</span><span id="L-6506"><a href="#L-6506"><span class="linenos">6506</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-6507"><a href="#L-6507"><span class="linenos">6507</span></a><span class="sd"> &#39;SELECT * FROM c /* a.b */&#39;</span>
-</span><span id="L-6508"><a href="#L-6508"><span class="linenos">6508</span></a>
-</span><span id="L-6509"><a href="#L-6509"><span class="linenos">6509</span></a><span class="sd"> Returns:</span>
-</span><span id="L-6510"><a href="#L-6510"><span class="linenos">6510</span></a><span class="sd"> The mapped expression.</span>
-</span><span id="L-6511"><a href="#L-6511"><span class="linenos">6511</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6512"><a href="#L-6512"><span class="linenos">6512</span></a>
-</span><span id="L-6513"><a href="#L-6513"><span class="linenos">6513</span></a> <span class="n">mapping</span> <span class="o">=</span> <span class="p">{</span><span class="n">normalize_table_name</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">):</span> <span class="n">v</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">mapping</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span>
+</span><span id="L-6492"><a href="#L-6492"><span class="linenos">6492</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-6493"><a href="#L-6493"><span class="linenos">6493</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a SQL variable.</span>
+</span><span id="L-6494"><a href="#L-6494"><span class="linenos">6494</span></a>
+</span><span id="L-6495"><a href="#L-6495"><span class="linenos">6495</span></a><span class="sd"> Example:</span>
+</span><span id="L-6496"><a href="#L-6496"><span class="linenos">6496</span></a><span class="sd"> &gt;&gt;&gt; repr(var(&#39;x&#39;))</span>
+</span><span id="L-6497"><a href="#L-6497"><span class="linenos">6497</span></a><span class="sd"> &#39;Var(this=x)&#39;</span>
+</span><span id="L-6498"><a href="#L-6498"><span class="linenos">6498</span></a>
+</span><span id="L-6499"><a href="#L-6499"><span class="linenos">6499</span></a><span class="sd"> &gt;&gt;&gt; repr(var(column(&#39;x&#39;, table=&#39;y&#39;)))</span>
+</span><span id="L-6500"><a href="#L-6500"><span class="linenos">6500</span></a><span class="sd"> &#39;Var(this=x)&#39;</span>
+</span><span id="L-6501"><a href="#L-6501"><span class="linenos">6501</span></a>
+</span><span id="L-6502"><a href="#L-6502"><span class="linenos">6502</span></a><span class="sd"> Args:</span>
+</span><span id="L-6503"><a href="#L-6503"><span class="linenos">6503</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-6504"><a href="#L-6504"><span class="linenos">6504</span></a>
+</span><span id="L-6505"><a href="#L-6505"><span class="linenos">6505</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6506"><a href="#L-6506"><span class="linenos">6506</span></a><span class="sd"> The new variable node.</span>
+</span><span id="L-6507"><a href="#L-6507"><span class="linenos">6507</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6508"><a href="#L-6508"><span class="linenos">6508</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-6509"><a href="#L-6509"><span class="linenos">6509</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-6510"><a href="#L-6510"><span class="linenos">6510</span></a>
+</span><span id="L-6511"><a href="#L-6511"><span class="linenos">6511</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-6512"><a href="#L-6512"><span class="linenos">6512</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-6513"><a href="#L-6513"><span class="linenos">6513</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-6514"><a href="#L-6514"><span class="linenos">6514</span></a>
-</span><span id="L-6515"><a href="#L-6515"><span class="linenos">6515</span></a> <span class="k">def</span> <span class="nf">_replace_tables</span><span class="p">(</span><span class="n">node</span><span class="p">:</span> <span class="n">Expression</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="L-6516"><a href="#L-6516"><span class="linenos">6516</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-6517"><a href="#L-6517"><span class="linenos">6517</span></a> <span class="n">original</span> <span class="o">=</span> <span class="n">normalize_table_name</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span>
-</span><span id="L-6518"><a href="#L-6518"><span class="linenos">6518</span></a> <span class="n">new_name</span> <span class="o">=</span> <span class="n">mapping</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">original</span><span class="p">)</span>
-</span><span id="L-6519"><a href="#L-6519"><span class="linenos">6519</span></a>
-</span><span id="L-6520"><a href="#L-6520"><span class="linenos">6520</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
-</span><span id="L-6521"><a href="#L-6521"><span class="linenos">6521</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">to_table</span><span class="p">(</span>
-</span><span id="L-6522"><a href="#L-6522"><span class="linenos">6522</span></a> <span class="n">new_name</span><span class="p">,</span>
-</span><span id="L-6523"><a href="#L-6523"><span class="linenos">6523</span></a> <span class="o">**</span><span class="p">{</span><span class="n">k</span><span class="p">:</span> <span class="n">v</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">node</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> <span class="k">if</span> <span class="n">k</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">TABLE_PARTS</span><span class="p">},</span>
-</span><span id="L-6524"><a href="#L-6524"><span class="linenos">6524</span></a> <span class="p">)</span>
-</span><span id="L-6525"><a href="#L-6525"><span class="linenos">6525</span></a> <span class="n">table</span><span class="o">.</span><span class="n">add_comments</span><span class="p">([</span><span class="n">original</span><span class="p">])</span>
-</span><span id="L-6526"><a href="#L-6526"><span class="linenos">6526</span></a> <span class="k">return</span> <span class="n">table</span>
-</span><span id="L-6527"><a href="#L-6527"><span class="linenos">6527</span></a> <span class="k">return</span> <span class="n">node</span>
-</span><span id="L-6528"><a href="#L-6528"><span class="linenos">6528</span></a>
-</span><span id="L-6529"><a href="#L-6529"><span class="linenos">6529</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_replace_tables</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span>
-</span><span id="L-6530"><a href="#L-6530"><span class="linenos">6530</span></a>
-</span><span id="L-6531"><a href="#L-6531"><span class="linenos">6531</span></a>
-</span><span id="L-6532"><a href="#L-6532"><span class="linenos">6532</span></a><span class="k">def</span> <span class="nf">replace_placeholders</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="L-6533"><a href="#L-6533"><span class="linenos">6533</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Replace placeholders in an expression.</span>
+</span><span id="L-6515"><a href="#L-6515"><span class="linenos">6515</span></a>
+</span><span id="L-6516"><a href="#L-6516"><span class="linenos">6516</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-6517"><a href="#L-6517"><span class="linenos">6517</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build ALTER TABLE... RENAME... expression</span>
+</span><span id="L-6518"><a href="#L-6518"><span class="linenos">6518</span></a>
+</span><span id="L-6519"><a href="#L-6519"><span class="linenos">6519</span></a><span class="sd"> Args:</span>
+</span><span id="L-6520"><a href="#L-6520"><span class="linenos">6520</span></a><span class="sd"> old_name: The old name of the table</span>
+</span><span id="L-6521"><a href="#L-6521"><span class="linenos">6521</span></a><span class="sd"> new_name: The new name of the table</span>
+</span><span id="L-6522"><a href="#L-6522"><span class="linenos">6522</span></a>
+</span><span id="L-6523"><a href="#L-6523"><span class="linenos">6523</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6524"><a href="#L-6524"><span class="linenos">6524</span></a><span class="sd"> Alter table expression</span>
+</span><span id="L-6525"><a href="#L-6525"><span class="linenos">6525</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6526"><a href="#L-6526"><span class="linenos">6526</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-6527"><a href="#L-6527"><span class="linenos">6527</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-6528"><a href="#L-6528"><span class="linenos">6528</span></a> <span class="k">return</span> <span class="n">AlterTable</span><span class="p">(</span>
+</span><span id="L-6529"><a href="#L-6529"><span class="linenos">6529</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-6530"><a href="#L-6530"><span class="linenos">6530</span></a> <span class="n">actions</span><span class="o">=</span><span class="p">[</span>
+</span><span id="L-6531"><a href="#L-6531"><span class="linenos">6531</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-6532"><a href="#L-6532"><span class="linenos">6532</span></a> <span class="p">],</span>
+</span><span id="L-6533"><a href="#L-6533"><span class="linenos">6533</span></a> <span class="p">)</span>
</span><span id="L-6534"><a href="#L-6534"><span class="linenos">6534</span></a>
-</span><span id="L-6535"><a href="#L-6535"><span class="linenos">6535</span></a><span class="sd"> Args:</span>
-</span><span id="L-6536"><a href="#L-6536"><span class="linenos">6536</span></a><span class="sd"> expression: expression node to be transformed and replaced.</span>
-</span><span id="L-6537"><a href="#L-6537"><span class="linenos">6537</span></a><span class="sd"> args: positional names that will substitute unnamed placeholders in the given order.</span>
-</span><span id="L-6538"><a href="#L-6538"><span class="linenos">6538</span></a><span class="sd"> kwargs: keyword arguments that will substitute named placeholders.</span>
-</span><span id="L-6539"><a href="#L-6539"><span class="linenos">6539</span></a>
-</span><span id="L-6540"><a href="#L-6540"><span class="linenos">6540</span></a><span class="sd"> Examples:</span>
-</span><span id="L-6541"><a href="#L-6541"><span class="linenos">6541</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
-</span><span id="L-6542"><a href="#L-6542"><span class="linenos">6542</span></a><span class="sd"> &gt;&gt;&gt; replace_placeholders(</span>
-</span><span id="L-6543"><a href="#L-6543"><span class="linenos">6543</span></a><span class="sd"> ... parse_one(&quot;select * from :tbl where ? = ?&quot;),</span>
-</span><span id="L-6544"><a href="#L-6544"><span class="linenos">6544</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-6545"><a href="#L-6545"><span class="linenos">6545</span></a><span class="sd"> ... ).sql()</span>
-</span><span id="L-6546"><a href="#L-6546"><span class="linenos">6546</span></a><span class="sd"> &quot;SELECT * FROM foo WHERE str_col = &#39;b&#39;&quot;</span>
-</span><span id="L-6547"><a href="#L-6547"><span class="linenos">6547</span></a>
-</span><span id="L-6548"><a href="#L-6548"><span class="linenos">6548</span></a><span class="sd"> Returns:</span>
-</span><span id="L-6549"><a href="#L-6549"><span class="linenos">6549</span></a><span class="sd"> The mapped expression.</span>
-</span><span id="L-6550"><a href="#L-6550"><span class="linenos">6550</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6551"><a href="#L-6551"><span class="linenos">6551</span></a>
-</span><span id="L-6552"><a href="#L-6552"><span class="linenos">6552</span></a> <span class="k">def</span> <span class="nf">_replace_placeholders</span><span class="p">(</span><span class="n">node</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="L-6553"><a href="#L-6553"><span class="linenos">6553</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-6554"><a href="#L-6554"><span class="linenos">6554</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-6555"><a href="#L-6555"><span class="linenos">6555</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-6556"><a href="#L-6556"><span class="linenos">6556</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
-</span><span id="L-6557"><a href="#L-6557"><span class="linenos">6557</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-6558"><a href="#L-6558"><span class="linenos">6558</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-6559"><a href="#L-6559"><span class="linenos">6559</span></a> <span class="k">try</span><span class="p">:</span>
-</span><span id="L-6560"><a href="#L-6560"><span class="linenos">6560</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-6561"><a href="#L-6561"><span class="linenos">6561</span></a> <span class="k">except</span> <span class="ne">StopIteration</span><span class="p">:</span>
-</span><span id="L-6562"><a href="#L-6562"><span class="linenos">6562</span></a> <span class="k">pass</span>
-</span><span id="L-6563"><a href="#L-6563"><span class="linenos">6563</span></a> <span class="k">return</span> <span class="n">node</span>
-</span><span id="L-6564"><a href="#L-6564"><span class="linenos">6564</span></a>
-</span><span id="L-6565"><a href="#L-6565"><span class="linenos">6565</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-6566"><a href="#L-6566"><span class="linenos">6566</span></a>
-</span><span id="L-6567"><a href="#L-6567"><span class="linenos">6567</span></a>
-</span><span id="L-6568"><a href="#L-6568"><span class="linenos">6568</span></a><span class="k">def</span> <span class="nf">expand</span><span class="p">(</span>
-</span><span id="L-6569"><a href="#L-6569"><span class="linenos">6569</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span>
-</span><span id="L-6570"><a href="#L-6570"><span class="linenos">6570</span></a> <span class="n">sources</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Subqueryable</span><span class="p">],</span>
-</span><span id="L-6571"><a href="#L-6571"><span class="linenos">6571</span></a> <span class="n">dialect</span><span 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-6572"><a href="#L-6572"><span class="linenos">6572</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-6573"><a href="#L-6573"><span class="linenos">6573</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="L-6574"><a href="#L-6574"><span class="linenos">6574</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-6575"><a href="#L-6575"><span class="linenos">6575</span></a>
-</span><span id="L-6576"><a href="#L-6576"><span class="linenos">6576</span></a><span class="sd"> Examples:</span>
-</span><span id="L-6577"><a href="#L-6577"><span class="linenos">6577</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
-</span><span id="L-6578"><a href="#L-6578"><span class="linenos">6578</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-6579"><a href="#L-6579"><span class="linenos">6579</span></a><span class="sd"> &#39;SELECT * FROM (SELECT * FROM y) AS z /* source: x */&#39;</span>
-</span><span id="L-6580"><a href="#L-6580"><span class="linenos">6580</span></a>
-</span><span id="L-6581"><a href="#L-6581"><span class="linenos">6581</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-6582"><a href="#L-6582"><span class="linenos">6582</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-6583"><a href="#L-6583"><span class="linenos">6583</span></a>
-</span><span id="L-6584"><a href="#L-6584"><span class="linenos">6584</span></a><span class="sd"> Args:</span>
-</span><span id="L-6585"><a href="#L-6585"><span class="linenos">6585</span></a><span class="sd"> expression: The expression to expand.</span>
-</span><span id="L-6586"><a href="#L-6586"><span class="linenos">6586</span></a><span class="sd"> sources: A dictionary of name to Subqueryables.</span>
-</span><span id="L-6587"><a href="#L-6587"><span class="linenos">6587</span></a><span class="sd"> dialect: The dialect of the sources dict.</span>
-</span><span id="L-6588"><a href="#L-6588"><span class="linenos">6588</span></a><span class="sd"> copy: Whether or not to copy the expression during transformation. Defaults to True.</span>
-</span><span id="L-6589"><a href="#L-6589"><span class="linenos">6589</span></a>
-</span><span id="L-6590"><a href="#L-6590"><span class="linenos">6590</span></a><span class="sd"> Returns:</span>
-</span><span id="L-6591"><a href="#L-6591"><span class="linenos">6591</span></a><span class="sd"> The transformed expression.</span>
-</span><span id="L-6592"><a href="#L-6592"><span class="linenos">6592</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6593"><a href="#L-6593"><span class="linenos">6593</span></a> <span class="n">sources</span> <span class="o">=</span> <span class="p">{</span><span class="n">normalize_table_name</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">):</span> <span class="n">v</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">sources</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span>
-</span><span id="L-6594"><a href="#L-6594"><span class="linenos">6594</span></a>
-</span><span id="L-6595"><a href="#L-6595"><span class="linenos">6595</span></a> <span 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-6596"><a href="#L-6596"><span class="linenos">6596</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-6597"><a href="#L-6597"><span class="linenos">6597</span></a> <span class="n">name</span> <span class="o">=</span> <span class="n">normalize_table_name</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span>
-</span><span id="L-6598"><a href="#L-6598"><span class="linenos">6598</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-6599"><a href="#L-6599"><span class="linenos">6599</span></a> <span class="k">if</span> <span class="n">source</span><span class="p">:</span>
-</span><span id="L-6600"><a href="#L-6600"><span class="linenos">6600</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-6601"><a href="#L-6601"><span class="linenos">6601</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-6602"><a href="#L-6602"><span class="linenos">6602</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-6603"><a href="#L-6603"><span class="linenos">6603</span></a> <span class="k">return</span> <span class="n">node</span>
-</span><span id="L-6604"><a href="#L-6604"><span class="linenos">6604</span></a>
-</span><span id="L-6605"><a href="#L-6605"><span class="linenos">6605</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-6606"><a href="#L-6606"><span class="linenos">6606</span></a>
-</span><span id="L-6607"><a href="#L-6607"><span class="linenos">6607</span></a>
-</span><span id="L-6608"><a href="#L-6608"><span class="linenos">6608</span></a><span class="k">def</span> <span class="nf">func</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Func</span><span class="p">:</span>
-</span><span id="L-6609"><a href="#L-6609"><span class="linenos">6609</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-6610"><a href="#L-6610"><span class="linenos">6610</span></a><span class="sd"> Returns a Func expression.</span>
-</span><span id="L-6611"><a href="#L-6611"><span class="linenos">6611</span></a>
-</span><span id="L-6612"><a href="#L-6612"><span class="linenos">6612</span></a><span class="sd"> Examples:</span>
-</span><span id="L-6613"><a href="#L-6613"><span class="linenos">6613</span></a><span class="sd"> &gt;&gt;&gt; func(&quot;abs&quot;, 5).sql()</span>
-</span><span id="L-6614"><a href="#L-6614"><span class="linenos">6614</span></a><span class="sd"> &#39;ABS(5)&#39;</span>
-</span><span id="L-6615"><a href="#L-6615"><span class="linenos">6615</span></a>
-</span><span id="L-6616"><a href="#L-6616"><span class="linenos">6616</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-6617"><a href="#L-6617"><span class="linenos">6617</span></a><span class="sd"> &#39;CAST(5 AS DOUBLE)&#39;</span>
-</span><span id="L-6618"><a href="#L-6618"><span class="linenos">6618</span></a>
-</span><span id="L-6619"><a href="#L-6619"><span class="linenos">6619</span></a><span class="sd"> Args:</span>
-</span><span id="L-6620"><a href="#L-6620"><span class="linenos">6620</span></a><span class="sd"> name: the name of the function to build.</span>
-</span><span id="L-6621"><a href="#L-6621"><span class="linenos">6621</span></a><span class="sd"> args: the args used to instantiate the function of interest.</span>
-</span><span id="L-6622"><a href="#L-6622"><span class="linenos">6622</span></a><span class="sd"> copy: whether or not to copy the argument expressions.</span>
-</span><span id="L-6623"><a href="#L-6623"><span class="linenos">6623</span></a><span class="sd"> dialect: the source dialect.</span>
-</span><span id="L-6624"><a href="#L-6624"><span class="linenos">6624</span></a><span class="sd"> kwargs: the kwargs used to instantiate the function of interest.</span>
+</span><span id="L-6535"><a href="#L-6535"><span class="linenos">6535</span></a>
+</span><span id="L-6536"><a href="#L-6536"><span class="linenos">6536</span></a><span class="k">def</span> <span class="nf">convert</span><span class="p">(</span><span class="n">value</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="L-6537"><a href="#L-6537"><span class="linenos">6537</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-6538"><a href="#L-6538"><span class="linenos">6538</span></a>
+</span><span id="L-6539"><a href="#L-6539"><span class="linenos">6539</span></a><span class="sd"> Raises an error if a conversion is not possible.</span>
+</span><span id="L-6540"><a href="#L-6540"><span class="linenos">6540</span></a>
+</span><span id="L-6541"><a href="#L-6541"><span class="linenos">6541</span></a><span class="sd"> Args:</span>
+</span><span id="L-6542"><a href="#L-6542"><span class="linenos">6542</span></a><span class="sd"> value: A python object.</span>
+</span><span id="L-6543"><a href="#L-6543"><span class="linenos">6543</span></a><span class="sd"> copy: Whether or not to copy `value` (only applies to Expressions and collections).</span>
+</span><span id="L-6544"><a href="#L-6544"><span class="linenos">6544</span></a>
+</span><span id="L-6545"><a href="#L-6545"><span class="linenos">6545</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6546"><a href="#L-6546"><span class="linenos">6546</span></a><span class="sd"> Expression: the equivalent expression object.</span>
+</span><span id="L-6547"><a href="#L-6547"><span class="linenos">6547</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6548"><a href="#L-6548"><span class="linenos">6548</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-6549"><a href="#L-6549"><span class="linenos">6549</span></a> <span class="k">return</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
+</span><span id="L-6550"><a href="#L-6550"><span class="linenos">6550</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-6551"><a href="#L-6551"><span class="linenos">6551</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-6552"><a href="#L-6552"><span class="linenos">6552</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-6553"><a href="#L-6553"><span class="linenos">6553</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-6554"><a href="#L-6554"><span class="linenos">6554</span></a> <span class="k">if</span> <span class="n">value</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">float</span><span class="p">)</span> <span class="ow">and</span> <span class="n">math</span><span class="o">.</span><span class="n">isnan</span><span class="p">(</span><span class="n">value</span><span class="p">)):</span>
+</span><span id="L-6555"><a href="#L-6555"><span class="linenos">6555</span></a> <span class="k">return</span> <span class="n">NULL</span>
+</span><span id="L-6556"><a href="#L-6556"><span class="linenos">6556</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-6557"><a href="#L-6557"><span class="linenos">6557</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-6558"><a href="#L-6558"><span class="linenos">6558</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-6559"><a href="#L-6559"><span class="linenos">6559</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-6560"><a href="#L-6560"><span class="linenos">6560</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-6561"><a href="#L-6561"><span class="linenos">6561</span></a> <span class="p">)</span>
+</span><span id="L-6562"><a href="#L-6562"><span class="linenos">6562</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-6563"><a href="#L-6563"><span class="linenos">6563</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-6564"><a href="#L-6564"><span class="linenos">6564</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-6565"><a href="#L-6565"><span class="linenos">6565</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-6566"><a href="#L-6566"><span class="linenos">6566</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-6567"><a href="#L-6567"><span class="linenos">6567</span></a> <span class="k">return</span> <span class="n">Tuple</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">])</span>
+</span><span id="L-6568"><a href="#L-6568"><span class="linenos">6568</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-6569"><a href="#L-6569"><span class="linenos">6569</span></a> <span class="k">return</span> <span class="n">Array</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">])</span>
+</span><span id="L-6570"><a href="#L-6570"><span class="linenos">6570</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-6571"><a href="#L-6571"><span class="linenos">6571</span></a> <span class="k">return</span> <span class="n">Map</span><span class="p">(</span>
+</span><span id="L-6572"><a href="#L-6572"><span class="linenos">6572</span></a> <span class="n">keys</span><span class="o">=</span><span class="n">Array</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="n">value</span><span class="p">]),</span>
+</span><span id="L-6573"><a href="#L-6573"><span class="linenos">6573</span></a> <span class="n">values</span><span class="o">=</span><span class="n">Array</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="o">.</span><span class="n">values</span><span class="p">()]),</span>
+</span><span id="L-6574"><a href="#L-6574"><span class="linenos">6574</span></a> <span class="p">)</span>
+</span><span id="L-6575"><a href="#L-6575"><span class="linenos">6575</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-6576"><a href="#L-6576"><span class="linenos">6576</span></a>
+</span><span id="L-6577"><a href="#L-6577"><span class="linenos">6577</span></a>
+</span><span id="L-6578"><a href="#L-6578"><span class="linenos">6578</span></a><span class="k">def</span> <span class="nf">replace_children</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">fun</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="L-6579"><a href="#L-6579"><span class="linenos">6579</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-6580"><a href="#L-6580"><span class="linenos">6580</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-6581"><a href="#L-6581"><span class="linenos">6581</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6582"><a href="#L-6582"><span class="linenos">6582</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-6583"><a href="#L-6583"><span class="linenos">6583</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-6584"><a href="#L-6584"><span class="linenos">6584</span></a>
+</span><span id="L-6585"><a href="#L-6585"><span class="linenos">6585</span></a> <span 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-6586"><a href="#L-6586"><span class="linenos">6586</span></a> <span class="n">new_child_nodes</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="L-6587"><a href="#L-6587"><span class="linenos">6587</span></a>
+</span><span id="L-6588"><a href="#L-6588"><span class="linenos">6588</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-6589"><a href="#L-6589"><span class="linenos">6589</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-6590"><a href="#L-6590"><span class="linenos">6590</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-6591"><a href="#L-6591"><span class="linenos">6591</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-6592"><a href="#L-6592"><span class="linenos">6592</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-6593"><a href="#L-6593"><span class="linenos">6593</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-6594"><a href="#L-6594"><span class="linenos">6594</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-6595"><a href="#L-6595"><span class="linenos">6595</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-6596"><a href="#L-6596"><span class="linenos">6596</span></a>
+</span><span id="L-6597"><a href="#L-6597"><span class="linenos">6597</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-6598"><a href="#L-6598"><span class="linenos">6598</span></a>
+</span><span id="L-6599"><a href="#L-6599"><span class="linenos">6599</span></a>
+</span><span id="L-6600"><a href="#L-6600"><span class="linenos">6600</span></a><span class="k">def</span> <span class="nf">column_table_names</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">exclude</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Set</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
+</span><span id="L-6601"><a href="#L-6601"><span class="linenos">6601</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-6602"><a href="#L-6602"><span class="linenos">6602</span></a><span class="sd"> Return all table names referenced through columns in an expression.</span>
+</span><span id="L-6603"><a href="#L-6603"><span class="linenos">6603</span></a>
+</span><span id="L-6604"><a href="#L-6604"><span class="linenos">6604</span></a><span class="sd"> Example:</span>
+</span><span id="L-6605"><a href="#L-6605"><span class="linenos">6605</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="L-6606"><a href="#L-6606"><span class="linenos">6606</span></a><span class="sd"> &gt;&gt;&gt; sorted(column_table_names(sqlglot.parse_one(&quot;a.b AND c.d AND c.e&quot;)))</span>
+</span><span id="L-6607"><a href="#L-6607"><span class="linenos">6607</span></a><span class="sd"> [&#39;a&#39;, &#39;c&#39;]</span>
+</span><span id="L-6608"><a href="#L-6608"><span class="linenos">6608</span></a>
+</span><span id="L-6609"><a href="#L-6609"><span class="linenos">6609</span></a><span class="sd"> Args:</span>
+</span><span id="L-6610"><a href="#L-6610"><span class="linenos">6610</span></a><span class="sd"> expression: expression to find table names.</span>
+</span><span id="L-6611"><a href="#L-6611"><span class="linenos">6611</span></a><span class="sd"> exclude: a table name to exclude</span>
+</span><span id="L-6612"><a href="#L-6612"><span class="linenos">6612</span></a>
+</span><span id="L-6613"><a href="#L-6613"><span class="linenos">6613</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6614"><a href="#L-6614"><span class="linenos">6614</span></a><span class="sd"> A list of unique names.</span>
+</span><span id="L-6615"><a href="#L-6615"><span class="linenos">6615</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6616"><a href="#L-6616"><span class="linenos">6616</span></a> <span class="k">return</span> <span class="p">{</span>
+</span><span id="L-6617"><a href="#L-6617"><span class="linenos">6617</span></a> <span class="n">table</span>
+</span><span id="L-6618"><a href="#L-6618"><span class="linenos">6618</span></a> <span class="k">for</span> <span class="n">table</span> <span class="ow">in</span> <span class="p">(</span><span class="n">column</span><span class="o">.</span><span class="n">table</span> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="n">Column</span><span class="p">))</span>
+</span><span id="L-6619"><a href="#L-6619"><span class="linenos">6619</span></a> <span class="k">if</span> <span class="n">table</span> <span class="ow">and</span> <span class="n">table</span> <span class="o">!=</span> <span class="n">exclude</span>
+</span><span id="L-6620"><a href="#L-6620"><span class="linenos">6620</span></a> <span class="p">}</span>
+</span><span id="L-6621"><a href="#L-6621"><span class="linenos">6621</span></a>
+</span><span id="L-6622"><a href="#L-6622"><span class="linenos">6622</span></a>
+</span><span id="L-6623"><a href="#L-6623"><span class="linenos">6623</span></a><span class="k">def</span> <span class="nf">table_name</span><span class="p">(</span><span class="n">table</span><span class="p">:</span> <span class="n">Table</span> <span class="o">|</span> <span class="nb">str</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">identify</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-6624"><a href="#L-6624"><span class="linenos">6624</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-6625"><a href="#L-6625"><span class="linenos">6625</span></a>
-</span><span id="L-6626"><a href="#L-6626"><span class="linenos">6626</span></a><span class="sd"> Note:</span>
-</span><span id="L-6627"><a href="#L-6627"><span class="linenos">6627</span></a><span class="sd"> The arguments `args` and `kwargs` are mutually exclusive.</span>
-</span><span id="L-6628"><a href="#L-6628"><span class="linenos">6628</span></a>
-</span><span id="L-6629"><a href="#L-6629"><span class="linenos">6629</span></a><span class="sd"> Returns:</span>
-</span><span id="L-6630"><a href="#L-6630"><span class="linenos">6630</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-6631"><a href="#L-6631"><span class="linenos">6631</span></a><span class="sd"> correspond to an existing `sqlglot.expressions.Func` class.</span>
-</span><span id="L-6632"><a href="#L-6632"><span class="linenos">6632</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6633"><a href="#L-6633"><span class="linenos">6633</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-6634"><a href="#L-6634"><span class="linenos">6634</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-6635"><a href="#L-6635"><span class="linenos">6635</span></a>
-</span><span id="L-6636"><a href="#L-6636"><span class="linenos">6636</span></a> <span 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-6626"><a href="#L-6626"><span class="linenos">6626</span></a><span class="sd"> Args:</span>
+</span><span id="L-6627"><a href="#L-6627"><span class="linenos">6627</span></a><span class="sd"> table: Table expression node or string.</span>
+</span><span id="L-6628"><a href="#L-6628"><span class="linenos">6628</span></a><span class="sd"> dialect: The dialect to generate the table name for.</span>
+</span><span id="L-6629"><a href="#L-6629"><span class="linenos">6629</span></a><span class="sd"> identify: Determines when an identifier should be quoted. Possible values are:</span>
+</span><span id="L-6630"><a href="#L-6630"><span class="linenos">6630</span></a><span class="sd"> False (default): Never quote, except in cases where it&#39;s mandatory by the dialect.</span>
+</span><span id="L-6631"><a href="#L-6631"><span class="linenos">6631</span></a><span class="sd"> True: Always quote.</span>
+</span><span id="L-6632"><a href="#L-6632"><span class="linenos">6632</span></a>
+</span><span id="L-6633"><a href="#L-6633"><span class="linenos">6633</span></a><span class="sd"> Examples:</span>
+</span><span id="L-6634"><a href="#L-6634"><span class="linenos">6634</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
+</span><span id="L-6635"><a href="#L-6635"><span class="linenos">6635</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-6636"><a href="#L-6636"><span class="linenos">6636</span></a><span class="sd"> &#39;a.b.c&#39;</span>
</span><span id="L-6637"><a href="#L-6637"><span class="linenos">6637</span></a>
-</span><span id="L-6638"><a href="#L-6638"><span class="linenos">6638</span></a> <span class="n">dialect</span> <span class="o">=</span> <span class="n">Dialect</span><span class="o">.</span><span class="n">get_or_raise</span><span class="p">(</span><span class="n">dialect</span><span class="p">)</span>
-</span><span id="L-6639"><a href="#L-6639"><span class="linenos">6639</span></a>
-</span><span id="L-6640"><a href="#L-6640"><span class="linenos">6640</span></a> <span class="n">converted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">args</span><span class="p">]</span>
-</span><span id="L-6641"><a href="#L-6641"><span class="linenos">6641</span></a> <span class="n">kwargs</span> <span class="o">=</span> <span class="p">{</span><span class="n">key</span><span class="p">:</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span>
-</span><span id="L-6642"><a href="#L-6642"><span class="linenos">6642</span></a>
-</span><span id="L-6643"><a href="#L-6643"><span class="linenos">6643</span></a> <span class="n">constructor</span> <span class="o">=</span> <span class="n">dialect</span><span class="o">.</span><span class="n">parser_class</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span>
-</span><span id="L-6644"><a href="#L-6644"><span class="linenos">6644</span></a> <span class="k">if</span> <span class="n">constructor</span><span class="p">:</span>
-</span><span id="L-6645"><a href="#L-6645"><span class="linenos">6645</span></a> <span class="k">if</span> <span class="n">converted</span><span class="p">:</span>
-</span><span id="L-6646"><a href="#L-6646"><span class="linenos">6646</span></a> <span class="k">if</span> <span class="s2">&quot;dialect&quot;</span> <span class="ow">in</span> <span class="n">constructor</span><span class="o">.</span><span class="vm">__code__</span><span class="o">.</span><span class="n">co_varnames</span><span class="p">:</span>
-</span><span id="L-6647"><a href="#L-6647"><span class="linenos">6647</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">constructor</span><span class="p">(</span><span class="n">converted</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span>
-</span><span id="L-6648"><a href="#L-6648"><span class="linenos">6648</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-6649"><a href="#L-6649"><span class="linenos">6649</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">constructor</span><span class="p">(</span><span class="n">converted</span><span class="p">)</span>
-</span><span id="L-6650"><a href="#L-6650"><span class="linenos">6650</span></a> <span class="k">elif</span> <span class="n">constructor</span><span class="o">.</span><span class="vm">__name__</span> <span class="o">==</span> <span class="s2">&quot;from_arg_list&quot;</span><span class="p">:</span>
-</span><span id="L-6651"><a href="#L-6651"><span class="linenos">6651</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">constructor</span><span class="o">.</span><span class="vm">__self__</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="c1"># type: ignore</span>
-</span><span id="L-6652"><a href="#L-6652"><span class="linenos">6652</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-6653"><a href="#L-6653"><span class="linenos">6653</span></a> <span class="n">constructor</span> <span class="o">=</span> <span class="n">FUNCTION_BY_NAME</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span>
-</span><span id="L-6654"><a href="#L-6654"><span class="linenos">6654</span></a> <span class="k">if</span> <span class="n">constructor</span><span class="p">:</span>
-</span><span id="L-6655"><a href="#L-6655"><span class="linenos">6655</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">constructor</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
-</span><span id="L-6656"><a href="#L-6656"><span class="linenos">6656</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-6657"><a href="#L-6657"><span class="linenos">6657</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span>
-</span><span id="L-6658"><a href="#L-6658"><span class="linenos">6658</span></a> <span class="sa">f</span><span class="s2">&quot;Unable to convert &#39;</span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">&#39; into a Func. Either manually construct &quot;</span>
-</span><span id="L-6659"><a href="#L-6659"><span class="linenos">6659</span></a> <span class="s2">&quot;the Func expression of interest or parse the function call.&quot;</span>
-</span><span id="L-6660"><a href="#L-6660"><span class="linenos">6660</span></a> <span class="p">)</span>
-</span><span id="L-6661"><a href="#L-6661"><span class="linenos">6661</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-6662"><a href="#L-6662"><span class="linenos">6662</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-6663"><a href="#L-6663"><span class="linenos">6663</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-6664"><a href="#L-6664"><span class="linenos">6664</span></a>
-</span><span id="L-6665"><a href="#L-6665"><span class="linenos">6665</span></a> <span class="k">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-6666"><a href="#L-6666"><span class="linenos">6666</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-6667"><a href="#L-6667"><span class="linenos">6667</span></a>
-</span><span id="L-6668"><a href="#L-6668"><span class="linenos">6668</span></a> <span class="k">return</span> <span class="n">function</span>
-</span><span id="L-6669"><a href="#L-6669"><span class="linenos">6669</span></a>
-</span><span id="L-6670"><a href="#L-6670"><span class="linenos">6670</span></a>
-</span><span id="L-6671"><a href="#L-6671"><span class="linenos">6671</span></a><span class="k">def</span> <span class="nf">case</span><span class="p">(</span>
-</span><span id="L-6672"><a href="#L-6672"><span class="linenos">6672</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-6673"><a href="#L-6673"><span class="linenos">6673</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-6674"><a href="#L-6674"><span class="linenos">6674</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Case</span><span class="p">:</span>
-</span><span id="L-6675"><a href="#L-6675"><span class="linenos">6675</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-6676"><a href="#L-6676"><span class="linenos">6676</span></a><span class="sd"> Initialize a CASE statement.</span>
-</span><span id="L-6677"><a href="#L-6677"><span class="linenos">6677</span></a>
-</span><span id="L-6678"><a href="#L-6678"><span class="linenos">6678</span></a><span class="sd"> Example:</span>
-</span><span id="L-6679"><a href="#L-6679"><span class="linenos">6679</span></a><span class="sd"> case().when(&quot;a = 1&quot;, &quot;foo&quot;).else_(&quot;bar&quot;)</span>
-</span><span id="L-6680"><a href="#L-6680"><span class="linenos">6680</span></a>
-</span><span id="L-6681"><a href="#L-6681"><span class="linenos">6681</span></a><span class="sd"> Args:</span>
-</span><span id="L-6682"><a href="#L-6682"><span class="linenos">6682</span></a><span class="sd"> expression: Optionally, the input expression (not all dialects support this)</span>
-</span><span id="L-6683"><a href="#L-6683"><span class="linenos">6683</span></a><span class="sd"> **opts: Extra keyword arguments for parsing `expression`</span>
-</span><span id="L-6684"><a href="#L-6684"><span class="linenos">6684</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6685"><a href="#L-6685"><span class="linenos">6685</span></a> <span class="k">if</span> <span class="n">expression</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="L-6686"><a href="#L-6686"><span class="linenos">6686</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-6687"><a href="#L-6687"><span class="linenos">6687</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-6688"><a href="#L-6688"><span class="linenos">6688</span></a> <span class="n">this</span> <span class="o">=</span> <span class="kc">None</span>
-</span><span id="L-6689"><a href="#L-6689"><span class="linenos">6689</span></a> <span class="k">return</span> <span class="n">Case</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">ifs</span><span class="o">=</span><span class="p">[])</span>
-</span><span id="L-6690"><a href="#L-6690"><span class="linenos">6690</span></a>
-</span><span id="L-6691"><a href="#L-6691"><span class="linenos">6691</span></a>
-</span><span id="L-6692"><a href="#L-6692"><span class="linenos">6692</span></a><span class="k">def</span> <span class="nf">cast_unless</span><span class="p">(</span>
-</span><span id="L-6693"><a href="#L-6693"><span class="linenos">6693</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-6694"><a href="#L-6694"><span class="linenos">6694</span></a> <span class="n">to</span><span class="p">:</span> <span class="n">DATA_TYPE</span><span class="p">,</span>
-</span><span id="L-6695"><a href="#L-6695"><span class="linenos">6695</span></a> <span class="o">*</span><span class="n">types</span><span class="p">:</span> <span class="n">DATA_TYPE</span><span class="p">,</span>
-</span><span id="L-6696"><a href="#L-6696"><span class="linenos">6696</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span>
-</span><span id="L-6697"><a href="#L-6697"><span class="linenos">6697</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span> <span class="o">|</span> <span class="n">Cast</span><span class="p">:</span>
-</span><span id="L-6698"><a href="#L-6698"><span class="linenos">6698</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-6699"><a href="#L-6699"><span class="linenos">6699</span></a><span class="sd"> Cast an expression to a data type unless it is a specified type.</span>
-</span><span id="L-6700"><a href="#L-6700"><span class="linenos">6700</span></a>
-</span><span id="L-6701"><a href="#L-6701"><span class="linenos">6701</span></a><span class="sd"> Args:</span>
-</span><span id="L-6702"><a href="#L-6702"><span class="linenos">6702</span></a><span class="sd"> expression: The expression to cast.</span>
-</span><span id="L-6703"><a href="#L-6703"><span class="linenos">6703</span></a><span class="sd"> to: The data type to cast to.</span>
-</span><span id="L-6704"><a href="#L-6704"><span class="linenos">6704</span></a><span class="sd"> **types: The types to exclude from casting.</span>
-</span><span id="L-6705"><a href="#L-6705"><span class="linenos">6705</span></a><span class="sd"> **opts: Extra keyword arguments for parsing `expression`</span>
-</span><span id="L-6706"><a href="#L-6706"><span class="linenos">6706</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6707"><a href="#L-6707"><span class="linenos">6707</span></a> <span class="n">expr</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-6708"><a href="#L-6708"><span class="linenos">6708</span></a> <span class="k">if</span> <span class="n">expr</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="o">*</span><span class="n">types</span><span class="p">):</span>
-</span><span id="L-6709"><a href="#L-6709"><span class="linenos">6709</span></a> <span class="k">return</span> <span class="n">expr</span>
-</span><span id="L-6710"><a href="#L-6710"><span class="linenos">6710</span></a> <span class="k">return</span> <span class="n">cast</span><span class="p">(</span><span class="n">expr</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-6711"><a href="#L-6711"><span class="linenos">6711</span></a>
+</span><span id="L-6638"><a href="#L-6638"><span class="linenos">6638</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6639"><a href="#L-6639"><span class="linenos">6639</span></a><span class="sd"> The table name.</span>
+</span><span id="L-6640"><a href="#L-6640"><span class="linenos">6640</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6641"><a href="#L-6641"><span class="linenos">6641</span></a>
+</span><span id="L-6642"><a href="#L-6642"><span class="linenos">6642</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span>
+</span><span id="L-6643"><a href="#L-6643"><span class="linenos">6643</span></a>
+</span><span id="L-6644"><a href="#L-6644"><span class="linenos">6644</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">table</span><span class="p">:</span>
+</span><span id="L-6645"><a href="#L-6645"><span class="linenos">6645</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-6646"><a href="#L-6646"><span class="linenos">6646</span></a>
+</span><span id="L-6647"><a href="#L-6647"><span class="linenos">6647</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-6648"><a href="#L-6648"><span class="linenos">6648</span></a> <span class="n">part</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">identify</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
+</span><span id="L-6649"><a href="#L-6649"><span class="linenos">6649</span></a> <span class="k">if</span> <span class="n">identify</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">SAFE_IDENTIFIER_RE</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">part</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+</span><span id="L-6650"><a href="#L-6650"><span class="linenos">6650</span></a> <span class="k">else</span> <span class="n">part</span><span class="o">.</span><span class="n">name</span>
+</span><span id="L-6651"><a href="#L-6651"><span class="linenos">6651</span></a> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="n">table</span><span class="o">.</span><span class="n">parts</span>
+</span><span id="L-6652"><a href="#L-6652"><span class="linenos">6652</span></a> <span class="p">)</span>
+</span><span id="L-6653"><a href="#L-6653"><span class="linenos">6653</span></a>
+</span><span id="L-6654"><a href="#L-6654"><span class="linenos">6654</span></a>
+</span><span id="L-6655"><a href="#L-6655"><span class="linenos">6655</span></a><span class="k">def</span> <span class="nf">normalize_table_name</span><span class="p">(</span><span class="n">table</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-6656"><a href="#L-6656"><span class="linenos">6656</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Returns a case normalized table name without quotes.</span>
+</span><span id="L-6657"><a href="#L-6657"><span class="linenos">6657</span></a>
+</span><span id="L-6658"><a href="#L-6658"><span class="linenos">6658</span></a><span class="sd"> Args:</span>
+</span><span id="L-6659"><a href="#L-6659"><span class="linenos">6659</span></a><span class="sd"> table: the table to normalize</span>
+</span><span id="L-6660"><a href="#L-6660"><span class="linenos">6660</span></a><span class="sd"> dialect: the dialect to use for normalization rules</span>
+</span><span id="L-6661"><a href="#L-6661"><span class="linenos">6661</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
+</span><span id="L-6662"><a href="#L-6662"><span class="linenos">6662</span></a>
+</span><span id="L-6663"><a href="#L-6663"><span class="linenos">6663</span></a><span class="sd"> Examples:</span>
+</span><span id="L-6664"><a href="#L-6664"><span class="linenos">6664</span></a><span class="sd"> &gt;&gt;&gt; normalize_table_name(&quot;`A-B`.c&quot;, dialect=&quot;bigquery&quot;)</span>
+</span><span id="L-6665"><a href="#L-6665"><span class="linenos">6665</span></a><span class="sd"> &#39;A-B.c&#39;</span>
+</span><span id="L-6666"><a href="#L-6666"><span class="linenos">6666</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6667"><a href="#L-6667"><span class="linenos">6667</span></a> <span class="kn">from</span> <span class="nn">sqlglot.optimizer.normalize_identifiers</span> <span class="kn">import</span> <span class="n">normalize_identifiers</span>
+</span><span id="L-6668"><a href="#L-6668"><span class="linenos">6668</span></a>
+</span><span id="L-6669"><a href="#L-6669"><span class="linenos">6669</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-6670"><a href="#L-6670"><span class="linenos">6670</span></a> <span class="n">p</span><span class="o">.</span><span class="n">name</span>
+</span><span id="L-6671"><a href="#L-6671"><span class="linenos">6671</span></a> <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">normalize_identifiers</span><span class="p">(</span>
+</span><span id="L-6672"><a href="#L-6672"><span class="linenos">6672</span></a> <span class="n">to_table</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">),</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span>
+</span><span id="L-6673"><a href="#L-6673"><span class="linenos">6673</span></a> <span class="p">)</span><span class="o">.</span><span class="n">parts</span>
+</span><span id="L-6674"><a href="#L-6674"><span class="linenos">6674</span></a> <span class="p">)</span>
+</span><span id="L-6675"><a href="#L-6675"><span class="linenos">6675</span></a>
+</span><span id="L-6676"><a href="#L-6676"><span class="linenos">6676</span></a>
+</span><span id="L-6677"><a href="#L-6677"><span class="linenos">6677</span></a><span class="k">def</span> <span class="nf">replace_tables</span><span class="p">(</span>
+</span><span id="L-6678"><a href="#L-6678"><span class="linenos">6678</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">E</span><span class="p">,</span> <span class="n">mapping</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span><span class="p">],</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-6679"><a href="#L-6679"><span class="linenos">6679</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
+</span><span id="L-6680"><a href="#L-6680"><span class="linenos">6680</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-6681"><a href="#L-6681"><span class="linenos">6681</span></a>
+</span><span id="L-6682"><a href="#L-6682"><span class="linenos">6682</span></a><span class="sd"> Args:</span>
+</span><span id="L-6683"><a href="#L-6683"><span class="linenos">6683</span></a><span class="sd"> expression: expression node to be transformed and replaced.</span>
+</span><span id="L-6684"><a href="#L-6684"><span class="linenos">6684</span></a><span class="sd"> mapping: mapping of table names.</span>
+</span><span id="L-6685"><a href="#L-6685"><span class="linenos">6685</span></a><span class="sd"> dialect: the dialect of the mapping table</span>
+</span><span id="L-6686"><a href="#L-6686"><span class="linenos">6686</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
+</span><span id="L-6687"><a href="#L-6687"><span class="linenos">6687</span></a>
+</span><span id="L-6688"><a href="#L-6688"><span class="linenos">6688</span></a><span class="sd"> Examples:</span>
+</span><span id="L-6689"><a href="#L-6689"><span class="linenos">6689</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
+</span><span id="L-6690"><a href="#L-6690"><span class="linenos">6690</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-6691"><a href="#L-6691"><span class="linenos">6691</span></a><span class="sd"> &#39;SELECT * FROM c /* a.b */&#39;</span>
+</span><span id="L-6692"><a href="#L-6692"><span class="linenos">6692</span></a>
+</span><span id="L-6693"><a href="#L-6693"><span class="linenos">6693</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6694"><a href="#L-6694"><span class="linenos">6694</span></a><span class="sd"> The mapped expression.</span>
+</span><span id="L-6695"><a href="#L-6695"><span class="linenos">6695</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6696"><a href="#L-6696"><span class="linenos">6696</span></a>
+</span><span id="L-6697"><a href="#L-6697"><span class="linenos">6697</span></a> <span class="n">mapping</span> <span class="o">=</span> <span class="p">{</span><span class="n">normalize_table_name</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">):</span> <span class="n">v</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">mapping</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span>
+</span><span id="L-6698"><a href="#L-6698"><span class="linenos">6698</span></a>
+</span><span id="L-6699"><a href="#L-6699"><span class="linenos">6699</span></a> <span class="k">def</span> <span class="nf">_replace_tables</span><span class="p">(</span><span class="n">node</span><span class="p">:</span> <span class="n">Expression</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="L-6700"><a href="#L-6700"><span class="linenos">6700</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-6701"><a href="#L-6701"><span class="linenos">6701</span></a> <span class="n">original</span> <span class="o">=</span> <span class="n">normalize_table_name</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span>
+</span><span id="L-6702"><a href="#L-6702"><span class="linenos">6702</span></a> <span class="n">new_name</span> <span class="o">=</span> <span class="n">mapping</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">original</span><span class="p">)</span>
+</span><span id="L-6703"><a href="#L-6703"><span class="linenos">6703</span></a>
+</span><span id="L-6704"><a href="#L-6704"><span class="linenos">6704</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
+</span><span id="L-6705"><a href="#L-6705"><span class="linenos">6705</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">to_table</span><span class="p">(</span>
+</span><span id="L-6706"><a href="#L-6706"><span class="linenos">6706</span></a> <span class="n">new_name</span><span class="p">,</span>
+</span><span id="L-6707"><a href="#L-6707"><span class="linenos">6707</span></a> <span class="o">**</span><span class="p">{</span><span class="n">k</span><span class="p">:</span> <span class="n">v</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">node</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> <span class="k">if</span> <span class="n">k</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">TABLE_PARTS</span><span class="p">},</span>
+</span><span id="L-6708"><a href="#L-6708"><span class="linenos">6708</span></a> <span class="p">)</span>
+</span><span id="L-6709"><a href="#L-6709"><span class="linenos">6709</span></a> <span class="n">table</span><span class="o">.</span><span class="n">add_comments</span><span class="p">([</span><span class="n">original</span><span class="p">])</span>
+</span><span id="L-6710"><a href="#L-6710"><span class="linenos">6710</span></a> <span class="k">return</span> <span class="n">table</span>
+</span><span id="L-6711"><a href="#L-6711"><span class="linenos">6711</span></a> <span class="k">return</span> <span class="n">node</span>
</span><span id="L-6712"><a href="#L-6712"><span class="linenos">6712</span></a>
-</span><span id="L-6713"><a href="#L-6713"><span class="linenos">6713</span></a><span class="k">def</span> <span class="nf">true</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">Boolean</span><span class="p">:</span>
-</span><span id="L-6714"><a href="#L-6714"><span class="linenos">6714</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-6715"><a href="#L-6715"><span class="linenos">6715</span></a><span class="sd"> Returns a true Boolean expression.</span>
-</span><span id="L-6716"><a href="#L-6716"><span class="linenos">6716</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6717"><a href="#L-6717"><span class="linenos">6717</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-6713"><a href="#L-6713"><span class="linenos">6713</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_replace_tables</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span>
+</span><span id="L-6714"><a href="#L-6714"><span class="linenos">6714</span></a>
+</span><span id="L-6715"><a href="#L-6715"><span class="linenos">6715</span></a>
+</span><span id="L-6716"><a href="#L-6716"><span class="linenos">6716</span></a><span class="k">def</span> <span class="nf">replace_placeholders</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="L-6717"><a href="#L-6717"><span class="linenos">6717</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Replace placeholders in an expression.</span>
</span><span id="L-6718"><a href="#L-6718"><span class="linenos">6718</span></a>
-</span><span id="L-6719"><a href="#L-6719"><span class="linenos">6719</span></a>
-</span><span id="L-6720"><a href="#L-6720"><span class="linenos">6720</span></a><span class="k">def</span> <span class="nf">false</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">Boolean</span><span class="p">:</span>
-</span><span id="L-6721"><a href="#L-6721"><span class="linenos">6721</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-6722"><a href="#L-6722"><span class="linenos">6722</span></a><span class="sd"> Returns a false Boolean expression.</span>
-</span><span id="L-6723"><a href="#L-6723"><span class="linenos">6723</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6724"><a href="#L-6724"><span class="linenos">6724</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-6725"><a href="#L-6725"><span class="linenos">6725</span></a>
-</span><span id="L-6726"><a href="#L-6726"><span class="linenos">6726</span></a>
-</span><span id="L-6727"><a href="#L-6727"><span class="linenos">6727</span></a><span class="k">def</span> <span class="nf">null</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">Null</span><span class="p">:</span>
-</span><span id="L-6728"><a href="#L-6728"><span class="linenos">6728</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-6729"><a href="#L-6729"><span class="linenos">6729</span></a><span class="sd"> Returns a Null expression.</span>
-</span><span id="L-6730"><a href="#L-6730"><span class="linenos">6730</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6731"><a href="#L-6731"><span class="linenos">6731</span></a> <span class="k">return</span> <span class="n">Null</span><span class="p">()</span>
-</span><span id="L-6732"><a href="#L-6732"><span class="linenos">6732</span></a>
-</span><span id="L-6733"><a href="#L-6733"><span class="linenos">6733</span></a>
-</span><span id="L-6734"><a href="#L-6734"><span class="linenos">6734</span></a><span class="c1"># TODO: deprecate this</span>
-</span><span id="L-6735"><a href="#L-6735"><span class="linenos">6735</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-6736"><a href="#L-6736"><span class="linenos">6736</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-6737"><a href="#L-6737"><span class="linenos">6737</span></a><span class="n">NULL</span> <span class="o">=</span> <span class="n">Null</span><span class="p">()</span>
+</span><span id="L-6719"><a href="#L-6719"><span class="linenos">6719</span></a><span class="sd"> Args:</span>
+</span><span id="L-6720"><a href="#L-6720"><span class="linenos">6720</span></a><span class="sd"> expression: expression node to be transformed and replaced.</span>
+</span><span id="L-6721"><a href="#L-6721"><span class="linenos">6721</span></a><span class="sd"> args: positional names that will substitute unnamed placeholders in the given order.</span>
+</span><span id="L-6722"><a href="#L-6722"><span class="linenos">6722</span></a><span class="sd"> kwargs: keyword arguments that will substitute named placeholders.</span>
+</span><span id="L-6723"><a href="#L-6723"><span class="linenos">6723</span></a>
+</span><span id="L-6724"><a href="#L-6724"><span class="linenos">6724</span></a><span class="sd"> Examples:</span>
+</span><span id="L-6725"><a href="#L-6725"><span class="linenos">6725</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
+</span><span id="L-6726"><a href="#L-6726"><span class="linenos">6726</span></a><span class="sd"> &gt;&gt;&gt; replace_placeholders(</span>
+</span><span id="L-6727"><a href="#L-6727"><span class="linenos">6727</span></a><span class="sd"> ... parse_one(&quot;select * from :tbl where ? = ?&quot;),</span>
+</span><span id="L-6728"><a href="#L-6728"><span class="linenos">6728</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-6729"><a href="#L-6729"><span class="linenos">6729</span></a><span class="sd"> ... ).sql()</span>
+</span><span id="L-6730"><a href="#L-6730"><span class="linenos">6730</span></a><span class="sd"> &quot;SELECT * FROM foo WHERE str_col = &#39;b&#39;&quot;</span>
+</span><span id="L-6731"><a href="#L-6731"><span class="linenos">6731</span></a>
+</span><span id="L-6732"><a href="#L-6732"><span class="linenos">6732</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6733"><a href="#L-6733"><span class="linenos">6733</span></a><span class="sd"> The mapped expression.</span>
+</span><span id="L-6734"><a href="#L-6734"><span class="linenos">6734</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6735"><a href="#L-6735"><span class="linenos">6735</span></a>
+</span><span id="L-6736"><a href="#L-6736"><span class="linenos">6736</span></a> <span class="k">def</span> <span class="nf">_replace_placeholders</span><span class="p">(</span><span class="n">node</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="L-6737"><a href="#L-6737"><span class="linenos">6737</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-6738"><a href="#L-6738"><span class="linenos">6738</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-6739"><a href="#L-6739"><span class="linenos">6739</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-6740"><a href="#L-6740"><span class="linenos">6740</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
+</span><span id="L-6741"><a href="#L-6741"><span class="linenos">6741</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-6742"><a href="#L-6742"><span class="linenos">6742</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-6743"><a href="#L-6743"><span class="linenos">6743</span></a> <span class="k">try</span><span class="p">:</span>
+</span><span id="L-6744"><a href="#L-6744"><span class="linenos">6744</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-6745"><a href="#L-6745"><span class="linenos">6745</span></a> <span class="k">except</span> <span class="ne">StopIteration</span><span class="p">:</span>
+</span><span id="L-6746"><a href="#L-6746"><span class="linenos">6746</span></a> <span class="k">pass</span>
+</span><span id="L-6747"><a href="#L-6747"><span class="linenos">6747</span></a> <span class="k">return</span> <span class="n">node</span>
+</span><span id="L-6748"><a href="#L-6748"><span class="linenos">6748</span></a>
+</span><span id="L-6749"><a href="#L-6749"><span class="linenos">6749</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-6750"><a href="#L-6750"><span class="linenos">6750</span></a>
+</span><span id="L-6751"><a href="#L-6751"><span class="linenos">6751</span></a>
+</span><span id="L-6752"><a href="#L-6752"><span class="linenos">6752</span></a><span class="k">def</span> <span class="nf">expand</span><span class="p">(</span>
+</span><span id="L-6753"><a href="#L-6753"><span class="linenos">6753</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span>
+</span><span id="L-6754"><a href="#L-6754"><span class="linenos">6754</span></a> <span class="n">sources</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Subqueryable</span><span class="p">],</span>
+</span><span id="L-6755"><a href="#L-6755"><span class="linenos">6755</span></a> <span class="n">dialect</span><span 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-6756"><a href="#L-6756"><span class="linenos">6756</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-6757"><a href="#L-6757"><span class="linenos">6757</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="L-6758"><a href="#L-6758"><span class="linenos">6758</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-6759"><a href="#L-6759"><span class="linenos">6759</span></a>
+</span><span id="L-6760"><a href="#L-6760"><span class="linenos">6760</span></a><span class="sd"> Examples:</span>
+</span><span id="L-6761"><a href="#L-6761"><span class="linenos">6761</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
+</span><span id="L-6762"><a href="#L-6762"><span class="linenos">6762</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-6763"><a href="#L-6763"><span class="linenos">6763</span></a><span class="sd"> &#39;SELECT * FROM (SELECT * FROM y) AS z /* source: x */&#39;</span>
+</span><span id="L-6764"><a href="#L-6764"><span class="linenos">6764</span></a>
+</span><span id="L-6765"><a href="#L-6765"><span class="linenos">6765</span></a><span class="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-6766"><a href="#L-6766"><span class="linenos">6766</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-6767"><a href="#L-6767"><span class="linenos">6767</span></a>
+</span><span id="L-6768"><a href="#L-6768"><span class="linenos">6768</span></a><span class="sd"> Args:</span>
+</span><span id="L-6769"><a href="#L-6769"><span class="linenos">6769</span></a><span class="sd"> expression: The expression to expand.</span>
+</span><span id="L-6770"><a href="#L-6770"><span class="linenos">6770</span></a><span class="sd"> sources: A dictionary of name to Subqueryables.</span>
+</span><span id="L-6771"><a href="#L-6771"><span class="linenos">6771</span></a><span class="sd"> dialect: The dialect of the sources dict.</span>
+</span><span id="L-6772"><a href="#L-6772"><span class="linenos">6772</span></a><span class="sd"> copy: Whether or not to copy the expression during transformation. Defaults to True.</span>
+</span><span id="L-6773"><a href="#L-6773"><span class="linenos">6773</span></a>
+</span><span id="L-6774"><a href="#L-6774"><span class="linenos">6774</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6775"><a href="#L-6775"><span class="linenos">6775</span></a><span class="sd"> The transformed expression.</span>
+</span><span id="L-6776"><a href="#L-6776"><span class="linenos">6776</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6777"><a href="#L-6777"><span class="linenos">6777</span></a> <span class="n">sources</span> <span class="o">=</span> <span class="p">{</span><span class="n">normalize_table_name</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">):</span> <span class="n">v</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">sources</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span>
+</span><span id="L-6778"><a href="#L-6778"><span class="linenos">6778</span></a>
+</span><span id="L-6779"><a href="#L-6779"><span class="linenos">6779</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-6780"><a href="#L-6780"><span class="linenos">6780</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-6781"><a href="#L-6781"><span class="linenos">6781</span></a> <span class="n">name</span> <span class="o">=</span> <span class="n">normalize_table_name</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span>
+</span><span id="L-6782"><a href="#L-6782"><span class="linenos">6782</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-6783"><a href="#L-6783"><span class="linenos">6783</span></a> <span class="k">if</span> <span class="n">source</span><span class="p">:</span>
+</span><span id="L-6784"><a href="#L-6784"><span class="linenos">6784</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-6785"><a href="#L-6785"><span class="linenos">6785</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-6786"><a href="#L-6786"><span class="linenos">6786</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-6787"><a href="#L-6787"><span class="linenos">6787</span></a> <span class="k">return</span> <span class="n">node</span>
+</span><span id="L-6788"><a href="#L-6788"><span class="linenos">6788</span></a>
+</span><span id="L-6789"><a href="#L-6789"><span class="linenos">6789</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-6790"><a href="#L-6790"><span class="linenos">6790</span></a>
+</span><span id="L-6791"><a href="#L-6791"><span class="linenos">6791</span></a>
+</span><span id="L-6792"><a href="#L-6792"><span class="linenos">6792</span></a><span class="k">def</span> <span class="nf">func</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Func</span><span class="p">:</span>
+</span><span id="L-6793"><a href="#L-6793"><span class="linenos">6793</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-6794"><a href="#L-6794"><span class="linenos">6794</span></a><span class="sd"> Returns a Func expression.</span>
+</span><span id="L-6795"><a href="#L-6795"><span class="linenos">6795</span></a>
+</span><span id="L-6796"><a href="#L-6796"><span class="linenos">6796</span></a><span class="sd"> Examples:</span>
+</span><span id="L-6797"><a href="#L-6797"><span class="linenos">6797</span></a><span class="sd"> &gt;&gt;&gt; func(&quot;abs&quot;, 5).sql()</span>
+</span><span id="L-6798"><a href="#L-6798"><span class="linenos">6798</span></a><span class="sd"> &#39;ABS(5)&#39;</span>
+</span><span id="L-6799"><a href="#L-6799"><span class="linenos">6799</span></a>
+</span><span id="L-6800"><a href="#L-6800"><span class="linenos">6800</span></a><span class="sd"> &gt;&gt;&gt; func(&quot;cast&quot;, this=5, to=DataType.build(&quot;DOUBLE&quot;)).sql()</span>
+</span><span id="L-6801"><a href="#L-6801"><span class="linenos">6801</span></a><span class="sd"> &#39;CAST(5 AS DOUBLE)&#39;</span>
+</span><span id="L-6802"><a href="#L-6802"><span class="linenos">6802</span></a>
+</span><span id="L-6803"><a href="#L-6803"><span class="linenos">6803</span></a><span class="sd"> Args:</span>
+</span><span id="L-6804"><a href="#L-6804"><span class="linenos">6804</span></a><span class="sd"> name: the name of the function to build.</span>
+</span><span id="L-6805"><a href="#L-6805"><span class="linenos">6805</span></a><span class="sd"> args: the args used to instantiate the function of interest.</span>
+</span><span id="L-6806"><a href="#L-6806"><span class="linenos">6806</span></a><span class="sd"> copy: whether or not to copy the argument expressions.</span>
+</span><span id="L-6807"><a href="#L-6807"><span class="linenos">6807</span></a><span class="sd"> dialect: the source dialect.</span>
+</span><span id="L-6808"><a href="#L-6808"><span class="linenos">6808</span></a><span class="sd"> kwargs: the kwargs used to instantiate the function of interest.</span>
+</span><span id="L-6809"><a href="#L-6809"><span class="linenos">6809</span></a>
+</span><span id="L-6810"><a href="#L-6810"><span class="linenos">6810</span></a><span class="sd"> Note:</span>
+</span><span id="L-6811"><a href="#L-6811"><span class="linenos">6811</span></a><span class="sd"> The arguments `args` and `kwargs` are mutually exclusive.</span>
+</span><span id="L-6812"><a href="#L-6812"><span class="linenos">6812</span></a>
+</span><span id="L-6813"><a href="#L-6813"><span class="linenos">6813</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6814"><a href="#L-6814"><span class="linenos">6814</span></a><span class="sd"> An instance of the function of interest, or an anonymous function, if `name` doesn&#39;t</span>
+</span><span id="L-6815"><a href="#L-6815"><span class="linenos">6815</span></a><span class="sd"> correspond to an existing `sqlglot.expressions.Func` class.</span>
+</span><span id="L-6816"><a href="#L-6816"><span class="linenos">6816</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6817"><a href="#L-6817"><span class="linenos">6817</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-6818"><a href="#L-6818"><span class="linenos">6818</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-6819"><a href="#L-6819"><span class="linenos">6819</span></a>
+</span><span id="L-6820"><a href="#L-6820"><span class="linenos">6820</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-6821"><a href="#L-6821"><span class="linenos">6821</span></a>
+</span><span id="L-6822"><a href="#L-6822"><span class="linenos">6822</span></a> <span class="n">dialect</span> <span class="o">=</span> <span class="n">Dialect</span><span class="o">.</span><span class="n">get_or_raise</span><span class="p">(</span><span class="n">dialect</span><span class="p">)</span>
+</span><span id="L-6823"><a href="#L-6823"><span class="linenos">6823</span></a>
+</span><span id="L-6824"><a href="#L-6824"><span class="linenos">6824</span></a> <span class="n">converted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">args</span><span class="p">]</span>
+</span><span id="L-6825"><a href="#L-6825"><span class="linenos">6825</span></a> <span class="n">kwargs</span> <span class="o">=</span> <span class="p">{</span><span class="n">key</span><span class="p">:</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span>
+</span><span id="L-6826"><a href="#L-6826"><span class="linenos">6826</span></a>
+</span><span id="L-6827"><a href="#L-6827"><span class="linenos">6827</span></a> <span class="n">constructor</span> <span class="o">=</span> <span class="n">dialect</span><span class="o">.</span><span class="n">parser_class</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span>
+</span><span id="L-6828"><a href="#L-6828"><span class="linenos">6828</span></a> <span class="k">if</span> <span class="n">constructor</span><span class="p">:</span>
+</span><span id="L-6829"><a href="#L-6829"><span class="linenos">6829</span></a> <span class="k">if</span> <span class="n">converted</span><span class="p">:</span>
+</span><span id="L-6830"><a href="#L-6830"><span class="linenos">6830</span></a> <span class="k">if</span> <span class="s2">&quot;dialect&quot;</span> <span class="ow">in</span> <span class="n">constructor</span><span class="o">.</span><span class="vm">__code__</span><span class="o">.</span><span class="n">co_varnames</span><span class="p">:</span>
+</span><span id="L-6831"><a href="#L-6831"><span class="linenos">6831</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">constructor</span><span class="p">(</span><span class="n">converted</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span>
+</span><span id="L-6832"><a href="#L-6832"><span class="linenos">6832</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-6833"><a href="#L-6833"><span class="linenos">6833</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">constructor</span><span class="p">(</span><span class="n">converted</span><span class="p">)</span>
+</span><span id="L-6834"><a href="#L-6834"><span class="linenos">6834</span></a> <span class="k">elif</span> <span class="n">constructor</span><span class="o">.</span><span class="vm">__name__</span> <span class="o">==</span> <span class="s2">&quot;from_arg_list&quot;</span><span class="p">:</span>
+</span><span id="L-6835"><a href="#L-6835"><span class="linenos">6835</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">constructor</span><span class="o">.</span><span class="vm">__self__</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="c1"># type: ignore</span>
+</span><span id="L-6836"><a href="#L-6836"><span class="linenos">6836</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-6837"><a href="#L-6837"><span class="linenos">6837</span></a> <span class="n">constructor</span> <span class="o">=</span> <span class="n">FUNCTION_BY_NAME</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span>
+</span><span id="L-6838"><a href="#L-6838"><span class="linenos">6838</span></a> <span class="k">if</span> <span class="n">constructor</span><span class="p">:</span>
+</span><span id="L-6839"><a href="#L-6839"><span class="linenos">6839</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">constructor</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+</span><span id="L-6840"><a href="#L-6840"><span class="linenos">6840</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-6841"><a href="#L-6841"><span class="linenos">6841</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span>
+</span><span id="L-6842"><a href="#L-6842"><span class="linenos">6842</span></a> <span class="sa">f</span><span class="s2">&quot;Unable to convert &#39;</span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">&#39; into a Func. Either manually construct &quot;</span>
+</span><span id="L-6843"><a href="#L-6843"><span class="linenos">6843</span></a> <span class="s2">&quot;the Func expression of interest or parse the function call.&quot;</span>
+</span><span id="L-6844"><a href="#L-6844"><span class="linenos">6844</span></a> <span class="p">)</span>
+</span><span id="L-6845"><a href="#L-6845"><span class="linenos">6845</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-6846"><a href="#L-6846"><span class="linenos">6846</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-6847"><a href="#L-6847"><span class="linenos">6847</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-6848"><a href="#L-6848"><span class="linenos">6848</span></a>
+</span><span id="L-6849"><a href="#L-6849"><span class="linenos">6849</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-6850"><a href="#L-6850"><span class="linenos">6850</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-6851"><a href="#L-6851"><span class="linenos">6851</span></a>
+</span><span id="L-6852"><a href="#L-6852"><span class="linenos">6852</span></a> <span class="k">return</span> <span class="n">function</span>
+</span><span id="L-6853"><a href="#L-6853"><span class="linenos">6853</span></a>
+</span><span id="L-6854"><a href="#L-6854"><span class="linenos">6854</span></a>
+</span><span id="L-6855"><a href="#L-6855"><span class="linenos">6855</span></a><span class="k">def</span> <span class="nf">case</span><span class="p">(</span>
+</span><span id="L-6856"><a href="#L-6856"><span class="linenos">6856</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-6857"><a href="#L-6857"><span class="linenos">6857</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-6858"><a href="#L-6858"><span class="linenos">6858</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Case</span><span class="p">:</span>
+</span><span id="L-6859"><a href="#L-6859"><span class="linenos">6859</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-6860"><a href="#L-6860"><span class="linenos">6860</span></a><span class="sd"> Initialize a CASE statement.</span>
+</span><span id="L-6861"><a href="#L-6861"><span class="linenos">6861</span></a>
+</span><span id="L-6862"><a href="#L-6862"><span class="linenos">6862</span></a><span class="sd"> Example:</span>
+</span><span id="L-6863"><a href="#L-6863"><span class="linenos">6863</span></a><span class="sd"> case().when(&quot;a = 1&quot;, &quot;foo&quot;).else_(&quot;bar&quot;)</span>
+</span><span id="L-6864"><a href="#L-6864"><span class="linenos">6864</span></a>
+</span><span id="L-6865"><a href="#L-6865"><span class="linenos">6865</span></a><span class="sd"> Args:</span>
+</span><span id="L-6866"><a href="#L-6866"><span class="linenos">6866</span></a><span class="sd"> expression: Optionally, the input expression (not all dialects support this)</span>
+</span><span id="L-6867"><a href="#L-6867"><span class="linenos">6867</span></a><span class="sd"> **opts: Extra keyword arguments for parsing `expression`</span>
+</span><span id="L-6868"><a href="#L-6868"><span class="linenos">6868</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6869"><a href="#L-6869"><span class="linenos">6869</span></a> <span class="k">if</span> <span class="n">expression</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="L-6870"><a href="#L-6870"><span class="linenos">6870</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-6871"><a href="#L-6871"><span class="linenos">6871</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-6872"><a href="#L-6872"><span class="linenos">6872</span></a> <span class="n">this</span> <span class="o">=</span> <span class="kc">None</span>
+</span><span id="L-6873"><a href="#L-6873"><span class="linenos">6873</span></a> <span class="k">return</span> <span class="n">Case</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">ifs</span><span class="o">=</span><span class="p">[])</span>
+</span><span id="L-6874"><a href="#L-6874"><span class="linenos">6874</span></a>
+</span><span id="L-6875"><a href="#L-6875"><span class="linenos">6875</span></a>
+</span><span id="L-6876"><a href="#L-6876"><span class="linenos">6876</span></a><span class="k">def</span> <span class="nf">cast_unless</span><span class="p">(</span>
+</span><span id="L-6877"><a href="#L-6877"><span class="linenos">6877</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-6878"><a href="#L-6878"><span class="linenos">6878</span></a> <span class="n">to</span><span class="p">:</span> <span class="n">DATA_TYPE</span><span class="p">,</span>
+</span><span id="L-6879"><a href="#L-6879"><span class="linenos">6879</span></a> <span class="o">*</span><span class="n">types</span><span class="p">:</span> <span class="n">DATA_TYPE</span><span class="p">,</span>
+</span><span id="L-6880"><a href="#L-6880"><span class="linenos">6880</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span>
+</span><span id="L-6881"><a href="#L-6881"><span class="linenos">6881</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span> <span class="o">|</span> <span class="n">Cast</span><span class="p">:</span>
+</span><span id="L-6882"><a href="#L-6882"><span class="linenos">6882</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-6883"><a href="#L-6883"><span class="linenos">6883</span></a><span class="sd"> Cast an expression to a data type unless it is a specified type.</span>
+</span><span id="L-6884"><a href="#L-6884"><span class="linenos">6884</span></a>
+</span><span id="L-6885"><a href="#L-6885"><span class="linenos">6885</span></a><span class="sd"> Args:</span>
+</span><span id="L-6886"><a href="#L-6886"><span class="linenos">6886</span></a><span class="sd"> expression: The expression to cast.</span>
+</span><span id="L-6887"><a href="#L-6887"><span class="linenos">6887</span></a><span class="sd"> to: The data type to cast to.</span>
+</span><span id="L-6888"><a href="#L-6888"><span class="linenos">6888</span></a><span class="sd"> **types: The types to exclude from casting.</span>
+</span><span id="L-6889"><a href="#L-6889"><span class="linenos">6889</span></a><span class="sd"> **opts: Extra keyword arguments for parsing `expression`</span>
+</span><span id="L-6890"><a href="#L-6890"><span class="linenos">6890</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6891"><a href="#L-6891"><span class="linenos">6891</span></a> <span class="n">expr</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-6892"><a href="#L-6892"><span class="linenos">6892</span></a> <span class="k">if</span> <span class="n">expr</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="o">*</span><span class="n">types</span><span class="p">):</span>
+</span><span id="L-6893"><a href="#L-6893"><span class="linenos">6893</span></a> <span class="k">return</span> <span class="n">expr</span>
+</span><span id="L-6894"><a href="#L-6894"><span class="linenos">6894</span></a> <span class="k">return</span> <span class="n">cast</span><span class="p">(</span><span class="n">expr</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-6895"><a href="#L-6895"><span class="linenos">6895</span></a>
+</span><span id="L-6896"><a href="#L-6896"><span class="linenos">6896</span></a>
+</span><span id="L-6897"><a href="#L-6897"><span class="linenos">6897</span></a><span class="k">def</span> <span class="nf">true</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">Boolean</span><span class="p">:</span>
+</span><span id="L-6898"><a href="#L-6898"><span class="linenos">6898</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-6899"><a href="#L-6899"><span class="linenos">6899</span></a><span class="sd"> Returns a true Boolean expression.</span>
+</span><span id="L-6900"><a href="#L-6900"><span class="linenos">6900</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6901"><a href="#L-6901"><span class="linenos">6901</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-6902"><a href="#L-6902"><span class="linenos">6902</span></a>
+</span><span id="L-6903"><a href="#L-6903"><span class="linenos">6903</span></a>
+</span><span id="L-6904"><a href="#L-6904"><span class="linenos">6904</span></a><span class="k">def</span> <span class="nf">false</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">Boolean</span><span class="p">:</span>
+</span><span id="L-6905"><a href="#L-6905"><span class="linenos">6905</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-6906"><a href="#L-6906"><span class="linenos">6906</span></a><span class="sd"> Returns a false Boolean expression.</span>
+</span><span id="L-6907"><a href="#L-6907"><span class="linenos">6907</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6908"><a href="#L-6908"><span class="linenos">6908</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-6909"><a href="#L-6909"><span class="linenos">6909</span></a>
+</span><span id="L-6910"><a href="#L-6910"><span class="linenos">6910</span></a>
+</span><span id="L-6911"><a href="#L-6911"><span class="linenos">6911</span></a><span class="k">def</span> <span class="nf">null</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">Null</span><span class="p">:</span>
+</span><span id="L-6912"><a href="#L-6912"><span class="linenos">6912</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-6913"><a href="#L-6913"><span class="linenos">6913</span></a><span class="sd"> Returns a Null expression.</span>
+</span><span id="L-6914"><a href="#L-6914"><span class="linenos">6914</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6915"><a href="#L-6915"><span class="linenos">6915</span></a> <span class="k">return</span> <span class="n">Null</span><span class="p">()</span>
+</span><span id="L-6916"><a href="#L-6916"><span class="linenos">6916</span></a>
+</span><span id="L-6917"><a href="#L-6917"><span class="linenos">6917</span></a>
+</span><span id="L-6918"><a href="#L-6918"><span class="linenos">6918</span></a><span class="c1"># TODO: deprecate this</span>
+</span><span id="L-6919"><a href="#L-6919"><span class="linenos">6919</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-6920"><a href="#L-6920"><span class="linenos">6920</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-6921"><a href="#L-6921"><span class="linenos">6921</span></a><span class="n">NULL</span> <span class="o">=</span> <span class="n">Null</span><span class="p">()</span>
</span></pre></div>
@@ -13352,852 +13743,842 @@ SQL expressions, such as <code><a href="#select">select</a></code>.</p>
</div>
<a class="headerlink" href="#Expression"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression-60"><a href="#Expression-60"><span class="linenos"> 60</span></a><span class="k">class</span> <span class="nc">Expression</span><span class="p">(</span><span class="n">metaclass</span><span class="o">=</span><span class="n">_Expression</span><span class="p">):</span>
-</span><span id="Expression-61"><a href="#Expression-61"><span class="linenos"> 61</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-62"><a href="#Expression-62"><span class="linenos"> 62</span></a><span class="sd"> The base class for all expressions in a syntax tree. Each Expression encapsulates any necessary</span>
-</span><span id="Expression-63"><a href="#Expression-63"><span class="linenos"> 63</span></a><span class="sd"> context, such as its child expressions, their names (arg keys), and whether a given child expression</span>
-</span><span id="Expression-64"><a href="#Expression-64"><span class="linenos"> 64</span></a><span class="sd"> is optional or not.</span>
-</span><span id="Expression-65"><a href="#Expression-65"><span class="linenos"> 65</span></a>
-</span><span id="Expression-66"><a href="#Expression-66"><span class="linenos"> 66</span></a><span class="sd"> Attributes:</span>
-</span><span id="Expression-67"><a href="#Expression-67"><span class="linenos"> 67</span></a><span class="sd"> key: a unique key for each class in the Expression hierarchy. This is useful for hashing</span>
-</span><span id="Expression-68"><a href="#Expression-68"><span class="linenos"> 68</span></a><span class="sd"> and representing expressions as strings.</span>
-</span><span id="Expression-69"><a href="#Expression-69"><span class="linenos"> 69</span></a><span class="sd"> arg_types: determines what arguments (child nodes) are supported by an expression. It</span>
-</span><span id="Expression-70"><a href="#Expression-70"><span class="linenos"> 70</span></a><span class="sd"> maps arg keys to booleans that indicate whether the corresponding args are optional.</span>
-</span><span id="Expression-71"><a href="#Expression-71"><span class="linenos"> 71</span></a><span class="sd"> parent: a reference to the parent expression (or None, in case of root expressions).</span>
-</span><span id="Expression-72"><a href="#Expression-72"><span class="linenos"> 72</span></a><span class="sd"> arg_key: the arg key an expression is associated with, i.e. the name its parent expression</span>
-</span><span id="Expression-73"><a href="#Expression-73"><span class="linenos"> 73</span></a><span class="sd"> uses to refer to it.</span>
-</span><span id="Expression-74"><a href="#Expression-74"><span class="linenos"> 74</span></a><span class="sd"> comments: a list of comments that are associated with a given expression. This is used in</span>
-</span><span id="Expression-75"><a href="#Expression-75"><span class="linenos"> 75</span></a><span class="sd"> order to preserve comments when transpiling SQL code.</span>
-</span><span id="Expression-76"><a href="#Expression-76"><span class="linenos"> 76</span></a><span class="sd"> type: the `sqlglot.expressions.DataType` type of an expression. This is inferred by the</span>
-</span><span id="Expression-77"><a href="#Expression-77"><span class="linenos"> 77</span></a><span class="sd"> optimizer, in order to enable some transformations that require type information.</span>
-</span><span id="Expression-78"><a href="#Expression-78"><span class="linenos"> 78</span></a><span class="sd"> meta: a dictionary that can be used to store useful metadata for a given expression.</span>
-</span><span id="Expression-79"><a href="#Expression-79"><span class="linenos"> 79</span></a>
-</span><span id="Expression-80"><a href="#Expression-80"><span class="linenos"> 80</span></a><span class="sd"> Example:</span>
-</span><span id="Expression-81"><a href="#Expression-81"><span class="linenos"> 81</span></a><span class="sd"> &gt;&gt;&gt; class Foo(Expression):</span>
-</span><span id="Expression-82"><a href="#Expression-82"><span class="linenos"> 82</span></a><span class="sd"> ... arg_types = {&quot;this&quot;: True, &quot;expression&quot;: False}</span>
-</span><span id="Expression-83"><a href="#Expression-83"><span class="linenos"> 83</span></a>
-</span><span id="Expression-84"><a href="#Expression-84"><span class="linenos"> 84</span></a><span class="sd"> The above definition informs us that Foo is an Expression that requires an argument called</span>
-</span><span id="Expression-85"><a href="#Expression-85"><span class="linenos"> 85</span></a><span class="sd"> &quot;this&quot; and may also optionally receive an argument called &quot;expression&quot;.</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression-63"><a href="#Expression-63"><span class="linenos"> 63</span></a><span class="k">class</span> <span class="nc">Expression</span><span class="p">(</span><span class="n">metaclass</span><span class="o">=</span><span class="n">_Expression</span><span class="p">):</span>
+</span><span id="Expression-64"><a href="#Expression-64"><span class="linenos"> 64</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-65"><a href="#Expression-65"><span class="linenos"> 65</span></a><span class="sd"> The base class for all expressions in a syntax tree. Each Expression encapsulates any necessary</span>
+</span><span id="Expression-66"><a href="#Expression-66"><span class="linenos"> 66</span></a><span class="sd"> context, such as its child expressions, their names (arg keys), and whether a given child expression</span>
+</span><span id="Expression-67"><a href="#Expression-67"><span class="linenos"> 67</span></a><span class="sd"> is optional or not.</span>
+</span><span id="Expression-68"><a href="#Expression-68"><span class="linenos"> 68</span></a>
+</span><span id="Expression-69"><a href="#Expression-69"><span class="linenos"> 69</span></a><span class="sd"> Attributes:</span>
+</span><span id="Expression-70"><a href="#Expression-70"><span class="linenos"> 70</span></a><span class="sd"> key: a unique key for each class in the Expression hierarchy. This is useful for hashing</span>
+</span><span id="Expression-71"><a href="#Expression-71"><span class="linenos"> 71</span></a><span class="sd"> and representing expressions as strings.</span>
+</span><span id="Expression-72"><a href="#Expression-72"><span class="linenos"> 72</span></a><span class="sd"> arg_types: determines what arguments (child nodes) are supported by an expression. It</span>
+</span><span id="Expression-73"><a href="#Expression-73"><span class="linenos"> 73</span></a><span class="sd"> maps arg keys to booleans that indicate whether the corresponding args are optional.</span>
+</span><span id="Expression-74"><a href="#Expression-74"><span class="linenos"> 74</span></a><span class="sd"> parent: a reference to the parent expression (or None, in case of root expressions).</span>
+</span><span id="Expression-75"><a href="#Expression-75"><span class="linenos"> 75</span></a><span class="sd"> arg_key: the arg key an expression is associated with, i.e. the name its parent expression</span>
+</span><span id="Expression-76"><a href="#Expression-76"><span class="linenos"> 76</span></a><span class="sd"> uses to refer to it.</span>
+</span><span id="Expression-77"><a href="#Expression-77"><span class="linenos"> 77</span></a><span class="sd"> comments: a list of comments that are associated with a given expression. This is used in</span>
+</span><span id="Expression-78"><a href="#Expression-78"><span class="linenos"> 78</span></a><span class="sd"> order to preserve comments when transpiling SQL code.</span>
+</span><span id="Expression-79"><a href="#Expression-79"><span class="linenos"> 79</span></a><span class="sd"> type: the `sqlglot.expressions.DataType` type of an expression. This is inferred by the</span>
+</span><span id="Expression-80"><a href="#Expression-80"><span class="linenos"> 80</span></a><span class="sd"> optimizer, in order to enable some transformations that require type information.</span>
+</span><span id="Expression-81"><a href="#Expression-81"><span class="linenos"> 81</span></a><span class="sd"> meta: a dictionary that can be used to store useful metadata for a given expression.</span>
+</span><span id="Expression-82"><a href="#Expression-82"><span class="linenos"> 82</span></a>
+</span><span id="Expression-83"><a href="#Expression-83"><span class="linenos"> 83</span></a><span class="sd"> Example:</span>
+</span><span id="Expression-84"><a href="#Expression-84"><span class="linenos"> 84</span></a><span class="sd"> &gt;&gt;&gt; class Foo(Expression):</span>
+</span><span id="Expression-85"><a href="#Expression-85"><span class="linenos"> 85</span></a><span class="sd"> ... arg_types = {&quot;this&quot;: True, &quot;expression&quot;: False}</span>
</span><span id="Expression-86"><a href="#Expression-86"><span class="linenos"> 86</span></a>
-</span><span id="Expression-87"><a href="#Expression-87"><span class="linenos"> 87</span></a><span class="sd"> Args:</span>
-</span><span id="Expression-88"><a href="#Expression-88"><span class="linenos"> 88</span></a><span class="sd"> args: a mapping used for retrieving the arguments of an expression, given their arg keys.</span>
-</span><span id="Expression-89"><a href="#Expression-89"><span class="linenos"> 89</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-90"><a href="#Expression-90"><span class="linenos"> 90</span></a>
-</span><span id="Expression-91"><a href="#Expression-91"><span class="linenos"> 91</span></a> <span class="n">key</span> <span class="o">=</span> <span class="s2">&quot;expression&quot;</span>
-</span><span id="Expression-92"><a href="#Expression-92"><span class="linenos"> 92</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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="Expression-93"><a href="#Expression-93"><span class="linenos"> 93</span></a> <span class="vm">__slots__</span> <span class="o">=</span> <span class="p">(</span><span class="s2">&quot;args&quot;</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">,</span> <span class="s2">&quot;arg_key&quot;</span><span class="p">,</span> <span class="s2">&quot;comments&quot;</span><span class="p">,</span> <span class="s2">&quot;_type&quot;</span><span class="p">,</span> <span class="s2">&quot;_meta&quot;</span><span class="p">,</span> <span class="s2">&quot;_hash&quot;</span><span class="p">)</span>
-</span><span id="Expression-94"><a href="#Expression-94"><span class="linenos"> 94</span></a>
-</span><span id="Expression-95"><a href="#Expression-95"><span class="linenos"> 95</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 class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">):</span>
-</span><span id="Expression-96"><a href="#Expression-96"><span class="linenos"> 96</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="n">args</span>
-</span><span id="Expression-97"><a href="#Expression-97"><span class="linenos"> 97</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span 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="kc">None</span>
-</span><span id="Expression-98"><a href="#Expression-98"><span class="linenos"> 98</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">arg_key</span><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><span id="Expression-99"><a href="#Expression-99"><span class="linenos"> 99</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span>
-</span><span id="Expression-100"><a href="#Expression-100"><span class="linenos">100</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_type</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">DataType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>
-</span><span id="Expression-101"><a href="#Expression-101"><span class="linenos">101</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_meta</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="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="kc">None</span>
-</span><span id="Expression-102"><a href="#Expression-102"><span class="linenos">102</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_hash</span><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">int</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>
-</span><span id="Expression-103"><a href="#Expression-103"><span class="linenos">103</span></a>
-</span><span id="Expression-104"><a href="#Expression-104"><span class="linenos">104</span></a> <span class="k">for</span> <span class="n">arg_key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
-</span><span id="Expression-105"><a href="#Expression-105"><span class="linenos">105</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_set_parent</span><span class="p">(</span><span class="n">arg_key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
+</span><span id="Expression-87"><a href="#Expression-87"><span class="linenos"> 87</span></a><span class="sd"> The above definition informs us that Foo is an Expression that requires an argument called</span>
+</span><span id="Expression-88"><a href="#Expression-88"><span class="linenos"> 88</span></a><span class="sd"> &quot;this&quot; and may also optionally receive an argument called &quot;expression&quot;.</span>
+</span><span id="Expression-89"><a href="#Expression-89"><span class="linenos"> 89</span></a>
+</span><span id="Expression-90"><a href="#Expression-90"><span class="linenos"> 90</span></a><span class="sd"> Args:</span>
+</span><span id="Expression-91"><a href="#Expression-91"><span class="linenos"> 91</span></a><span class="sd"> args: a mapping used for retrieving the arguments of an expression, given their arg keys.</span>
+</span><span id="Expression-92"><a href="#Expression-92"><span class="linenos"> 92</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-93"><a href="#Expression-93"><span class="linenos"> 93</span></a>
+</span><span id="Expression-94"><a href="#Expression-94"><span class="linenos"> 94</span></a> <span class="n">key</span> <span class="o">=</span> <span class="s2">&quot;expression&quot;</span>
+</span><span id="Expression-95"><a href="#Expression-95"><span class="linenos"> 95</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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="Expression-96"><a href="#Expression-96"><span class="linenos"> 96</span></a> <span class="vm">__slots__</span> <span class="o">=</span> <span class="p">(</span><span class="s2">&quot;args&quot;</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">,</span> <span class="s2">&quot;arg_key&quot;</span><span class="p">,</span> <span class="s2">&quot;comments&quot;</span><span class="p">,</span> <span class="s2">&quot;_type&quot;</span><span class="p">,</span> <span class="s2">&quot;_meta&quot;</span><span class="p">,</span> <span class="s2">&quot;_hash&quot;</span><span class="p">)</span>
+</span><span id="Expression-97"><a href="#Expression-97"><span class="linenos"> 97</span></a>
+</span><span id="Expression-98"><a href="#Expression-98"><span class="linenos"> 98</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 class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">):</span>
+</span><span id="Expression-99"><a href="#Expression-99"><span class="linenos"> 99</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="n">args</span>
+</span><span id="Expression-100"><a href="#Expression-100"><span class="linenos">100</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span 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="kc">None</span>
+</span><span id="Expression-101"><a href="#Expression-101"><span class="linenos">101</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">arg_key</span><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><span id="Expression-102"><a href="#Expression-102"><span class="linenos">102</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span>
+</span><span id="Expression-103"><a href="#Expression-103"><span class="linenos">103</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_type</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">DataType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>
+</span><span id="Expression-104"><a href="#Expression-104"><span class="linenos">104</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_meta</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="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="kc">None</span>
+</span><span id="Expression-105"><a href="#Expression-105"><span class="linenos">105</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_hash</span><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">int</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>
</span><span id="Expression-106"><a href="#Expression-106"><span class="linenos">106</span></a>
-</span><span id="Expression-107"><a href="#Expression-107"><span class="linenos">107</span></a> <span class="k">def</span> <span class="fm">__eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="Expression-108"><a href="#Expression-108"><span class="linenos">108</span></a> <span class="k">return</span> <span class="nb">type</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">type</span><span class="p">(</span><span class="n">other</span><span class="p">)</span> <span class="ow">and</span> <span class="nb">hash</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">==</span> <span class="nb">hash</span><span class="p">(</span><span class="n">other</span><span class="p">)</span>
+</span><span id="Expression-107"><a href="#Expression-107"><span class="linenos">107</span></a> <span class="k">for</span> <span class="n">arg_key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+</span><span id="Expression-108"><a href="#Expression-108"><span class="linenos">108</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_set_parent</span><span class="p">(</span><span class="n">arg_key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
</span><span id="Expression-109"><a href="#Expression-109"><span class="linenos">109</span></a>
-</span><span id="Expression-110"><a href="#Expression-110"><span class="linenos">110</span></a> <span class="nd">@property</span>
-</span><span id="Expression-111"><a href="#Expression-111"><span class="linenos">111</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="Expression-112"><a href="#Expression-112"><span class="linenos">112</span></a> <span class="k">return</span> <span class="nb">frozenset</span><span class="p">(</span>
-</span><span id="Expression-113"><a href="#Expression-113"><span class="linenos">113</span></a> <span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="nb">tuple</span><span class="p">(</span><span class="n">_norm_arg</span><span class="p">(</span><span class="n">a</span><span class="p">)</span> <span class="k">for</span> <span class="n">a</span> <span class="ow">in</span> <span class="n">v</span><span class="p">)</span> <span class="k">if</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 class="k">else</span> <span class="n">_norm_arg</span><span class="p">(</span><span class="n">v</span><span class="p">))</span>
-</span><span id="Expression-114"><a href="#Expression-114"><span class="linenos">114</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span>
-</span><span id="Expression-115"><a href="#Expression-115"><span class="linenos">115</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="p">(</span><span class="n">v</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="n">v</span> <span class="ow">is</span> <span class="kc">False</span> <span class="ow">or</span> <span class="p">(</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 class="ow">and</span> <span class="ow">not</span> <span class="n">v</span><span class="p">))</span>
-</span><span id="Expression-116"><a href="#Expression-116"><span class="linenos">116</span></a> <span class="p">)</span>
-</span><span id="Expression-117"><a href="#Expression-117"><span class="linenos">117</span></a>
-</span><span id="Expression-118"><a href="#Expression-118"><span class="linenos">118</span></a> <span class="k">def</span> <span class="fm">__hash__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">int</span><span class="p">:</span>
-</span><span id="Expression-119"><a href="#Expression-119"><span class="linenos">119</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_hash</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="Expression-120"><a href="#Expression-120"><span class="linenos">120</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_hash</span>
-</span><span id="Expression-121"><a href="#Expression-121"><span class="linenos">121</span></a>
-</span><span id="Expression-122"><a href="#Expression-122"><span class="linenos">122</span></a> <span class="k">return</span> <span class="nb">hash</span><span class="p">((</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">hashable_args</span><span class="p">))</span>
-</span><span id="Expression-123"><a href="#Expression-123"><span class="linenos">123</span></a>
-</span><span id="Expression-124"><a href="#Expression-124"><span class="linenos">124</span></a> <span class="nd">@property</span>
-</span><span id="Expression-125"><a href="#Expression-125"><span class="linenos">125</span></a> <span class="k">def</span> <span class="nf">this</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="Expression-126"><a href="#Expression-126"><span class="linenos">126</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-127"><a href="#Expression-127"><span class="linenos">127</span></a><span class="sd"> Retrieves the argument with key &quot;this&quot;.</span>
-</span><span id="Expression-128"><a href="#Expression-128"><span class="linenos">128</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-129"><a href="#Expression-129"><span class="linenos">129</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;this&quot;</span><span class="p">)</span>
-</span><span id="Expression-130"><a href="#Expression-130"><span class="linenos">130</span></a>
-</span><span id="Expression-131"><a href="#Expression-131"><span class="linenos">131</span></a> <span class="nd">@property</span>
-</span><span id="Expression-132"><a href="#Expression-132"><span class="linenos">132</span></a> <span class="k">def</span> <span class="nf">expression</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="Expression-133"><a href="#Expression-133"><span class="linenos">133</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-134"><a href="#Expression-134"><span class="linenos">134</span></a><span class="sd"> Retrieves the argument with key &quot;expression&quot;.</span>
-</span><span id="Expression-135"><a href="#Expression-135"><span class="linenos">135</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-136"><a href="#Expression-136"><span class="linenos">136</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;expression&quot;</span><span class="p">)</span>
-</span><span id="Expression-137"><a href="#Expression-137"><span class="linenos">137</span></a>
-</span><span id="Expression-138"><a href="#Expression-138"><span class="linenos">138</span></a> <span class="nd">@property</span>
-</span><span id="Expression-139"><a href="#Expression-139"><span class="linenos">139</span></a> <span class="k">def</span> <span class="nf">expressions</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]:</span>
-</span><span id="Expression-140"><a href="#Expression-140"><span class="linenos">140</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-141"><a href="#Expression-141"><span class="linenos">141</span></a><span class="sd"> Retrieves the argument with key &quot;expressions&quot;.</span>
-</span><span id="Expression-142"><a href="#Expression-142"><span class="linenos">142</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-143"><a href="#Expression-143"><span class="linenos">143</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;expressions&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]</span>
-</span><span id="Expression-144"><a href="#Expression-144"><span class="linenos">144</span></a>
-</span><span id="Expression-145"><a href="#Expression-145"><span class="linenos">145</span></a> <span class="k">def</span> <span class="nf">text</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Expression-146"><a href="#Expression-146"><span class="linenos">146</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-147"><a href="#Expression-147"><span class="linenos">147</span></a><span class="sd"> Returns a textual representation of the argument corresponding to &quot;key&quot;. This can only be used</span>
-</span><span id="Expression-148"><a href="#Expression-148"><span class="linenos">148</span></a><span class="sd"> for args that are strings or leaf Expression instances, such as identifiers and literals.</span>
-</span><span id="Expression-149"><a href="#Expression-149"><span class="linenos">149</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-150"><a href="#Expression-150"><span class="linenos">150</span></a> <span class="n">field</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">key</span><span class="p">)</span>
-</span><span id="Expression-151"><a href="#Expression-151"><span class="linenos">151</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">field</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
-</span><span id="Expression-152"><a href="#Expression-152"><span class="linenos">152</span></a> <span class="k">return</span> <span class="n">field</span>
-</span><span id="Expression-153"><a href="#Expression-153"><span class="linenos">153</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">field</span><span class="p">,</span> <span class="p">(</span><span class="n">Identifier</span><span class="p">,</span> <span class="n">Literal</span><span class="p">,</span> <span class="n">Var</span><span class="p">)):</span>
-</span><span id="Expression-154"><a href="#Expression-154"><span class="linenos">154</span></a> <span class="k">return</span> <span class="n">field</span><span class="o">.</span><span class="n">this</span>
-</span><span id="Expression-155"><a href="#Expression-155"><span class="linenos">155</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">field</span><span class="p">,</span> <span class="p">(</span><span class="n">Star</span><span class="p">,</span> <span class="n">Null</span><span class="p">)):</span>
-</span><span id="Expression-156"><a href="#Expression-156"><span class="linenos">156</span></a> <span class="k">return</span> <span class="n">field</span><span class="o">.</span><span class="n">name</span>
-</span><span id="Expression-157"><a href="#Expression-157"><span class="linenos">157</span></a> <span class="k">return</span> <span class="s2">&quot;&quot;</span>
-</span><span id="Expression-158"><a href="#Expression-158"><span class="linenos">158</span></a>
-</span><span id="Expression-159"><a href="#Expression-159"><span class="linenos">159</span></a> <span class="nd">@property</span>
-</span><span id="Expression-160"><a href="#Expression-160"><span class="linenos">160</span></a> <span class="k">def</span> <span class="nf">is_string</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="Expression-161"><a href="#Expression-161"><span class="linenos">161</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-162"><a href="#Expression-162"><span class="linenos">162</span></a><span class="sd"> Checks whether a Literal expression is a string.</span>
-</span><span id="Expression-163"><a href="#Expression-163"><span class="linenos">163</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-164"><a href="#Expression-164"><span class="linenos">164</span></a> <span class="k">return</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Literal</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;is_string&quot;</span><span class="p">]</span>
-</span><span id="Expression-165"><a href="#Expression-165"><span class="linenos">165</span></a>
-</span><span id="Expression-166"><a href="#Expression-166"><span class="linenos">166</span></a> <span class="nd">@property</span>
-</span><span id="Expression-167"><a href="#Expression-167"><span class="linenos">167</span></a> <span class="k">def</span> <span class="nf">is_number</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="Expression-168"><a href="#Expression-168"><span class="linenos">168</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-169"><a href="#Expression-169"><span class="linenos">169</span></a><span class="sd"> Checks whether a Literal expression is a number.</span>
-</span><span id="Expression-170"><a href="#Expression-170"><span class="linenos">170</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-171"><a href="#Expression-171"><span class="linenos">171</span></a> <span class="k">return</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Literal</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;is_string&quot;</span><span class="p">]</span>
-</span><span id="Expression-172"><a href="#Expression-172"><span class="linenos">172</span></a>
-</span><span id="Expression-173"><a href="#Expression-173"><span class="linenos">173</span></a> <span class="nd">@property</span>
-</span><span id="Expression-174"><a href="#Expression-174"><span class="linenos">174</span></a> <span class="k">def</span> <span class="nf">is_int</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="Expression-175"><a href="#Expression-175"><span class="linenos">175</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-176"><a href="#Expression-176"><span class="linenos">176</span></a><span class="sd"> Checks whether a Literal expression is an integer.</span>
-</span><span id="Expression-177"><a href="#Expression-177"><span class="linenos">177</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-178"><a href="#Expression-178"><span class="linenos">178</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_number</span><span class="p">:</span>
-</span><span id="Expression-179"><a href="#Expression-179"><span class="linenos">179</span></a> <span class="k">try</span><span class="p">:</span>
-</span><span id="Expression-180"><a href="#Expression-180"><span class="linenos">180</span></a> <span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
-</span><span id="Expression-181"><a href="#Expression-181"><span class="linenos">181</span></a> <span class="k">return</span> <span class="kc">True</span>
-</span><span id="Expression-182"><a href="#Expression-182"><span class="linenos">182</span></a> <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
-</span><span id="Expression-183"><a href="#Expression-183"><span class="linenos">183</span></a> <span class="k">pass</span>
-</span><span id="Expression-184"><a href="#Expression-184"><span class="linenos">184</span></a> <span class="k">return</span> <span class="kc">False</span>
-</span><span id="Expression-185"><a href="#Expression-185"><span class="linenos">185</span></a>
-</span><span id="Expression-186"><a href="#Expression-186"><span class="linenos">186</span></a> <span class="nd">@property</span>
-</span><span id="Expression-187"><a href="#Expression-187"><span class="linenos">187</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="Expression-188"><a href="#Expression-188"><span class="linenos">188</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Checks whether an expression is a star.&quot;&quot;&quot;</span>
-</span><span id="Expression-189"><a href="#Expression-189"><span class="linenos">189</span></a> <span class="k">return</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Star</span><span class="p">)</span> <span class="ow">or</span> <span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Column</span><span class="p">)</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">Star</span><span class="p">))</span>
-</span><span id="Expression-190"><a href="#Expression-190"><span class="linenos">190</span></a>
-</span><span id="Expression-191"><a href="#Expression-191"><span class="linenos">191</span></a> <span class="nd">@property</span>
-</span><span id="Expression-192"><a href="#Expression-192"><span class="linenos">192</span></a> <span class="k">def</span> <span class="nf">alias</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Expression-193"><a href="#Expression-193"><span class="linenos">193</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-194"><a href="#Expression-194"><span class="linenos">194</span></a><span class="sd"> Returns the alias of the expression, or an empty string if it&#39;s not aliased.</span>
-</span><span id="Expression-195"><a href="#Expression-195"><span class="linenos">195</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-196"><a href="#Expression-196"><span class="linenos">196</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;alias&quot;</span><span class="p">),</span> <span class="n">TableAlias</span><span class="p">):</span>
-</span><span id="Expression-197"><a href="#Expression-197"><span class="linenos">197</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;alias&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">name</span>
-</span><span id="Expression-198"><a href="#Expression-198"><span class="linenos">198</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;alias&quot;</span><span class="p">)</span>
-</span><span id="Expression-199"><a href="#Expression-199"><span class="linenos">199</span></a>
-</span><span id="Expression-200"><a href="#Expression-200"><span class="linenos">200</span></a> <span class="nd">@property</span>
-</span><span id="Expression-201"><a href="#Expression-201"><span class="linenos">201</span></a> <span class="k">def</span> <span class="nf">alias_column_names</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
-</span><span id="Expression-202"><a href="#Expression-202"><span class="linenos">202</span></a> <span class="n">table_alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;alias&quot;</span><span class="p">)</span>
-</span><span id="Expression-203"><a href="#Expression-203"><span class="linenos">203</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">table_alias</span><span class="p">:</span>
-</span><span id="Expression-204"><a href="#Expression-204"><span class="linenos">204</span></a> <span class="k">return</span> <span class="p">[]</span>
-</span><span id="Expression-205"><a href="#Expression-205"><span class="linenos">205</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">c</span><span class="o">.</span><span class="n">name</span> <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="n">table_alias</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;columns&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]]</span>
-</span><span id="Expression-206"><a href="#Expression-206"><span class="linenos">206</span></a>
-</span><span id="Expression-207"><a href="#Expression-207"><span class="linenos">207</span></a> <span class="nd">@property</span>
-</span><span id="Expression-208"><a href="#Expression-208"><span class="linenos">208</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Expression-209"><a href="#Expression-209"><span class="linenos">209</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;this&quot;</span><span class="p">)</span>
-</span><span id="Expression-210"><a href="#Expression-210"><span class="linenos">210</span></a>
-</span><span id="Expression-211"><a href="#Expression-211"><span class="linenos">211</span></a> <span class="nd">@property</span>
-</span><span id="Expression-212"><a href="#Expression-212"><span class="linenos">212</span></a> <span class="k">def</span> <span class="nf">alias_or_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Expression-213"><a href="#Expression-213"><span class="linenos">213</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
-</span><span id="Expression-214"><a href="#Expression-214"><span class="linenos">214</span></a>
-</span><span id="Expression-215"><a href="#Expression-215"><span class="linenos">215</span></a> <span class="nd">@property</span>
-</span><span id="Expression-216"><a href="#Expression-216"><span class="linenos">216</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Expression-217"><a href="#Expression-217"><span class="linenos">217</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-218"><a href="#Expression-218"><span class="linenos">218</span></a><span class="sd"> Name of the output column if this expression is a selection.</span>
-</span><span id="Expression-219"><a href="#Expression-219"><span class="linenos">219</span></a>
-</span><span id="Expression-220"><a href="#Expression-220"><span class="linenos">220</span></a><span class="sd"> If the Expression has no output name, an empty string is returned.</span>
-</span><span id="Expression-221"><a href="#Expression-221"><span class="linenos">221</span></a>
-</span><span id="Expression-222"><a href="#Expression-222"><span class="linenos">222</span></a><span class="sd"> Example:</span>
-</span><span id="Expression-223"><a href="#Expression-223"><span class="linenos">223</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
-</span><span id="Expression-224"><a href="#Expression-224"><span class="linenos">224</span></a><span class="sd"> &gt;&gt;&gt; parse_one(&quot;SELECT a&quot;).expressions[0].output_name</span>
-</span><span id="Expression-225"><a href="#Expression-225"><span class="linenos">225</span></a><span class="sd"> &#39;a&#39;</span>
-</span><span id="Expression-226"><a href="#Expression-226"><span class="linenos">226</span></a><span class="sd"> &gt;&gt;&gt; parse_one(&quot;SELECT b AS c&quot;).expressions[0].output_name</span>
-</span><span id="Expression-227"><a href="#Expression-227"><span class="linenos">227</span></a><span class="sd"> &#39;c&#39;</span>
-</span><span id="Expression-228"><a href="#Expression-228"><span class="linenos">228</span></a><span class="sd"> &gt;&gt;&gt; parse_one(&quot;SELECT 1 + 2&quot;).expressions[0].output_name</span>
-</span><span id="Expression-229"><a href="#Expression-229"><span class="linenos">229</span></a><span class="sd"> &#39;&#39;</span>
-</span><span id="Expression-230"><a href="#Expression-230"><span class="linenos">230</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-231"><a href="#Expression-231"><span class="linenos">231</span></a> <span class="k">return</span> <span class="s2">&quot;&quot;</span>
-</span><span id="Expression-232"><a href="#Expression-232"><span class="linenos">232</span></a>
-</span><span id="Expression-233"><a href="#Expression-233"><span class="linenos">233</span></a> <span class="nd">@property</span>
-</span><span id="Expression-234"><a href="#Expression-234"><span class="linenos">234</span></a> <span class="k">def</span> <span class="nf">type</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">DataType</span><span class="p">]:</span>
-</span><span id="Expression-235"><a href="#Expression-235"><span class="linenos">235</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_type</span>
-</span><span id="Expression-236"><a href="#Expression-236"><span class="linenos">236</span></a>
-</span><span id="Expression-237"><a href="#Expression-237"><span class="linenos">237</span></a> <span class="nd">@type</span><span class="o">.</span><span class="n">setter</span>
-</span><span id="Expression-238"><a href="#Expression-238"><span class="linenos">238</span></a> <span class="k">def</span> <span class="nf">type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">DataType</span> <span class="o">|</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span> <span class="o">|</span> <span class="nb">str</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="Expression-239"><a href="#Expression-239"><span class="linenos">239</span></a> <span class="k">if</span> <span class="n">dtype</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">DataType</span><span class="p">):</span>
-</span><span id="Expression-240"><a href="#Expression-240"><span class="linenos">240</span></a> <span class="n">dtype</span> <span class="o">=</span> <span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span>
-</span><span id="Expression-241"><a href="#Expression-241"><span class="linenos">241</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_type</span> <span class="o">=</span> <span class="n">dtype</span> <span class="c1"># type: ignore</span>
-</span><span id="Expression-242"><a href="#Expression-242"><span class="linenos">242</span></a>
-</span><span id="Expression-243"><a href="#Expression-243"><span class="linenos">243</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">dtypes</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="Expression-244"><a href="#Expression-244"><span class="linenos">244</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">type</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">type</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="o">*</span><span class="n">dtypes</span><span class="p">)</span>
+</span><span id="Expression-110"><a href="#Expression-110"><span class="linenos">110</span></a> <span class="k">def</span> <span class="fm">__eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="Expression-111"><a href="#Expression-111"><span class="linenos">111</span></a> <span class="k">return</span> <span class="nb">type</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">type</span><span class="p">(</span><span class="n">other</span><span class="p">)</span> <span class="ow">and</span> <span class="nb">hash</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">==</span> <span class="nb">hash</span><span class="p">(</span><span class="n">other</span><span class="p">)</span>
+</span><span id="Expression-112"><a href="#Expression-112"><span class="linenos">112</span></a>
+</span><span id="Expression-113"><a href="#Expression-113"><span class="linenos">113</span></a> <span class="nd">@property</span>
+</span><span id="Expression-114"><a href="#Expression-114"><span class="linenos">114</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="Expression-115"><a href="#Expression-115"><span class="linenos">115</span></a> <span class="k">return</span> <span class="nb">frozenset</span><span class="p">(</span>
+</span><span id="Expression-116"><a href="#Expression-116"><span class="linenos">116</span></a> <span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="nb">tuple</span><span class="p">(</span><span class="n">_norm_arg</span><span class="p">(</span><span class="n">a</span><span class="p">)</span> <span class="k">for</span> <span class="n">a</span> <span class="ow">in</span> <span class="n">v</span><span class="p">)</span> <span class="k">if</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 class="k">else</span> <span class="n">_norm_arg</span><span class="p">(</span><span class="n">v</span><span class="p">))</span>
+</span><span id="Expression-117"><a href="#Expression-117"><span class="linenos">117</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span>
+</span><span id="Expression-118"><a href="#Expression-118"><span class="linenos">118</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="p">(</span><span class="n">v</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="n">v</span> <span class="ow">is</span> <span class="kc">False</span> <span class="ow">or</span> <span class="p">(</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 class="ow">and</span> <span class="ow">not</span> <span class="n">v</span><span class="p">))</span>
+</span><span id="Expression-119"><a href="#Expression-119"><span class="linenos">119</span></a> <span class="p">)</span>
+</span><span id="Expression-120"><a href="#Expression-120"><span class="linenos">120</span></a>
+</span><span id="Expression-121"><a href="#Expression-121"><span class="linenos">121</span></a> <span class="k">def</span> <span class="fm">__hash__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">int</span><span class="p">:</span>
+</span><span id="Expression-122"><a href="#Expression-122"><span class="linenos">122</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_hash</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="Expression-123"><a href="#Expression-123"><span class="linenos">123</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_hash</span>
+</span><span id="Expression-124"><a href="#Expression-124"><span class="linenos">124</span></a>
+</span><span id="Expression-125"><a href="#Expression-125"><span class="linenos">125</span></a> <span class="k">return</span> <span class="nb">hash</span><span class="p">((</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">hashable_args</span><span class="p">))</span>
+</span><span id="Expression-126"><a href="#Expression-126"><span class="linenos">126</span></a>
+</span><span id="Expression-127"><a href="#Expression-127"><span class="linenos">127</span></a> <span class="nd">@property</span>
+</span><span id="Expression-128"><a href="#Expression-128"><span class="linenos">128</span></a> <span class="k">def</span> <span class="nf">this</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="Expression-129"><a href="#Expression-129"><span class="linenos">129</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-130"><a href="#Expression-130"><span class="linenos">130</span></a><span class="sd"> Retrieves the argument with key &quot;this&quot;.</span>
+</span><span id="Expression-131"><a href="#Expression-131"><span class="linenos">131</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-132"><a href="#Expression-132"><span class="linenos">132</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;this&quot;</span><span class="p">)</span>
+</span><span id="Expression-133"><a href="#Expression-133"><span class="linenos">133</span></a>
+</span><span id="Expression-134"><a href="#Expression-134"><span class="linenos">134</span></a> <span class="nd">@property</span>
+</span><span id="Expression-135"><a href="#Expression-135"><span class="linenos">135</span></a> <span class="k">def</span> <span class="nf">expression</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="Expression-136"><a href="#Expression-136"><span class="linenos">136</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-137"><a href="#Expression-137"><span class="linenos">137</span></a><span class="sd"> Retrieves the argument with key &quot;expression&quot;.</span>
+</span><span id="Expression-138"><a href="#Expression-138"><span class="linenos">138</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-139"><a href="#Expression-139"><span class="linenos">139</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;expression&quot;</span><span class="p">)</span>
+</span><span id="Expression-140"><a href="#Expression-140"><span class="linenos">140</span></a>
+</span><span id="Expression-141"><a href="#Expression-141"><span class="linenos">141</span></a> <span class="nd">@property</span>
+</span><span id="Expression-142"><a href="#Expression-142"><span class="linenos">142</span></a> <span class="k">def</span> <span class="nf">expressions</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]:</span>
+</span><span id="Expression-143"><a href="#Expression-143"><span class="linenos">143</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-144"><a href="#Expression-144"><span class="linenos">144</span></a><span class="sd"> Retrieves the argument with key &quot;expressions&quot;.</span>
+</span><span id="Expression-145"><a href="#Expression-145"><span class="linenos">145</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-146"><a href="#Expression-146"><span class="linenos">146</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;expressions&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]</span>
+</span><span id="Expression-147"><a href="#Expression-147"><span class="linenos">147</span></a>
+</span><span id="Expression-148"><a href="#Expression-148"><span class="linenos">148</span></a> <span class="k">def</span> <span class="nf">text</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Expression-149"><a href="#Expression-149"><span class="linenos">149</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-150"><a href="#Expression-150"><span class="linenos">150</span></a><span class="sd"> Returns a textual representation of the argument corresponding to &quot;key&quot;. This can only be used</span>
+</span><span id="Expression-151"><a href="#Expression-151"><span class="linenos">151</span></a><span class="sd"> for args that are strings or leaf Expression instances, such as identifiers and literals.</span>
+</span><span id="Expression-152"><a href="#Expression-152"><span class="linenos">152</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-153"><a href="#Expression-153"><span class="linenos">153</span></a> <span class="n">field</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">key</span><span class="p">)</span>
+</span><span id="Expression-154"><a href="#Expression-154"><span class="linenos">154</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">field</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
+</span><span id="Expression-155"><a href="#Expression-155"><span class="linenos">155</span></a> <span class="k">return</span> <span class="n">field</span>
+</span><span id="Expression-156"><a href="#Expression-156"><span class="linenos">156</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">field</span><span class="p">,</span> <span class="p">(</span><span class="n">Identifier</span><span class="p">,</span> <span class="n">Literal</span><span class="p">,</span> <span class="n">Var</span><span class="p">)):</span>
+</span><span id="Expression-157"><a href="#Expression-157"><span class="linenos">157</span></a> <span class="k">return</span> <span class="n">field</span><span class="o">.</span><span class="n">this</span>
+</span><span id="Expression-158"><a href="#Expression-158"><span class="linenos">158</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">field</span><span class="p">,</span> <span class="p">(</span><span class="n">Star</span><span class="p">,</span> <span class="n">Null</span><span class="p">)):</span>
+</span><span id="Expression-159"><a href="#Expression-159"><span class="linenos">159</span></a> <span class="k">return</span> <span class="n">field</span><span class="o">.</span><span class="n">name</span>
+</span><span id="Expression-160"><a href="#Expression-160"><span class="linenos">160</span></a> <span class="k">return</span> <span class="s2">&quot;&quot;</span>
+</span><span id="Expression-161"><a href="#Expression-161"><span class="linenos">161</span></a>
+</span><span id="Expression-162"><a href="#Expression-162"><span class="linenos">162</span></a> <span class="nd">@property</span>
+</span><span id="Expression-163"><a href="#Expression-163"><span class="linenos">163</span></a> <span class="k">def</span> <span class="nf">is_string</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="Expression-164"><a href="#Expression-164"><span class="linenos">164</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-165"><a href="#Expression-165"><span class="linenos">165</span></a><span class="sd"> Checks whether a Literal expression is a string.</span>
+</span><span id="Expression-166"><a href="#Expression-166"><span class="linenos">166</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-167"><a href="#Expression-167"><span class="linenos">167</span></a> <span class="k">return</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Literal</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;is_string&quot;</span><span class="p">]</span>
+</span><span id="Expression-168"><a href="#Expression-168"><span class="linenos">168</span></a>
+</span><span id="Expression-169"><a href="#Expression-169"><span class="linenos">169</span></a> <span class="nd">@property</span>
+</span><span id="Expression-170"><a href="#Expression-170"><span class="linenos">170</span></a> <span class="k">def</span> <span class="nf">is_number</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="Expression-171"><a href="#Expression-171"><span class="linenos">171</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-172"><a href="#Expression-172"><span class="linenos">172</span></a><span class="sd"> Checks whether a Literal expression is a number.</span>
+</span><span id="Expression-173"><a href="#Expression-173"><span class="linenos">173</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-174"><a href="#Expression-174"><span class="linenos">174</span></a> <span class="k">return</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Literal</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;is_string&quot;</span><span class="p">]</span>
+</span><span id="Expression-175"><a href="#Expression-175"><span class="linenos">175</span></a>
+</span><span id="Expression-176"><a href="#Expression-176"><span class="linenos">176</span></a> <span class="nd">@property</span>
+</span><span id="Expression-177"><a href="#Expression-177"><span class="linenos">177</span></a> <span class="k">def</span> <span class="nf">is_int</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="Expression-178"><a href="#Expression-178"><span class="linenos">178</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-179"><a href="#Expression-179"><span class="linenos">179</span></a><span class="sd"> Checks whether a Literal expression is an integer.</span>
+</span><span id="Expression-180"><a href="#Expression-180"><span class="linenos">180</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-181"><a href="#Expression-181"><span class="linenos">181</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_number</span><span class="p">:</span>
+</span><span id="Expression-182"><a href="#Expression-182"><span class="linenos">182</span></a> <span class="k">try</span><span class="p">:</span>
+</span><span id="Expression-183"><a href="#Expression-183"><span class="linenos">183</span></a> <span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+</span><span id="Expression-184"><a href="#Expression-184"><span class="linenos">184</span></a> <span class="k">return</span> <span class="kc">True</span>
+</span><span id="Expression-185"><a href="#Expression-185"><span class="linenos">185</span></a> <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
+</span><span id="Expression-186"><a href="#Expression-186"><span class="linenos">186</span></a> <span class="k">pass</span>
+</span><span id="Expression-187"><a href="#Expression-187"><span class="linenos">187</span></a> <span class="k">return</span> <span class="kc">False</span>
+</span><span id="Expression-188"><a href="#Expression-188"><span class="linenos">188</span></a>
+</span><span id="Expression-189"><a href="#Expression-189"><span class="linenos">189</span></a> <span class="nd">@property</span>
+</span><span id="Expression-190"><a href="#Expression-190"><span class="linenos">190</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="Expression-191"><a href="#Expression-191"><span class="linenos">191</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Checks whether an expression is a star.&quot;&quot;&quot;</span>
+</span><span id="Expression-192"><a href="#Expression-192"><span class="linenos">192</span></a> <span class="k">return</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Star</span><span class="p">)</span> <span class="ow">or</span> <span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Column</span><span class="p">)</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">Star</span><span class="p">))</span>
+</span><span id="Expression-193"><a href="#Expression-193"><span class="linenos">193</span></a>
+</span><span id="Expression-194"><a href="#Expression-194"><span class="linenos">194</span></a> <span class="nd">@property</span>
+</span><span id="Expression-195"><a href="#Expression-195"><span class="linenos">195</span></a> <span class="k">def</span> <span class="nf">alias</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Expression-196"><a href="#Expression-196"><span class="linenos">196</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-197"><a href="#Expression-197"><span class="linenos">197</span></a><span class="sd"> Returns the alias of the expression, or an empty string if it&#39;s not aliased.</span>
+</span><span id="Expression-198"><a href="#Expression-198"><span class="linenos">198</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-199"><a href="#Expression-199"><span class="linenos">199</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;alias&quot;</span><span class="p">),</span> <span class="n">TableAlias</span><span class="p">):</span>
+</span><span id="Expression-200"><a href="#Expression-200"><span class="linenos">200</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;alias&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">name</span>
+</span><span id="Expression-201"><a href="#Expression-201"><span class="linenos">201</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;alias&quot;</span><span class="p">)</span>
+</span><span id="Expression-202"><a href="#Expression-202"><span class="linenos">202</span></a>
+</span><span id="Expression-203"><a href="#Expression-203"><span class="linenos">203</span></a> <span class="nd">@property</span>
+</span><span id="Expression-204"><a href="#Expression-204"><span class="linenos">204</span></a> <span class="k">def</span> <span class="nf">alias_column_names</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
+</span><span id="Expression-205"><a href="#Expression-205"><span class="linenos">205</span></a> <span class="n">table_alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;alias&quot;</span><span class="p">)</span>
+</span><span id="Expression-206"><a href="#Expression-206"><span class="linenos">206</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">table_alias</span><span class="p">:</span>
+</span><span id="Expression-207"><a href="#Expression-207"><span class="linenos">207</span></a> <span class="k">return</span> <span class="p">[]</span>
+</span><span id="Expression-208"><a href="#Expression-208"><span class="linenos">208</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">c</span><span class="o">.</span><span class="n">name</span> <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="n">table_alias</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;columns&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]]</span>
+</span><span id="Expression-209"><a href="#Expression-209"><span class="linenos">209</span></a>
+</span><span id="Expression-210"><a href="#Expression-210"><span class="linenos">210</span></a> <span class="nd">@property</span>
+</span><span id="Expression-211"><a href="#Expression-211"><span class="linenos">211</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Expression-212"><a href="#Expression-212"><span class="linenos">212</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;this&quot;</span><span class="p">)</span>
+</span><span id="Expression-213"><a href="#Expression-213"><span class="linenos">213</span></a>
+</span><span id="Expression-214"><a href="#Expression-214"><span class="linenos">214</span></a> <span class="nd">@property</span>
+</span><span id="Expression-215"><a href="#Expression-215"><span class="linenos">215</span></a> <span class="k">def</span> <span class="nf">alias_or_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Expression-216"><a href="#Expression-216"><span class="linenos">216</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
+</span><span id="Expression-217"><a href="#Expression-217"><span class="linenos">217</span></a>
+</span><span id="Expression-218"><a href="#Expression-218"><span class="linenos">218</span></a> <span class="nd">@property</span>
+</span><span id="Expression-219"><a href="#Expression-219"><span class="linenos">219</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Expression-220"><a href="#Expression-220"><span class="linenos">220</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-221"><a href="#Expression-221"><span class="linenos">221</span></a><span class="sd"> Name of the output column if this expression is a selection.</span>
+</span><span id="Expression-222"><a href="#Expression-222"><span class="linenos">222</span></a>
+</span><span id="Expression-223"><a href="#Expression-223"><span class="linenos">223</span></a><span class="sd"> If the Expression has no output name, an empty string is returned.</span>
+</span><span id="Expression-224"><a href="#Expression-224"><span class="linenos">224</span></a>
+</span><span id="Expression-225"><a href="#Expression-225"><span class="linenos">225</span></a><span class="sd"> Example:</span>
+</span><span id="Expression-226"><a href="#Expression-226"><span class="linenos">226</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
+</span><span id="Expression-227"><a href="#Expression-227"><span class="linenos">227</span></a><span class="sd"> &gt;&gt;&gt; parse_one(&quot;SELECT a&quot;).expressions[0].output_name</span>
+</span><span id="Expression-228"><a href="#Expression-228"><span class="linenos">228</span></a><span class="sd"> &#39;a&#39;</span>
+</span><span id="Expression-229"><a href="#Expression-229"><span class="linenos">229</span></a><span class="sd"> &gt;&gt;&gt; parse_one(&quot;SELECT b AS c&quot;).expressions[0].output_name</span>
+</span><span id="Expression-230"><a href="#Expression-230"><span class="linenos">230</span></a><span class="sd"> &#39;c&#39;</span>
+</span><span id="Expression-231"><a href="#Expression-231"><span class="linenos">231</span></a><span class="sd"> &gt;&gt;&gt; parse_one(&quot;SELECT 1 + 2&quot;).expressions[0].output_name</span>
+</span><span id="Expression-232"><a href="#Expression-232"><span class="linenos">232</span></a><span class="sd"> &#39;&#39;</span>
+</span><span id="Expression-233"><a href="#Expression-233"><span class="linenos">233</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-234"><a href="#Expression-234"><span class="linenos">234</span></a> <span class="k">return</span> <span class="s2">&quot;&quot;</span>
+</span><span id="Expression-235"><a href="#Expression-235"><span class="linenos">235</span></a>
+</span><span id="Expression-236"><a href="#Expression-236"><span class="linenos">236</span></a> <span class="nd">@property</span>
+</span><span id="Expression-237"><a href="#Expression-237"><span class="linenos">237</span></a> <span class="k">def</span> <span class="nf">type</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">DataType</span><span class="p">]:</span>
+</span><span id="Expression-238"><a href="#Expression-238"><span class="linenos">238</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_type</span>
+</span><span id="Expression-239"><a href="#Expression-239"><span class="linenos">239</span></a>
+</span><span id="Expression-240"><a href="#Expression-240"><span class="linenos">240</span></a> <span class="nd">@type</span><span class="o">.</span><span class="n">setter</span>
+</span><span id="Expression-241"><a href="#Expression-241"><span class="linenos">241</span></a> <span class="k">def</span> <span class="nf">type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">DataType</span> <span class="o">|</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span> <span class="o">|</span> <span class="nb">str</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="Expression-242"><a href="#Expression-242"><span class="linenos">242</span></a> <span class="k">if</span> <span class="n">dtype</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">DataType</span><span class="p">):</span>
+</span><span id="Expression-243"><a href="#Expression-243"><span class="linenos">243</span></a> <span class="n">dtype</span> <span class="o">=</span> <span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span>
+</span><span id="Expression-244"><a href="#Expression-244"><span class="linenos">244</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_type</span> <span class="o">=</span> <span class="n">dtype</span> <span class="c1"># type: ignore</span>
</span><span id="Expression-245"><a href="#Expression-245"><span class="linenos">245</span></a>
-</span><span id="Expression-246"><a href="#Expression-246"><span class="linenos">246</span></a> <span class="nd">@property</span>
-</span><span id="Expression-247"><a href="#Expression-247"><span class="linenos">247</span></a> <span class="k">def</span> <span class="nf">meta</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]:</span>
-</span><span id="Expression-248"><a href="#Expression-248"><span class="linenos">248</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_meta</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="Expression-249"><a href="#Expression-249"><span class="linenos">249</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_meta</span> <span class="o">=</span> <span class="p">{}</span>
-</span><span id="Expression-250"><a href="#Expression-250"><span class="linenos">250</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_meta</span>
+</span><span id="Expression-246"><a href="#Expression-246"><span class="linenos">246</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">dtypes</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="Expression-247"><a href="#Expression-247"><span class="linenos">247</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">type</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">type</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="o">*</span><span class="n">dtypes</span><span class="p">)</span>
+</span><span id="Expression-248"><a href="#Expression-248"><span class="linenos">248</span></a>
+</span><span id="Expression-249"><a href="#Expression-249"><span class="linenos">249</span></a> <span class="k">def</span> <span class="nf">is_leaf</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="Expression-250"><a href="#Expression-250"><span class="linenos">250</span></a> <span class="k">return</span> <span class="ow">not</span> <span class="nb">any</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="p">(</span><span class="n">Expression</span><span class="p">,</span> <span class="nb">list</span><span class="p">))</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">values</span><span class="p">())</span>
</span><span id="Expression-251"><a href="#Expression-251"><span class="linenos">251</span></a>
-</span><span id="Expression-252"><a href="#Expression-252"><span class="linenos">252</span></a> <span class="k">def</span> <span class="nf">__deepcopy__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">memo</span><span class="p">):</span>
-</span><span id="Expression-253"><a href="#Expression-253"><span class="linenos">253</span></a> <span class="n">copy</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">(</span><span class="o">**</span><span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">))</span>
-</span><span id="Expression-254"><a href="#Expression-254"><span class="linenos">254</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="Expression-255"><a href="#Expression-255"><span class="linenos">255</span></a> <span class="n">copy</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">comments</span><span class="p">)</span>
-</span><span id="Expression-256"><a href="#Expression-256"><span class="linenos">256</span></a>
-</span><span id="Expression-257"><a href="#Expression-257"><span class="linenos">257</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_type</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="Expression-258"><a href="#Expression-258"><span class="linenos">258</span></a> <span class="n">copy</span><span class="o">.</span><span class="n">_type</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_type</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
-</span><span id="Expression-259"><a href="#Expression-259"><span class="linenos">259</span></a>
-</span><span id="Expression-260"><a href="#Expression-260"><span class="linenos">260</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_meta</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="Expression-261"><a href="#Expression-261"><span class="linenos">261</span></a> <span class="n">copy</span><span class="o">.</span><span class="n">_meta</span> <span class="o">=</span> <span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_meta</span><span class="p">)</span>
+</span><span id="Expression-252"><a href="#Expression-252"><span class="linenos">252</span></a> <span class="nd">@property</span>
+</span><span id="Expression-253"><a href="#Expression-253"><span class="linenos">253</span></a> <span class="k">def</span> <span class="nf">meta</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]:</span>
+</span><span id="Expression-254"><a href="#Expression-254"><span class="linenos">254</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_meta</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="Expression-255"><a href="#Expression-255"><span class="linenos">255</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_meta</span> <span class="o">=</span> <span class="p">{}</span>
+</span><span id="Expression-256"><a href="#Expression-256"><span class="linenos">256</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_meta</span>
+</span><span id="Expression-257"><a href="#Expression-257"><span class="linenos">257</span></a>
+</span><span id="Expression-258"><a href="#Expression-258"><span class="linenos">258</span></a> <span class="k">def</span> <span class="nf">__deepcopy__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">memo</span><span class="p">):</span>
+</span><span id="Expression-259"><a href="#Expression-259"><span class="linenos">259</span></a> <span class="n">copy</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">(</span><span class="o">**</span><span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">))</span>
+</span><span id="Expression-260"><a href="#Expression-260"><span class="linenos">260</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="Expression-261"><a href="#Expression-261"><span class="linenos">261</span></a> <span class="n">copy</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">comments</span><span class="p">)</span>
</span><span id="Expression-262"><a href="#Expression-262"><span class="linenos">262</span></a>
-</span><span id="Expression-263"><a href="#Expression-263"><span class="linenos">263</span></a> <span class="k">return</span> <span class="n">copy</span>
-</span><span id="Expression-264"><a href="#Expression-264"><span class="linenos">264</span></a>
-</span><span id="Expression-265"><a href="#Expression-265"><span class="linenos">265</span></a> <span class="k">def</span> <span class="nf">copy</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Expression-266"><a href="#Expression-266"><span class="linenos">266</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-267"><a href="#Expression-267"><span class="linenos">267</span></a><span class="sd"> Returns a deep copy of the expression.</span>
-</span><span id="Expression-268"><a href="#Expression-268"><span class="linenos">268</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-269"><a href="#Expression-269"><span class="linenos">269</span></a> <span class="n">new</span> <span class="o">=</span> <span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
-</span><span id="Expression-270"><a href="#Expression-270"><span class="linenos">270</span></a> <span class="n">new</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
-</span><span id="Expression-271"><a href="#Expression-271"><span class="linenos">271</span></a> <span class="k">return</span> <span class="n">new</span>
-</span><span id="Expression-272"><a href="#Expression-272"><span class="linenos">272</span></a>
-</span><span id="Expression-273"><a href="#Expression-273"><span class="linenos">273</span></a> <span class="k">def</span> <span class="nf">add_comments</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">comments</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]])</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="Expression-274"><a href="#Expression-274"><span class="linenos">274</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="Expression-275"><a href="#Expression-275"><span class="linenos">275</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="p">[]</span>
-</span><span id="Expression-276"><a href="#Expression-276"><span class="linenos">276</span></a> <span class="k">if</span> <span class="n">comments</span><span class="p">:</span>
-</span><span id="Expression-277"><a href="#Expression-277"><span class="linenos">277</span></a> <span class="k">for</span> <span class="n">comment</span> <span class="ow">in</span> <span class="n">comments</span><span class="p">:</span>
-</span><span id="Expression-278"><a href="#Expression-278"><span class="linenos">278</span></a> <span class="n">_</span><span class="p">,</span> <span class="o">*</span><span class="n">meta</span> <span class="o">=</span> <span class="n">comment</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">SQLGLOT_META</span><span class="p">)</span>
-</span><span id="Expression-279"><a href="#Expression-279"><span class="linenos">279</span></a> <span class="k">if</span> <span class="n">meta</span><span class="p">:</span>
-</span><span id="Expression-280"><a href="#Expression-280"><span class="linenos">280</span></a> <span class="k">for</span> <span class="n">kv</span> <span class="ow">in</span> <span class="s2">&quot;&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">meta</span><span class="p">)</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><span id="Expression-281"><a href="#Expression-281"><span class="linenos">281</span></a> <span class="n">k</span><span class="p">,</span> <span class="o">*</span><span class="n">v</span> <span class="o">=</span> <span class="n">kv</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><span id="Expression-282"><a href="#Expression-282"><span class="linenos">282</span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">v</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="k">if</span> <span class="n">v</span> <span class="k">else</span> <span class="kc">True</span>
-</span><span id="Expression-283"><a href="#Expression-283"><span class="linenos">283</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">meta</span><span class="p">[</span><span class="n">k</span><span class="o">.</span><span class="n">strip</span><span class="p">()]</span> <span class="o">=</span> <span class="n">value</span>
-</span><span id="Expression-284"><a href="#Expression-284"><span class="linenos">284</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">comment</span><span class="p">)</span>
-</span><span id="Expression-285"><a href="#Expression-285"><span class="linenos">285</span></a>
-</span><span id="Expression-286"><a href="#Expression-286"><span class="linenos">286</span></a> <span class="k">def</span> <span class="nf">append</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">arg_key</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="Expression-287"><a href="#Expression-287"><span class="linenos">287</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-288"><a href="#Expression-288"><span class="linenos">288</span></a><span class="sd"> Appends value to arg_key if it&#39;s a list or sets it as a new list.</span>
-</span><span id="Expression-289"><a href="#Expression-289"><span class="linenos">289</span></a>
-</span><span id="Expression-290"><a href="#Expression-290"><span class="linenos">290</span></a><span class="sd"> Args:</span>
-</span><span id="Expression-291"><a href="#Expression-291"><span class="linenos">291</span></a><span class="sd"> arg_key (str): name of the list expression arg</span>
-</span><span id="Expression-292"><a href="#Expression-292"><span class="linenos">292</span></a><span class="sd"> value (Any): value to append to the list</span>
-</span><span id="Expression-293"><a href="#Expression-293"><span class="linenos">293</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-294"><a href="#Expression-294"><span class="linenos">294</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">arg_key</span><span class="p">),</span> <span class="nb">list</span><span class="p">):</span>
-</span><span id="Expression-295"><a href="#Expression-295"><span class="linenos">295</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">arg_key</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
-</span><span id="Expression-296"><a href="#Expression-296"><span class="linenos">296</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">arg_key</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
-</span><span id="Expression-297"><a href="#Expression-297"><span class="linenos">297</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_set_parent</span><span class="p">(</span><span class="n">arg_key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
-</span><span id="Expression-298"><a href="#Expression-298"><span class="linenos">298</span></a>
-</span><span id="Expression-299"><a href="#Expression-299"><span class="linenos">299</span></a> <span class="k">def</span> <span class="nf">set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">arg_key</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="Expression-300"><a href="#Expression-300"><span class="linenos">300</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-301"><a href="#Expression-301"><span class="linenos">301</span></a><span class="sd"> Sets arg_key to value.</span>
-</span><span id="Expression-302"><a href="#Expression-302"><span class="linenos">302</span></a>
-</span><span id="Expression-303"><a href="#Expression-303"><span class="linenos">303</span></a><span class="sd"> Args:</span>
-</span><span id="Expression-304"><a href="#Expression-304"><span class="linenos">304</span></a><span class="sd"> arg_key: name of the expression arg.</span>
-</span><span id="Expression-305"><a href="#Expression-305"><span class="linenos">305</span></a><span class="sd"> value: value to set the arg to.</span>
-</span><span id="Expression-306"><a href="#Expression-306"><span class="linenos">306</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-307"><a href="#Expression-307"><span class="linenos">307</span></a> <span class="k">if</span> <span class="n">value</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="Expression-308"><a href="#Expression-308"><span class="linenos">308</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">arg_key</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
-</span><span id="Expression-309"><a href="#Expression-309"><span class="linenos">309</span></a> <span class="k">return</span>
-</span><span id="Expression-310"><a href="#Expression-310"><span class="linenos">310</span></a>
-</span><span id="Expression-311"><a href="#Expression-311"><span class="linenos">311</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">arg_key</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span>
-</span><span id="Expression-312"><a href="#Expression-312"><span class="linenos">312</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_set_parent</span><span class="p">(</span><span class="n">arg_key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
-</span><span id="Expression-313"><a href="#Expression-313"><span class="linenos">313</span></a>
-</span><span id="Expression-314"><a href="#Expression-314"><span class="linenos">314</span></a> <span class="k">def</span> <span class="nf">_set_parent</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">arg_key</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="Expression-315"><a href="#Expression-315"><span class="linenos">315</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">):</span>
-</span><span id="Expression-316"><a href="#Expression-316"><span class="linenos">316</span></a> <span class="n">value</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span>
-</span><span id="Expression-317"><a href="#Expression-317"><span class="linenos">317</span></a> <span class="n">value</span><span class="o">.</span><span class="n">arg_key</span> <span class="o">=</span> <span class="n">arg_key</span>
-</span><span id="Expression-318"><a href="#Expression-318"><span class="linenos">318</span></a> <span class="k">elif</span> <span class="nb">type</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">list</span><span class="p">:</span>
-</span><span id="Expression-319"><a href="#Expression-319"><span class="linenos">319</span></a> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">:</span>
-</span><span id="Expression-320"><a href="#Expression-320"><span class="linenos">320</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">):</span>
-</span><span id="Expression-321"><a href="#Expression-321"><span class="linenos">321</span></a> <span class="n">v</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span>
-</span><span id="Expression-322"><a href="#Expression-322"><span class="linenos">322</span></a> <span class="n">v</span><span class="o">.</span><span class="n">arg_key</span> <span class="o">=</span> <span class="n">arg_key</span>
-</span><span id="Expression-323"><a href="#Expression-323"><span class="linenos">323</span></a>
-</span><span id="Expression-324"><a href="#Expression-324"><span class="linenos">324</span></a> <span class="nd">@property</span>
-</span><span id="Expression-325"><a href="#Expression-325"><span class="linenos">325</span></a> <span class="k">def</span> <span class="nf">depth</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">int</span><span class="p">:</span>
-</span><span id="Expression-326"><a href="#Expression-326"><span class="linenos">326</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-327"><a href="#Expression-327"><span class="linenos">327</span></a><span class="sd"> Returns the depth of this tree.</span>
-</span><span id="Expression-328"><a href="#Expression-328"><span class="linenos">328</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-329"><a href="#Expression-329"><span class="linenos">329</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">:</span>
-</span><span id="Expression-330"><a href="#Expression-330"><span class="linenos">330</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">depth</span> <span class="o">+</span> <span class="mi">1</span>
-</span><span id="Expression-331"><a href="#Expression-331"><span class="linenos">331</span></a> <span class="k">return</span> <span class="mi">0</span>
-</span><span id="Expression-332"><a href="#Expression-332"><span class="linenos">332</span></a>
-</span><span id="Expression-333"><a href="#Expression-333"><span class="linenos">333</span></a> <span class="k">def</span> <span class="nf">iter_expressions</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Iterator</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Tuple</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Expression</span><span class="p">]]:</span>
-</span><span id="Expression-334"><a href="#Expression-334"><span class="linenos">334</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Yields the key and expression for all arguments, exploding list args.&quot;&quot;&quot;</span>
-</span><span id="Expression-335"><a href="#Expression-335"><span class="linenos">335</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">vs</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
-</span><span id="Expression-336"><a href="#Expression-336"><span class="linenos">336</span></a> <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">vs</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">list</span><span class="p">:</span>
-</span><span id="Expression-337"><a href="#Expression-337"><span class="linenos">337</span></a> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">vs</span><span class="p">:</span>
-</span><span id="Expression-338"><a href="#Expression-338"><span class="linenos">338</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">):</span>
-</span><span id="Expression-339"><a href="#Expression-339"><span class="linenos">339</span></a> <span class="k">yield</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span>
-</span><span id="Expression-340"><a href="#Expression-340"><span class="linenos">340</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="Expression-341"><a href="#Expression-341"><span class="linenos">341</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">vs</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">):</span>
-</span><span id="Expression-342"><a href="#Expression-342"><span class="linenos">342</span></a> <span class="k">yield</span> <span class="n">k</span><span class="p">,</span> <span class="n">vs</span>
-</span><span id="Expression-343"><a href="#Expression-343"><span class="linenos">343</span></a>
-</span><span id="Expression-344"><a href="#Expression-344"><span class="linenos">344</span></a> <span class="k">def</span> <span class="nf">find</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">],</span> <span class="n">bfs</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">E</span><span class="p">]:</span>
-</span><span id="Expression-345"><a href="#Expression-345"><span class="linenos">345</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-346"><a href="#Expression-346"><span class="linenos">346</span></a><span class="sd"> Returns the first node in this tree which matches at least one of</span>
-</span><span id="Expression-347"><a href="#Expression-347"><span class="linenos">347</span></a><span class="sd"> the specified types.</span>
-</span><span id="Expression-348"><a href="#Expression-348"><span class="linenos">348</span></a>
-</span><span id="Expression-349"><a href="#Expression-349"><span class="linenos">349</span></a><span class="sd"> Args:</span>
-</span><span id="Expression-350"><a href="#Expression-350"><span class="linenos">350</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
-</span><span id="Expression-351"><a href="#Expression-351"><span class="linenos">351</span></a><span class="sd"> bfs: whether to search the AST using the BFS algorithm (DFS is used if false).</span>
-</span><span id="Expression-352"><a href="#Expression-352"><span class="linenos">352</span></a>
-</span><span id="Expression-353"><a href="#Expression-353"><span class="linenos">353</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression-354"><a href="#Expression-354"><span class="linenos">354</span></a><span class="sd"> The node which matches the criteria or None if no such node was found.</span>
-</span><span id="Expression-355"><a href="#Expression-355"><span class="linenos">355</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-356"><a href="#Expression-356"><span class="linenos">356</span></a> <span class="k">return</span> <span class="nb">next</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="o">*</span><span class="n">expression_types</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="n">bfs</span><span class="p">),</span> <span class="kc">None</span><span class="p">)</span>
-</span><span id="Expression-357"><a href="#Expression-357"><span class="linenos">357</span></a>
-</span><span id="Expression-358"><a href="#Expression-358"><span class="linenos">358</span></a> <span class="k">def</span> <span class="nf">find_all</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">],</span> <span class="n">bfs</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Iterator</span><span class="p">[</span><span class="n">E</span><span class="p">]:</span>
-</span><span id="Expression-359"><a href="#Expression-359"><span class="linenos">359</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-360"><a href="#Expression-360"><span class="linenos">360</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree and only</span>
-</span><span id="Expression-361"><a href="#Expression-361"><span class="linenos">361</span></a><span class="sd"> yields those that match at least one of the specified expression types.</span>
-</span><span id="Expression-362"><a href="#Expression-362"><span class="linenos">362</span></a>
-</span><span id="Expression-363"><a href="#Expression-363"><span class="linenos">363</span></a><span class="sd"> Args:</span>
-</span><span id="Expression-364"><a href="#Expression-364"><span class="linenos">364</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
-</span><span id="Expression-365"><a href="#Expression-365"><span class="linenos">365</span></a><span class="sd"> bfs: whether to search the AST using the BFS algorithm (DFS is used if false).</span>
-</span><span id="Expression-366"><a href="#Expression-366"><span class="linenos">366</span></a>
-</span><span id="Expression-367"><a href="#Expression-367"><span class="linenos">367</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression-368"><a href="#Expression-368"><span class="linenos">368</span></a><span class="sd"> The generator object.</span>
-</span><span id="Expression-369"><a href="#Expression-369"><span class="linenos">369</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-370"><a href="#Expression-370"><span class="linenos">370</span></a> <span class="k">for</span> <span class="n">expression</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">walk</span><span class="p">(</span><span class="n">bfs</span><span class="o">=</span><span class="n">bfs</span><span class="p">):</span>
-</span><span id="Expression-371"><a href="#Expression-371"><span class="linenos">371</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">expression_types</span><span class="p">):</span>
-</span><span id="Expression-372"><a href="#Expression-372"><span class="linenos">372</span></a> <span class="k">yield</span> <span class="n">expression</span>
-</span><span id="Expression-373"><a href="#Expression-373"><span class="linenos">373</span></a>
-</span><span id="Expression-374"><a href="#Expression-374"><span class="linenos">374</span></a> <span class="k">def</span> <span class="nf">find_ancestor</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">E</span><span class="p">]:</span>
-</span><span id="Expression-375"><a href="#Expression-375"><span class="linenos">375</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-376"><a href="#Expression-376"><span class="linenos">376</span></a><span class="sd"> Returns a nearest parent matching expression_types.</span>
-</span><span id="Expression-377"><a href="#Expression-377"><span class="linenos">377</span></a>
-</span><span id="Expression-378"><a href="#Expression-378"><span class="linenos">378</span></a><span class="sd"> Args:</span>
-</span><span id="Expression-379"><a href="#Expression-379"><span class="linenos">379</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
-</span><span id="Expression-380"><a href="#Expression-380"><span class="linenos">380</span></a>
-</span><span id="Expression-381"><a href="#Expression-381"><span class="linenos">381</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression-382"><a href="#Expression-382"><span class="linenos">382</span></a><span class="sd"> The parent node.</span>
-</span><span id="Expression-383"><a href="#Expression-383"><span class="linenos">383</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-384"><a href="#Expression-384"><span class="linenos">384</span></a> <span class="n">ancestor</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
-</span><span id="Expression-385"><a href="#Expression-385"><span class="linenos">385</span></a> <span class="k">while</span> <span class="n">ancestor</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">ancestor</span><span class="p">,</span> <span class="n">expression_types</span><span class="p">):</span>
-</span><span id="Expression-386"><a href="#Expression-386"><span class="linenos">386</span></a> <span class="n">ancestor</span> <span class="o">=</span> <span class="n">ancestor</span><span class="o">.</span><span class="n">parent</span>
-</span><span id="Expression-387"><a href="#Expression-387"><span class="linenos">387</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">E</span><span class="p">,</span> <span class="n">ancestor</span><span class="p">)</span>
-</span><span id="Expression-388"><a href="#Expression-388"><span class="linenos">388</span></a>
-</span><span id="Expression-389"><a href="#Expression-389"><span class="linenos">389</span></a> <span class="nd">@property</span>
-</span><span id="Expression-390"><a href="#Expression-390"><span class="linenos">390</span></a> <span class="k">def</span> <span class="nf">parent_select</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Select</span><span class="p">]:</span>
-</span><span id="Expression-391"><a href="#Expression-391"><span class="linenos">391</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-392"><a href="#Expression-392"><span class="linenos">392</span></a><span class="sd"> Returns the parent select statement.</span>
-</span><span id="Expression-393"><a href="#Expression-393"><span class="linenos">393</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-394"><a href="#Expression-394"><span class="linenos">394</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">find_ancestor</span><span class="p">(</span><span class="n">Select</span><span class="p">)</span>
-</span><span id="Expression-395"><a href="#Expression-395"><span class="linenos">395</span></a>
-</span><span id="Expression-396"><a href="#Expression-396"><span class="linenos">396</span></a> <span class="nd">@property</span>
-</span><span id="Expression-397"><a href="#Expression-397"><span class="linenos">397</span></a> <span class="k">def</span> <span class="nf">same_parent</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="Expression-398"><a href="#Expression-398"><span class="linenos">398</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Returns if the parent is the same class as itself.&quot;&quot;&quot;</span>
-</span><span id="Expression-399"><a href="#Expression-399"><span class="linenos">399</span></a> <span class="k">return</span> <span class="nb">type</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">)</span> <span class="ow">is</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span>
-</span><span id="Expression-400"><a href="#Expression-400"><span class="linenos">400</span></a>
-</span><span id="Expression-401"><a href="#Expression-401"><span class="linenos">401</span></a> <span class="k">def</span> <span class="nf">root</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="Expression-402"><a href="#Expression-402"><span class="linenos">402</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-403"><a href="#Expression-403"><span class="linenos">403</span></a><span class="sd"> Returns the root expression of this tree.</span>
-</span><span id="Expression-404"><a href="#Expression-404"><span class="linenos">404</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-405"><a href="#Expression-405"><span class="linenos">405</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
-</span><span id="Expression-406"><a href="#Expression-406"><span class="linenos">406</span></a> <span class="k">while</span> <span class="n">expression</span><span class="o">.</span><span class="n">parent</span><span class="p">:</span>
-</span><span id="Expression-407"><a href="#Expression-407"><span class="linenos">407</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">parent</span>
-</span><span id="Expression-408"><a href="#Expression-408"><span class="linenos">408</span></a> <span class="k">return</span> <span class="n">expression</span>
-</span><span id="Expression-409"><a href="#Expression-409"><span class="linenos">409</span></a>
-</span><span id="Expression-410"><a href="#Expression-410"><span class="linenos">410</span></a> <span class="k">def</span> <span class="nf">walk</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">prune</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
-</span><span id="Expression-411"><a href="#Expression-411"><span class="linenos">411</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-412"><a href="#Expression-412"><span class="linenos">412</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree.</span>
-</span><span id="Expression-413"><a href="#Expression-413"><span class="linenos">413</span></a>
-</span><span id="Expression-414"><a href="#Expression-414"><span class="linenos">414</span></a><span class="sd"> Args:</span>
-</span><span id="Expression-415"><a href="#Expression-415"><span class="linenos">415</span></a><span class="sd"> bfs (bool): if set to True the BFS traversal order will be applied,</span>
-</span><span id="Expression-416"><a href="#Expression-416"><span class="linenos">416</span></a><span class="sd"> otherwise the DFS traversal will be used instead.</span>
-</span><span id="Expression-417"><a href="#Expression-417"><span class="linenos">417</span></a><span class="sd"> prune ((node, parent, arg_key) -&gt; bool): callable that returns True if</span>
-</span><span id="Expression-418"><a href="#Expression-418"><span class="linenos">418</span></a><span class="sd"> the generator should stop traversing this branch of the tree.</span>
+</span><span id="Expression-263"><a href="#Expression-263"><span class="linenos">263</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_type</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="Expression-264"><a href="#Expression-264"><span class="linenos">264</span></a> <span class="n">copy</span><span class="o">.</span><span class="n">_type</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_type</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
+</span><span id="Expression-265"><a href="#Expression-265"><span class="linenos">265</span></a>
+</span><span id="Expression-266"><a href="#Expression-266"><span class="linenos">266</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_meta</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="Expression-267"><a href="#Expression-267"><span class="linenos">267</span></a> <span class="n">copy</span><span class="o">.</span><span class="n">_meta</span> <span class="o">=</span> <span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_meta</span><span class="p">)</span>
+</span><span id="Expression-268"><a href="#Expression-268"><span class="linenos">268</span></a>
+</span><span id="Expression-269"><a href="#Expression-269"><span class="linenos">269</span></a> <span class="k">return</span> <span class="n">copy</span>
+</span><span id="Expression-270"><a href="#Expression-270"><span class="linenos">270</span></a>
+</span><span id="Expression-271"><a href="#Expression-271"><span class="linenos">271</span></a> <span class="k">def</span> <span class="nf">copy</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="Expression-272"><a href="#Expression-272"><span class="linenos">272</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-273"><a href="#Expression-273"><span class="linenos">273</span></a><span class="sd"> Returns a deep copy of the expression.</span>
+</span><span id="Expression-274"><a href="#Expression-274"><span class="linenos">274</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-275"><a href="#Expression-275"><span class="linenos">275</span></a> <span class="n">new</span> <span class="o">=</span> <span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
+</span><span id="Expression-276"><a href="#Expression-276"><span class="linenos">276</span></a> <span class="n">new</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
+</span><span id="Expression-277"><a href="#Expression-277"><span class="linenos">277</span></a> <span class="k">return</span> <span class="n">new</span>
+</span><span id="Expression-278"><a href="#Expression-278"><span class="linenos">278</span></a>
+</span><span id="Expression-279"><a href="#Expression-279"><span class="linenos">279</span></a> <span class="k">def</span> <span class="nf">add_comments</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">comments</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]])</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="Expression-280"><a href="#Expression-280"><span class="linenos">280</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="Expression-281"><a href="#Expression-281"><span class="linenos">281</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="Expression-282"><a href="#Expression-282"><span class="linenos">282</span></a> <span class="k">if</span> <span class="n">comments</span><span class="p">:</span>
+</span><span id="Expression-283"><a href="#Expression-283"><span class="linenos">283</span></a> <span class="k">for</span> <span class="n">comment</span> <span class="ow">in</span> <span class="n">comments</span><span class="p">:</span>
+</span><span id="Expression-284"><a href="#Expression-284"><span class="linenos">284</span></a> <span class="n">_</span><span class="p">,</span> <span class="o">*</span><span class="n">meta</span> <span class="o">=</span> <span class="n">comment</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">SQLGLOT_META</span><span class="p">)</span>
+</span><span id="Expression-285"><a href="#Expression-285"><span class="linenos">285</span></a> <span class="k">if</span> <span class="n">meta</span><span class="p">:</span>
+</span><span id="Expression-286"><a href="#Expression-286"><span class="linenos">286</span></a> <span class="k">for</span> <span class="n">kv</span> <span class="ow">in</span> <span class="s2">&quot;&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">meta</span><span class="p">)</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><span id="Expression-287"><a href="#Expression-287"><span class="linenos">287</span></a> <span class="n">k</span><span class="p">,</span> <span class="o">*</span><span class="n">v</span> <span class="o">=</span> <span class="n">kv</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><span id="Expression-288"><a href="#Expression-288"><span class="linenos">288</span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">v</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="k">if</span> <span class="n">v</span> <span class="k">else</span> <span class="kc">True</span>
+</span><span id="Expression-289"><a href="#Expression-289"><span class="linenos">289</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">meta</span><span class="p">[</span><span class="n">k</span><span class="o">.</span><span class="n">strip</span><span class="p">()]</span> <span class="o">=</span> <span class="n">value</span>
+</span><span id="Expression-290"><a href="#Expression-290"><span class="linenos">290</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">comment</span><span class="p">)</span>
+</span><span id="Expression-291"><a href="#Expression-291"><span class="linenos">291</span></a>
+</span><span id="Expression-292"><a href="#Expression-292"><span class="linenos">292</span></a> <span class="k">def</span> <span class="nf">append</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">arg_key</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="Expression-293"><a href="#Expression-293"><span class="linenos">293</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-294"><a href="#Expression-294"><span class="linenos">294</span></a><span class="sd"> Appends value to arg_key if it&#39;s a list or sets it as a new list.</span>
+</span><span id="Expression-295"><a href="#Expression-295"><span class="linenos">295</span></a>
+</span><span id="Expression-296"><a href="#Expression-296"><span class="linenos">296</span></a><span class="sd"> Args:</span>
+</span><span id="Expression-297"><a href="#Expression-297"><span class="linenos">297</span></a><span class="sd"> arg_key (str): name of the list expression arg</span>
+</span><span id="Expression-298"><a href="#Expression-298"><span class="linenos">298</span></a><span class="sd"> value (Any): value to append to the list</span>
+</span><span id="Expression-299"><a href="#Expression-299"><span class="linenos">299</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-300"><a href="#Expression-300"><span class="linenos">300</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">arg_key</span><span class="p">),</span> <span class="nb">list</span><span class="p">):</span>
+</span><span id="Expression-301"><a href="#Expression-301"><span class="linenos">301</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">arg_key</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="Expression-302"><a href="#Expression-302"><span class="linenos">302</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">arg_key</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
+</span><span id="Expression-303"><a href="#Expression-303"><span class="linenos">303</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_set_parent</span><span class="p">(</span><span class="n">arg_key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
+</span><span id="Expression-304"><a href="#Expression-304"><span class="linenos">304</span></a>
+</span><span id="Expression-305"><a href="#Expression-305"><span class="linenos">305</span></a> <span class="k">def</span> <span class="nf">set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">arg_key</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="Expression-306"><a href="#Expression-306"><span class="linenos">306</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-307"><a href="#Expression-307"><span class="linenos">307</span></a><span class="sd"> Sets arg_key to value.</span>
+</span><span id="Expression-308"><a href="#Expression-308"><span class="linenos">308</span></a>
+</span><span id="Expression-309"><a href="#Expression-309"><span class="linenos">309</span></a><span class="sd"> Args:</span>
+</span><span id="Expression-310"><a href="#Expression-310"><span class="linenos">310</span></a><span class="sd"> arg_key: name of the expression arg.</span>
+</span><span id="Expression-311"><a href="#Expression-311"><span class="linenos">311</span></a><span class="sd"> value: value to set the arg to.</span>
+</span><span id="Expression-312"><a href="#Expression-312"><span class="linenos">312</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-313"><a href="#Expression-313"><span class="linenos">313</span></a> <span class="k">if</span> <span class="n">value</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="Expression-314"><a href="#Expression-314"><span class="linenos">314</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">arg_key</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
+</span><span id="Expression-315"><a href="#Expression-315"><span class="linenos">315</span></a> <span class="k">return</span>
+</span><span id="Expression-316"><a href="#Expression-316"><span class="linenos">316</span></a>
+</span><span id="Expression-317"><a href="#Expression-317"><span class="linenos">317</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">arg_key</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span>
+</span><span id="Expression-318"><a href="#Expression-318"><span class="linenos">318</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_set_parent</span><span class="p">(</span><span class="n">arg_key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
+</span><span id="Expression-319"><a href="#Expression-319"><span class="linenos">319</span></a>
+</span><span id="Expression-320"><a href="#Expression-320"><span class="linenos">320</span></a> <span class="k">def</span> <span class="nf">_set_parent</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">arg_key</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="Expression-321"><a href="#Expression-321"><span class="linenos">321</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">):</span>
+</span><span id="Expression-322"><a href="#Expression-322"><span class="linenos">322</span></a> <span class="n">value</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span>
+</span><span id="Expression-323"><a href="#Expression-323"><span class="linenos">323</span></a> <span class="n">value</span><span class="o">.</span><span class="n">arg_key</span> <span class="o">=</span> <span class="n">arg_key</span>
+</span><span id="Expression-324"><a href="#Expression-324"><span class="linenos">324</span></a> <span class="k">elif</span> <span class="nb">type</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">list</span><span class="p">:</span>
+</span><span id="Expression-325"><a href="#Expression-325"><span class="linenos">325</span></a> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">:</span>
+</span><span id="Expression-326"><a href="#Expression-326"><span class="linenos">326</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">):</span>
+</span><span id="Expression-327"><a href="#Expression-327"><span class="linenos">327</span></a> <span class="n">v</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span>
+</span><span id="Expression-328"><a href="#Expression-328"><span class="linenos">328</span></a> <span class="n">v</span><span class="o">.</span><span class="n">arg_key</span> <span class="o">=</span> <span class="n">arg_key</span>
+</span><span id="Expression-329"><a href="#Expression-329"><span class="linenos">329</span></a>
+</span><span id="Expression-330"><a href="#Expression-330"><span class="linenos">330</span></a> <span class="nd">@property</span>
+</span><span id="Expression-331"><a href="#Expression-331"><span class="linenos">331</span></a> <span class="k">def</span> <span class="nf">depth</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">int</span><span class="p">:</span>
+</span><span id="Expression-332"><a href="#Expression-332"><span class="linenos">332</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-333"><a href="#Expression-333"><span class="linenos">333</span></a><span class="sd"> Returns the depth of this tree.</span>
+</span><span id="Expression-334"><a href="#Expression-334"><span class="linenos">334</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-335"><a href="#Expression-335"><span class="linenos">335</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">:</span>
+</span><span id="Expression-336"><a href="#Expression-336"><span class="linenos">336</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">depth</span> <span class="o">+</span> <span class="mi">1</span>
+</span><span id="Expression-337"><a href="#Expression-337"><span class="linenos">337</span></a> <span class="k">return</span> <span class="mi">0</span>
+</span><span id="Expression-338"><a href="#Expression-338"><span class="linenos">338</span></a>
+</span><span id="Expression-339"><a href="#Expression-339"><span class="linenos">339</span></a> <span class="k">def</span> <span class="nf">iter_expressions</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Iterator</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Tuple</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Expression</span><span class="p">]]:</span>
+</span><span id="Expression-340"><a href="#Expression-340"><span class="linenos">340</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Yields the key and expression for all arguments, exploding list args.&quot;&quot;&quot;</span>
+</span><span id="Expression-341"><a href="#Expression-341"><span class="linenos">341</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">vs</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+</span><span id="Expression-342"><a href="#Expression-342"><span class="linenos">342</span></a> <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">vs</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">list</span><span class="p">:</span>
+</span><span id="Expression-343"><a href="#Expression-343"><span class="linenos">343</span></a> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">vs</span><span class="p">:</span>
+</span><span id="Expression-344"><a href="#Expression-344"><span class="linenos">344</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">):</span>
+</span><span id="Expression-345"><a href="#Expression-345"><span class="linenos">345</span></a> <span class="k">yield</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span>
+</span><span id="Expression-346"><a href="#Expression-346"><span class="linenos">346</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="Expression-347"><a href="#Expression-347"><span class="linenos">347</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">vs</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">):</span>
+</span><span id="Expression-348"><a href="#Expression-348"><span class="linenos">348</span></a> <span class="k">yield</span> <span class="n">k</span><span class="p">,</span> <span class="n">vs</span>
+</span><span id="Expression-349"><a href="#Expression-349"><span class="linenos">349</span></a>
+</span><span id="Expression-350"><a href="#Expression-350"><span class="linenos">350</span></a> <span class="k">def</span> <span class="nf">find</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">],</span> <span class="n">bfs</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">E</span><span class="p">]:</span>
+</span><span id="Expression-351"><a href="#Expression-351"><span class="linenos">351</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-352"><a href="#Expression-352"><span class="linenos">352</span></a><span class="sd"> Returns the first node in this tree which matches at least one of</span>
+</span><span id="Expression-353"><a href="#Expression-353"><span class="linenos">353</span></a><span class="sd"> the specified types.</span>
+</span><span id="Expression-354"><a href="#Expression-354"><span class="linenos">354</span></a>
+</span><span id="Expression-355"><a href="#Expression-355"><span class="linenos">355</span></a><span class="sd"> Args:</span>
+</span><span id="Expression-356"><a href="#Expression-356"><span class="linenos">356</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
+</span><span id="Expression-357"><a href="#Expression-357"><span class="linenos">357</span></a><span class="sd"> bfs: whether to search the AST using the BFS algorithm (DFS is used if false).</span>
+</span><span id="Expression-358"><a href="#Expression-358"><span class="linenos">358</span></a>
+</span><span id="Expression-359"><a href="#Expression-359"><span class="linenos">359</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression-360"><a href="#Expression-360"><span class="linenos">360</span></a><span class="sd"> The node which matches the criteria or None if no such node was found.</span>
+</span><span id="Expression-361"><a href="#Expression-361"><span class="linenos">361</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-362"><a href="#Expression-362"><span class="linenos">362</span></a> <span class="k">return</span> <span class="nb">next</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="o">*</span><span class="n">expression_types</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="n">bfs</span><span class="p">),</span> <span class="kc">None</span><span class="p">)</span>
+</span><span id="Expression-363"><a href="#Expression-363"><span class="linenos">363</span></a>
+</span><span id="Expression-364"><a href="#Expression-364"><span class="linenos">364</span></a> <span class="k">def</span> <span class="nf">find_all</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">],</span> <span class="n">bfs</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Iterator</span><span class="p">[</span><span class="n">E</span><span class="p">]:</span>
+</span><span id="Expression-365"><a href="#Expression-365"><span class="linenos">365</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-366"><a href="#Expression-366"><span class="linenos">366</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree and only</span>
+</span><span id="Expression-367"><a href="#Expression-367"><span class="linenos">367</span></a><span class="sd"> yields those that match at least one of the specified expression types.</span>
+</span><span id="Expression-368"><a href="#Expression-368"><span class="linenos">368</span></a>
+</span><span id="Expression-369"><a href="#Expression-369"><span class="linenos">369</span></a><span class="sd"> Args:</span>
+</span><span id="Expression-370"><a href="#Expression-370"><span class="linenos">370</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
+</span><span id="Expression-371"><a href="#Expression-371"><span class="linenos">371</span></a><span class="sd"> bfs: whether to search the AST using the BFS algorithm (DFS is used if false).</span>
+</span><span id="Expression-372"><a href="#Expression-372"><span class="linenos">372</span></a>
+</span><span id="Expression-373"><a href="#Expression-373"><span class="linenos">373</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression-374"><a href="#Expression-374"><span class="linenos">374</span></a><span class="sd"> The generator object.</span>
+</span><span id="Expression-375"><a href="#Expression-375"><span class="linenos">375</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-376"><a href="#Expression-376"><span class="linenos">376</span></a> <span class="k">for</span> <span class="n">expression</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">walk</span><span class="p">(</span><span class="n">bfs</span><span class="o">=</span><span class="n">bfs</span><span class="p">):</span>
+</span><span id="Expression-377"><a href="#Expression-377"><span class="linenos">377</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">expression_types</span><span class="p">):</span>
+</span><span id="Expression-378"><a href="#Expression-378"><span class="linenos">378</span></a> <span class="k">yield</span> <span class="n">expression</span>
+</span><span id="Expression-379"><a href="#Expression-379"><span class="linenos">379</span></a>
+</span><span id="Expression-380"><a href="#Expression-380"><span class="linenos">380</span></a> <span class="k">def</span> <span class="nf">find_ancestor</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">E</span><span class="p">]:</span>
+</span><span id="Expression-381"><a href="#Expression-381"><span class="linenos">381</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-382"><a href="#Expression-382"><span class="linenos">382</span></a><span class="sd"> Returns a nearest parent matching expression_types.</span>
+</span><span id="Expression-383"><a href="#Expression-383"><span class="linenos">383</span></a>
+</span><span id="Expression-384"><a href="#Expression-384"><span class="linenos">384</span></a><span class="sd"> Args:</span>
+</span><span id="Expression-385"><a href="#Expression-385"><span class="linenos">385</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
+</span><span id="Expression-386"><a href="#Expression-386"><span class="linenos">386</span></a>
+</span><span id="Expression-387"><a href="#Expression-387"><span class="linenos">387</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression-388"><a href="#Expression-388"><span class="linenos">388</span></a><span class="sd"> The parent node.</span>
+</span><span id="Expression-389"><a href="#Expression-389"><span class="linenos">389</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-390"><a href="#Expression-390"><span class="linenos">390</span></a> <span class="n">ancestor</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
+</span><span id="Expression-391"><a href="#Expression-391"><span class="linenos">391</span></a> <span class="k">while</span> <span class="n">ancestor</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">ancestor</span><span class="p">,</span> <span class="n">expression_types</span><span class="p">):</span>
+</span><span id="Expression-392"><a href="#Expression-392"><span class="linenos">392</span></a> <span class="n">ancestor</span> <span class="o">=</span> <span class="n">ancestor</span><span class="o">.</span><span class="n">parent</span>
+</span><span id="Expression-393"><a href="#Expression-393"><span class="linenos">393</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">E</span><span class="p">,</span> <span class="n">ancestor</span><span class="p">)</span>
+</span><span id="Expression-394"><a href="#Expression-394"><span class="linenos">394</span></a>
+</span><span id="Expression-395"><a href="#Expression-395"><span class="linenos">395</span></a> <span class="nd">@property</span>
+</span><span id="Expression-396"><a href="#Expression-396"><span class="linenos">396</span></a> <span class="k">def</span> <span class="nf">parent_select</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Select</span><span class="p">]:</span>
+</span><span id="Expression-397"><a href="#Expression-397"><span class="linenos">397</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-398"><a href="#Expression-398"><span class="linenos">398</span></a><span class="sd"> Returns the parent select statement.</span>
+</span><span id="Expression-399"><a href="#Expression-399"><span class="linenos">399</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-400"><a href="#Expression-400"><span class="linenos">400</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">find_ancestor</span><span class="p">(</span><span class="n">Select</span><span class="p">)</span>
+</span><span id="Expression-401"><a href="#Expression-401"><span class="linenos">401</span></a>
+</span><span id="Expression-402"><a href="#Expression-402"><span class="linenos">402</span></a> <span class="nd">@property</span>
+</span><span id="Expression-403"><a href="#Expression-403"><span class="linenos">403</span></a> <span class="k">def</span> <span class="nf">same_parent</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="Expression-404"><a href="#Expression-404"><span class="linenos">404</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Returns if the parent is the same class as itself.&quot;&quot;&quot;</span>
+</span><span id="Expression-405"><a href="#Expression-405"><span class="linenos">405</span></a> <span class="k">return</span> <span class="nb">type</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">)</span> <span class="ow">is</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span>
+</span><span id="Expression-406"><a href="#Expression-406"><span class="linenos">406</span></a>
+</span><span id="Expression-407"><a href="#Expression-407"><span class="linenos">407</span></a> <span class="k">def</span> <span class="nf">root</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="Expression-408"><a href="#Expression-408"><span class="linenos">408</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-409"><a href="#Expression-409"><span class="linenos">409</span></a><span class="sd"> Returns the root expression of this tree.</span>
+</span><span id="Expression-410"><a href="#Expression-410"><span class="linenos">410</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-411"><a href="#Expression-411"><span class="linenos">411</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
+</span><span id="Expression-412"><a href="#Expression-412"><span class="linenos">412</span></a> <span class="k">while</span> <span class="n">expression</span><span class="o">.</span><span class="n">parent</span><span class="p">:</span>
+</span><span id="Expression-413"><a href="#Expression-413"><span class="linenos">413</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">parent</span>
+</span><span id="Expression-414"><a href="#Expression-414"><span class="linenos">414</span></a> <span class="k">return</span> <span class="n">expression</span>
+</span><span id="Expression-415"><a href="#Expression-415"><span class="linenos">415</span></a>
+</span><span id="Expression-416"><a href="#Expression-416"><span class="linenos">416</span></a> <span class="k">def</span> <span class="nf">walk</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">prune</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+</span><span id="Expression-417"><a href="#Expression-417"><span class="linenos">417</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-418"><a href="#Expression-418"><span class="linenos">418</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree.</span>
</span><span id="Expression-419"><a href="#Expression-419"><span class="linenos">419</span></a>
-</span><span id="Expression-420"><a href="#Expression-420"><span class="linenos">420</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression-421"><a href="#Expression-421"><span class="linenos">421</span></a><span class="sd"> the generator object.</span>
-</span><span id="Expression-422"><a href="#Expression-422"><span class="linenos">422</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-423"><a href="#Expression-423"><span class="linenos">423</span></a> <span class="k">if</span> <span class="n">bfs</span><span class="p">:</span>
-</span><span id="Expression-424"><a href="#Expression-424"><span class="linenos">424</span></a> <span class="k">yield from</span> <span class="bp">self</span><span class="o">.</span><span class="n">bfs</span><span class="p">(</span><span class="n">prune</span><span class="o">=</span><span class="n">prune</span><span class="p">)</span>
-</span><span id="Expression-425"><a href="#Expression-425"><span class="linenos">425</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="Expression-426"><a href="#Expression-426"><span class="linenos">426</span></a> <span class="k">yield from</span> <span class="bp">self</span><span class="o">.</span><span class="n">dfs</span><span class="p">(</span><span class="n">prune</span><span class="o">=</span><span class="n">prune</span><span class="p">)</span>
-</span><span id="Expression-427"><a href="#Expression-427"><span class="linenos">427</span></a>
-</span><span id="Expression-428"><a href="#Expression-428"><span class="linenos">428</span></a> <span class="k">def</span> <span class="nf">dfs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">prune</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
-</span><span id="Expression-429"><a href="#Expression-429"><span class="linenos">429</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-430"><a href="#Expression-430"><span class="linenos">430</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree in</span>
-</span><span id="Expression-431"><a href="#Expression-431"><span class="linenos">431</span></a><span class="sd"> the DFS (Depth-first) order.</span>
-</span><span id="Expression-432"><a href="#Expression-432"><span class="linenos">432</span></a>
-</span><span id="Expression-433"><a href="#Expression-433"><span class="linenos">433</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression-434"><a href="#Expression-434"><span class="linenos">434</span></a><span class="sd"> The generator object.</span>
-</span><span id="Expression-435"><a href="#Expression-435"><span class="linenos">435</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-436"><a href="#Expression-436"><span class="linenos">436</span></a> <span class="n">parent</span> <span class="o">=</span> <span class="n">parent</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
-</span><span id="Expression-437"><a href="#Expression-437"><span class="linenos">437</span></a> <span class="k">yield</span> <span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span>
-</span><span id="Expression-438"><a href="#Expression-438"><span class="linenos">438</span></a> <span class="k">if</span> <span class="n">prune</span> <span class="ow">and</span> <span class="n">prune</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
-</span><span id="Expression-439"><a href="#Expression-439"><span class="linenos">439</span></a> <span class="k">return</span>
-</span><span id="Expression-440"><a href="#Expression-440"><span class="linenos">440</span></a>
-</span><span id="Expression-441"><a href="#Expression-441"><span class="linenos">441</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">iter_expressions</span><span class="p">():</span>
-</span><span id="Expression-442"><a href="#Expression-442"><span class="linenos">442</span></a> <span class="k">yield from</span> <span class="n">v</span><span class="o">.</span><span class="n">dfs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">k</span><span class="p">,</span> <span class="n">prune</span><span class="p">)</span>
-</span><span id="Expression-443"><a href="#Expression-443"><span class="linenos">443</span></a>
-</span><span id="Expression-444"><a href="#Expression-444"><span class="linenos">444</span></a> <span class="k">def</span> <span class="nf">bfs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">prune</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
-</span><span id="Expression-445"><a href="#Expression-445"><span class="linenos">445</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-446"><a href="#Expression-446"><span class="linenos">446</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree in</span>
-</span><span id="Expression-447"><a href="#Expression-447"><span class="linenos">447</span></a><span class="sd"> the BFS (Breadth-first) order.</span>
-</span><span id="Expression-448"><a href="#Expression-448"><span class="linenos">448</span></a>
-</span><span id="Expression-449"><a href="#Expression-449"><span class="linenos">449</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression-450"><a href="#Expression-450"><span class="linenos">450</span></a><span class="sd"> The generator object.</span>
-</span><span id="Expression-451"><a href="#Expression-451"><span class="linenos">451</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-452"><a href="#Expression-452"><span class="linenos">452</span></a> <span class="n">queue</span> <span class="o">=</span> <span class="n">deque</span><span class="p">([(</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="kc">None</span><span class="p">)])</span>
-</span><span id="Expression-453"><a href="#Expression-453"><span class="linenos">453</span></a>
-</span><span id="Expression-454"><a href="#Expression-454"><span class="linenos">454</span></a> <span class="k">while</span> <span class="n">queue</span><span class="p">:</span>
-</span><span id="Expression-455"><a href="#Expression-455"><span class="linenos">455</span></a> <span class="n">item</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span> <span class="o">=</span> <span class="n">queue</span><span class="o">.</span><span class="n">popleft</span><span class="p">()</span>
-</span><span id="Expression-456"><a href="#Expression-456"><span class="linenos">456</span></a>
-</span><span id="Expression-457"><a href="#Expression-457"><span class="linenos">457</span></a> <span class="k">yield</span> <span class="n">item</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span>
-</span><span id="Expression-458"><a href="#Expression-458"><span class="linenos">458</span></a> <span class="k">if</span> <span class="n">prune</span> <span class="ow">and</span> <span class="n">prune</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
-</span><span id="Expression-459"><a href="#Expression-459"><span class="linenos">459</span></a> <span class="k">continue</span>
-</span><span id="Expression-460"><a href="#Expression-460"><span class="linenos">460</span></a>
-</span><span id="Expression-461"><a href="#Expression-461"><span class="linenos">461</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">item</span><span class="o">.</span><span class="n">iter_expressions</span><span class="p">():</span>
-</span><span id="Expression-462"><a href="#Expression-462"><span class="linenos">462</span></a> <span class="n">queue</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">v</span><span class="p">,</span> <span class="n">item</span><span class="p">,</span> <span class="n">k</span><span class="p">))</span>
-</span><span id="Expression-463"><a href="#Expression-463"><span class="linenos">463</span></a>
-</span><span id="Expression-464"><a href="#Expression-464"><span class="linenos">464</span></a> <span class="k">def</span> <span class="nf">unnest</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Expression-465"><a href="#Expression-465"><span class="linenos">465</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-466"><a href="#Expression-466"><span class="linenos">466</span></a><span class="sd"> Returns the first non parenthesis child or self.</span>
-</span><span id="Expression-467"><a href="#Expression-467"><span class="linenos">467</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-468"><a href="#Expression-468"><span class="linenos">468</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
-</span><span id="Expression-469"><a href="#Expression-469"><span class="linenos">469</span></a> <span class="k">while</span> <span class="nb">type</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> <span class="ow">is</span> <span class="n">Paren</span><span class="p">:</span>
-</span><span id="Expression-470"><a href="#Expression-470"><span class="linenos">470</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span>
-</span><span id="Expression-471"><a href="#Expression-471"><span class="linenos">471</span></a> <span class="k">return</span> <span class="n">expression</span>
-</span><span id="Expression-472"><a href="#Expression-472"><span class="linenos">472</span></a>
-</span><span id="Expression-473"><a href="#Expression-473"><span class="linenos">473</span></a> <span class="k">def</span> <span class="nf">unalias</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Expression-474"><a href="#Expression-474"><span class="linenos">474</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-475"><a href="#Expression-475"><span class="linenos">475</span></a><span class="sd"> Returns the inner expression if this is an Alias.</span>
-</span><span id="Expression-476"><a href="#Expression-476"><span class="linenos">476</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-477"><a href="#Expression-477"><span class="linenos">477</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Alias</span><span class="p">):</span>
-</span><span id="Expression-478"><a href="#Expression-478"><span class="linenos">478</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span>
-</span><span id="Expression-479"><a href="#Expression-479"><span class="linenos">479</span></a> <span class="k">return</span> <span class="bp">self</span>
-</span><span id="Expression-480"><a href="#Expression-480"><span class="linenos">480</span></a>
-</span><span id="Expression-481"><a href="#Expression-481"><span class="linenos">481</span></a> <span class="k">def</span> <span class="nf">unnest_operands</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Expression-482"><a href="#Expression-482"><span class="linenos">482</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-483"><a href="#Expression-483"><span class="linenos">483</span></a><span class="sd"> Returns unnested operands as a tuple.</span>
-</span><span id="Expression-484"><a href="#Expression-484"><span class="linenos">484</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-485"><a href="#Expression-485"><span class="linenos">485</span></a> <span class="k">return</span> <span class="nb">tuple</span><span class="p">(</span><span class="n">arg</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span> <span class="k">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">arg</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">iter_expressions</span><span class="p">())</span>
+</span><span id="Expression-420"><a href="#Expression-420"><span class="linenos">420</span></a><span class="sd"> Args:</span>
+</span><span id="Expression-421"><a href="#Expression-421"><span class="linenos">421</span></a><span class="sd"> bfs (bool): if set to True the BFS traversal order will be applied,</span>
+</span><span id="Expression-422"><a href="#Expression-422"><span class="linenos">422</span></a><span class="sd"> otherwise the DFS traversal will be used instead.</span>
+</span><span id="Expression-423"><a href="#Expression-423"><span class="linenos">423</span></a><span class="sd"> prune ((node, parent, arg_key) -&gt; bool): callable that returns True if</span>
+</span><span id="Expression-424"><a href="#Expression-424"><span class="linenos">424</span></a><span class="sd"> the generator should stop traversing this branch of the tree.</span>
+</span><span id="Expression-425"><a href="#Expression-425"><span class="linenos">425</span></a>
+</span><span id="Expression-426"><a href="#Expression-426"><span class="linenos">426</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression-427"><a href="#Expression-427"><span class="linenos">427</span></a><span class="sd"> the generator object.</span>
+</span><span id="Expression-428"><a href="#Expression-428"><span class="linenos">428</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-429"><a href="#Expression-429"><span class="linenos">429</span></a> <span class="k">if</span> <span class="n">bfs</span><span class="p">:</span>
+</span><span id="Expression-430"><a href="#Expression-430"><span class="linenos">430</span></a> <span class="k">yield from</span> <span class="bp">self</span><span class="o">.</span><span class="n">bfs</span><span class="p">(</span><span class="n">prune</span><span class="o">=</span><span class="n">prune</span><span class="p">)</span>
+</span><span id="Expression-431"><a href="#Expression-431"><span class="linenos">431</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="Expression-432"><a href="#Expression-432"><span class="linenos">432</span></a> <span class="k">yield from</span> <span class="bp">self</span><span class="o">.</span><span class="n">dfs</span><span class="p">(</span><span class="n">prune</span><span class="o">=</span><span class="n">prune</span><span class="p">)</span>
+</span><span id="Expression-433"><a href="#Expression-433"><span class="linenos">433</span></a>
+</span><span id="Expression-434"><a href="#Expression-434"><span class="linenos">434</span></a> <span class="k">def</span> <span class="nf">dfs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">prune</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+</span><span id="Expression-435"><a href="#Expression-435"><span class="linenos">435</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-436"><a href="#Expression-436"><span class="linenos">436</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree in</span>
+</span><span id="Expression-437"><a href="#Expression-437"><span class="linenos">437</span></a><span class="sd"> the DFS (Depth-first) order.</span>
+</span><span id="Expression-438"><a href="#Expression-438"><span class="linenos">438</span></a>
+</span><span id="Expression-439"><a href="#Expression-439"><span class="linenos">439</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression-440"><a href="#Expression-440"><span class="linenos">440</span></a><span class="sd"> The generator object.</span>
+</span><span id="Expression-441"><a href="#Expression-441"><span class="linenos">441</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-442"><a href="#Expression-442"><span class="linenos">442</span></a> <span class="n">parent</span> <span class="o">=</span> <span class="n">parent</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
+</span><span id="Expression-443"><a href="#Expression-443"><span class="linenos">443</span></a> <span class="k">yield</span> <span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span>
+</span><span id="Expression-444"><a href="#Expression-444"><span class="linenos">444</span></a> <span class="k">if</span> <span class="n">prune</span> <span class="ow">and</span> <span class="n">prune</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
+</span><span id="Expression-445"><a href="#Expression-445"><span class="linenos">445</span></a> <span class="k">return</span>
+</span><span id="Expression-446"><a href="#Expression-446"><span class="linenos">446</span></a>
+</span><span id="Expression-447"><a href="#Expression-447"><span class="linenos">447</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">iter_expressions</span><span class="p">():</span>
+</span><span id="Expression-448"><a href="#Expression-448"><span class="linenos">448</span></a> <span class="k">yield from</span> <span class="n">v</span><span class="o">.</span><span class="n">dfs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">k</span><span class="p">,</span> <span class="n">prune</span><span class="p">)</span>
+</span><span id="Expression-449"><a href="#Expression-449"><span class="linenos">449</span></a>
+</span><span id="Expression-450"><a href="#Expression-450"><span class="linenos">450</span></a> <span class="k">def</span> <span class="nf">bfs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">prune</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+</span><span id="Expression-451"><a href="#Expression-451"><span class="linenos">451</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-452"><a href="#Expression-452"><span class="linenos">452</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree in</span>
+</span><span id="Expression-453"><a href="#Expression-453"><span class="linenos">453</span></a><span class="sd"> the BFS (Breadth-first) order.</span>
+</span><span id="Expression-454"><a href="#Expression-454"><span class="linenos">454</span></a>
+</span><span id="Expression-455"><a href="#Expression-455"><span class="linenos">455</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression-456"><a href="#Expression-456"><span class="linenos">456</span></a><span class="sd"> The generator object.</span>
+</span><span id="Expression-457"><a href="#Expression-457"><span class="linenos">457</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-458"><a href="#Expression-458"><span class="linenos">458</span></a> <span class="n">queue</span> <span class="o">=</span> <span class="n">deque</span><span class="p">([(</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="kc">None</span><span class="p">)])</span>
+</span><span id="Expression-459"><a href="#Expression-459"><span class="linenos">459</span></a>
+</span><span id="Expression-460"><a href="#Expression-460"><span class="linenos">460</span></a> <span class="k">while</span> <span class="n">queue</span><span class="p">:</span>
+</span><span id="Expression-461"><a href="#Expression-461"><span class="linenos">461</span></a> <span class="n">item</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span> <span class="o">=</span> <span class="n">queue</span><span class="o">.</span><span class="n">popleft</span><span class="p">()</span>
+</span><span id="Expression-462"><a href="#Expression-462"><span class="linenos">462</span></a>
+</span><span id="Expression-463"><a href="#Expression-463"><span class="linenos">463</span></a> <span class="k">yield</span> <span class="n">item</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span>
+</span><span id="Expression-464"><a href="#Expression-464"><span class="linenos">464</span></a> <span class="k">if</span> <span class="n">prune</span> <span class="ow">and</span> <span class="n">prune</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
+</span><span id="Expression-465"><a href="#Expression-465"><span class="linenos">465</span></a> <span class="k">continue</span>
+</span><span id="Expression-466"><a href="#Expression-466"><span class="linenos">466</span></a>
+</span><span id="Expression-467"><a href="#Expression-467"><span class="linenos">467</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">item</span><span class="o">.</span><span class="n">iter_expressions</span><span class="p">():</span>
+</span><span id="Expression-468"><a href="#Expression-468"><span class="linenos">468</span></a> <span class="n">queue</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">v</span><span class="p">,</span> <span class="n">item</span><span class="p">,</span> <span class="n">k</span><span class="p">))</span>
+</span><span id="Expression-469"><a href="#Expression-469"><span class="linenos">469</span></a>
+</span><span id="Expression-470"><a href="#Expression-470"><span class="linenos">470</span></a> <span class="k">def</span> <span class="nf">unnest</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="Expression-471"><a href="#Expression-471"><span class="linenos">471</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-472"><a href="#Expression-472"><span class="linenos">472</span></a><span class="sd"> Returns the first non parenthesis child or self.</span>
+</span><span id="Expression-473"><a href="#Expression-473"><span class="linenos">473</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-474"><a href="#Expression-474"><span class="linenos">474</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
+</span><span id="Expression-475"><a href="#Expression-475"><span class="linenos">475</span></a> <span class="k">while</span> <span class="nb">type</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> <span class="ow">is</span> <span class="n">Paren</span><span class="p">:</span>
+</span><span id="Expression-476"><a href="#Expression-476"><span class="linenos">476</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span>
+</span><span id="Expression-477"><a href="#Expression-477"><span class="linenos">477</span></a> <span class="k">return</span> <span class="n">expression</span>
+</span><span id="Expression-478"><a href="#Expression-478"><span class="linenos">478</span></a>
+</span><span id="Expression-479"><a href="#Expression-479"><span class="linenos">479</span></a> <span class="k">def</span> <span class="nf">unalias</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="Expression-480"><a href="#Expression-480"><span class="linenos">480</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-481"><a href="#Expression-481"><span class="linenos">481</span></a><span class="sd"> Returns the inner expression if this is an Alias.</span>
+</span><span id="Expression-482"><a href="#Expression-482"><span class="linenos">482</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-483"><a href="#Expression-483"><span class="linenos">483</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Alias</span><span class="p">):</span>
+</span><span id="Expression-484"><a href="#Expression-484"><span class="linenos">484</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span>
+</span><span id="Expression-485"><a href="#Expression-485"><span class="linenos">485</span></a> <span class="k">return</span> <span class="bp">self</span>
</span><span id="Expression-486"><a href="#Expression-486"><span class="linenos">486</span></a>
-</span><span id="Expression-487"><a href="#Expression-487"><span class="linenos">487</span></a> <span class="k">def</span> <span class="nf">flatten</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">unnest</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
+</span><span id="Expression-487"><a href="#Expression-487"><span class="linenos">487</span></a> <span class="k">def</span> <span class="nf">unnest_operands</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="Expression-488"><a href="#Expression-488"><span class="linenos">488</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-489"><a href="#Expression-489"><span class="linenos">489</span></a><span class="sd"> Returns a generator which yields child nodes whose parents are the same class.</span>
-</span><span id="Expression-490"><a href="#Expression-490"><span class="linenos">490</span></a>
-</span><span id="Expression-491"><a href="#Expression-491"><span class="linenos">491</span></a><span class="sd"> A AND B AND C -&gt; [A, B, C]</span>
-</span><span id="Expression-492"><a href="#Expression-492"><span class="linenos">492</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-493"><a href="#Expression-493"><span class="linenos">493</span></a> <span class="k">for</span> <span class="n">node</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">dfs</span><span class="p">(</span><span class="n">prune</span><span class="o">=</span><span class="k">lambda</span> <span class="n">n</span><span class="p">,</span> <span class="n">p</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span><span class="p">:</span> <span class="n">p</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">type</span><span class="p">(</span><span class="n">n</span><span class="p">)</span> <span class="ow">is</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">):</span>
-</span><span id="Expression-494"><a href="#Expression-494"><span class="linenos">494</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">type</span><span class="p">(</span><span class="n">node</span><span class="p">)</span> <span class="ow">is</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">:</span>
-</span><span id="Expression-495"><a href="#Expression-495"><span class="linenos">495</span></a> <span class="k">yield</span> <span class="n">node</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span> <span class="k">if</span> <span class="n">unnest</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">Subquery</span><span class="p">)</span> <span class="k">else</span> <span class="n">node</span>
+</span><span id="Expression-489"><a href="#Expression-489"><span class="linenos">489</span></a><span class="sd"> Returns unnested operands as a tuple.</span>
+</span><span id="Expression-490"><a href="#Expression-490"><span class="linenos">490</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-491"><a href="#Expression-491"><span class="linenos">491</span></a> <span class="k">return</span> <span class="nb">tuple</span><span class="p">(</span><span class="n">arg</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span> <span class="k">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">arg</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">iter_expressions</span><span class="p">())</span>
+</span><span id="Expression-492"><a href="#Expression-492"><span class="linenos">492</span></a>
+</span><span id="Expression-493"><a href="#Expression-493"><span class="linenos">493</span></a> <span class="k">def</span> <span class="nf">flatten</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">unnest</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
+</span><span id="Expression-494"><a href="#Expression-494"><span class="linenos">494</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-495"><a href="#Expression-495"><span class="linenos">495</span></a><span class="sd"> Returns a generator which yields child nodes whose parents are the same class.</span>
</span><span id="Expression-496"><a href="#Expression-496"><span class="linenos">496</span></a>
-</span><span id="Expression-497"><a href="#Expression-497"><span class="linenos">497</span></a> <span class="k">def</span> <span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Expression-498"><a href="#Expression-498"><span class="linenos">498</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
-</span><span id="Expression-499"><a href="#Expression-499"><span class="linenos">499</span></a>
-</span><span id="Expression-500"><a href="#Expression-500"><span class="linenos">500</span></a> <span class="k">def</span> <span class="fm">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Expression-501"><a href="#Expression-501"><span class="linenos">501</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_to_s</span><span class="p">()</span>
+</span><span id="Expression-497"><a href="#Expression-497"><span class="linenos">497</span></a><span class="sd"> A AND B AND C -&gt; [A, B, C]</span>
+</span><span id="Expression-498"><a href="#Expression-498"><span class="linenos">498</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-499"><a href="#Expression-499"><span class="linenos">499</span></a> <span class="k">for</span> <span class="n">node</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">dfs</span><span class="p">(</span><span class="n">prune</span><span class="o">=</span><span class="k">lambda</span> <span class="n">n</span><span class="p">,</span> <span class="n">p</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span><span class="p">:</span> <span class="n">p</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">type</span><span class="p">(</span><span class="n">n</span><span class="p">)</span> <span class="ow">is</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">):</span>
+</span><span id="Expression-500"><a href="#Expression-500"><span class="linenos">500</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">type</span><span class="p">(</span><span class="n">node</span><span class="p">)</span> <span class="ow">is</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">:</span>
+</span><span id="Expression-501"><a href="#Expression-501"><span class="linenos">501</span></a> <span class="k">yield</span> <span class="n">node</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span> <span class="k">if</span> <span class="n">unnest</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">Subquery</span><span class="p">)</span> <span class="k">else</span> <span class="n">node</span>
</span><span id="Expression-502"><a href="#Expression-502"><span class="linenos">502</span></a>
-</span><span id="Expression-503"><a href="#Expression-503"><span class="linenos">503</span></a> <span class="k">def</span> <span class="nf">sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Expression-504"><a href="#Expression-504"><span class="linenos">504</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-505"><a href="#Expression-505"><span class="linenos">505</span></a><span class="sd"> Returns SQL string representation of this tree.</span>
-</span><span id="Expression-506"><a href="#Expression-506"><span class="linenos">506</span></a>
-</span><span id="Expression-507"><a href="#Expression-507"><span class="linenos">507</span></a><span class="sd"> Args:</span>
-</span><span id="Expression-508"><a href="#Expression-508"><span class="linenos">508</span></a><span class="sd"> dialect: the dialect of the output SQL string (eg. &quot;spark&quot;, &quot;hive&quot;, &quot;presto&quot;, &quot;mysql&quot;).</span>
-</span><span id="Expression-509"><a href="#Expression-509"><span class="linenos">509</span></a><span class="sd"> opts: other `sqlglot.generator.Generator` options.</span>
-</span><span id="Expression-510"><a href="#Expression-510"><span class="linenos">510</span></a>
-</span><span id="Expression-511"><a href="#Expression-511"><span class="linenos">511</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression-512"><a href="#Expression-512"><span class="linenos">512</span></a><span class="sd"> The SQL string.</span>
+</span><span id="Expression-503"><a href="#Expression-503"><span class="linenos">503</span></a> <span class="k">def</span> <span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Expression-504"><a href="#Expression-504"><span class="linenos">504</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
+</span><span id="Expression-505"><a href="#Expression-505"><span class="linenos">505</span></a>
+</span><span id="Expression-506"><a href="#Expression-506"><span class="linenos">506</span></a> <span class="k">def</span> <span class="fm">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Expression-507"><a href="#Expression-507"><span class="linenos">507</span></a> <span class="k">return</span> <span class="n">_to_s</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
+</span><span id="Expression-508"><a href="#Expression-508"><span class="linenos">508</span></a>
+</span><span id="Expression-509"><a href="#Expression-509"><span class="linenos">509</span></a> <span class="k">def</span> <span class="nf">to_s</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Expression-510"><a href="#Expression-510"><span class="linenos">510</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-511"><a href="#Expression-511"><span class="linenos">511</span></a><span class="sd"> Same as __repr__, but includes additional information which can be useful</span>
+</span><span id="Expression-512"><a href="#Expression-512"><span class="linenos">512</span></a><span class="sd"> for debugging, like empty or missing args and the AST nodes&#39; object IDs.</span>
</span><span id="Expression-513"><a href="#Expression-513"><span class="linenos">513</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-514"><a href="#Expression-514"><span class="linenos">514</span></a> <span class="kn">from</span> <span class="nn">sqlglot.dialects</span> <span class="kn">import</span> <span class="n">Dialect</span>
+</span><span id="Expression-514"><a href="#Expression-514"><span class="linenos">514</span></a> <span class="k">return</span> <span class="n">_to_s</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">verbose</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</span><span id="Expression-515"><a href="#Expression-515"><span class="linenos">515</span></a>
-</span><span id="Expression-516"><a href="#Expression-516"><span class="linenos">516</span></a> <span class="k">return</span> <span class="n">Dialect</span><span class="o">.</span><span class="n">get_or_raise</span><span class="p">(</span><span class="n">dialect</span><span class="p">)</span><span class="o">.</span><span class="n">generate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="Expression-517"><a href="#Expression-517"><span class="linenos">517</span></a>
-</span><span id="Expression-518"><a href="#Expression-518"><span class="linenos">518</span></a> <span class="k">def</span> <span class="nf">_to_s</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">hide_missing</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">level</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">0</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Expression-519"><a href="#Expression-519"><span class="linenos">519</span></a> <span class="n">indent</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">level</span> <span class="k">else</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span>
-</span><span id="Expression-520"><a href="#Expression-520"><span class="linenos">520</span></a> <span class="n">indent</span> <span class="o">+=</span> <span class="s2">&quot;&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="s2">&quot; &quot;</span><span class="p">]</span> <span class="o">*</span> <span class="n">level</span><span class="p">)</span>
-</span><span id="Expression-521"><a href="#Expression-521"><span class="linenos">521</span></a> <span class="n">left</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;(</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">key</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span><span class="si">}</span><span class="s2"> &quot;</span>
-</span><span id="Expression-522"><a href="#Expression-522"><span class="linenos">522</span></a>
-</span><span id="Expression-523"><a href="#Expression-523"><span class="linenos">523</span></a> <span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Expression-524"><a href="#Expression-524"><span class="linenos">524</span></a> <span class="n">k</span><span class="p">:</span> <span class="s2">&quot;, &quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span>
-</span><span id="Expression-525"><a href="#Expression-525"><span class="linenos">525</span></a> <span class="n">v</span><span class="o">.</span><span class="n">_to_s</span><span class="p">(</span><span class="n">hide_missing</span><span class="o">=</span><span class="n">hide_missing</span><span class="p">,</span> <span class="n">level</span><span class="o">=</span><span class="n">level</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span>
-</span><span id="Expression-526"><a href="#Expression-526"><span class="linenos">526</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="s2">&quot;_to_s&quot;</span><span class="p">)</span>
-</span><span id="Expression-527"><a href="#Expression-527"><span class="linenos">527</span></a> <span class="k">else</span> <span class="nb">str</span><span class="p">(</span><span class="n">v</span><span class="p">)</span>
-</span><span id="Expression-528"><a href="#Expression-528"><span class="linenos">528</span></a> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">ensure_list</span><span class="p">(</span><span class="n">vs</span><span class="p">)</span>
-</span><span id="Expression-529"><a href="#Expression-529"><span class="linenos">529</span></a> <span class="k">if</span> <span class="n">v</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span>
-</span><span id="Expression-530"><a href="#Expression-530"><span class="linenos">530</span></a> <span class="p">)</span>
-</span><span id="Expression-531"><a href="#Expression-531"><span class="linenos">531</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">vs</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span>
-</span><span id="Expression-532"><a href="#Expression-532"><span class="linenos">532</span></a> <span class="p">}</span>
-</span><span id="Expression-533"><a href="#Expression-533"><span class="linenos">533</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">&quot;comments&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span>
-</span><span id="Expression-534"><a href="#Expression-534"><span class="linenos">534</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">&quot;type&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">type</span>
-</span><span id="Expression-535"><a href="#Expression-535"><span class="linenos">535</span></a> <span class="n">args</span> <span class="o">=</span> <span class="p">{</span><span class="n">k</span><span class="p">:</span> <span class="n">v</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> <span class="k">if</span> <span class="n">v</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">hide_missing</span><span class="p">}</span>
-</span><span id="Expression-536"><a href="#Expression-536"><span class="linenos">536</span></a>
-</span><span id="Expression-537"><a href="#Expression-537"><span class="linenos">537</span></a> <span class="n">right</span> <span class="o">=</span> <span class="s2">&quot;, &quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">k</span><span class="si">}</span><span class="s2">: </span><span class="si">{</span><span class="n">v</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">())</span>
-</span><span id="Expression-538"><a href="#Expression-538"><span class="linenos">538</span></a> <span class="n">right</span> <span class="o">+=</span> <span class="s2">&quot;)&quot;</span>
-</span><span id="Expression-539"><a href="#Expression-539"><span class="linenos">539</span></a>
-</span><span id="Expression-540"><a href="#Expression-540"><span class="linenos">540</span></a> <span class="k">return</span> <span class="n">indent</span> <span class="o">+</span> <span class="n">left</span> <span class="o">+</span> <span class="n">right</span>
-</span><span id="Expression-541"><a href="#Expression-541"><span class="linenos">541</span></a>
-</span><span id="Expression-542"><a href="#Expression-542"><span class="linenos">542</span></a> <span class="k">def</span> <span class="nf">transform</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fun</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
-</span><span id="Expression-543"><a href="#Expression-543"><span class="linenos">543</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-544"><a href="#Expression-544"><span class="linenos">544</span></a><span class="sd"> Recursively visits all tree nodes (excluding already transformed ones)</span>
-</span><span id="Expression-545"><a href="#Expression-545"><span class="linenos">545</span></a><span class="sd"> and applies the given transformation function to each node.</span>
-</span><span id="Expression-546"><a href="#Expression-546"><span class="linenos">546</span></a>
-</span><span id="Expression-547"><a href="#Expression-547"><span class="linenos">547</span></a><span class="sd"> Args:</span>
-</span><span id="Expression-548"><a href="#Expression-548"><span class="linenos">548</span></a><span class="sd"> fun (function): a function which takes a node as an argument and returns a</span>
-</span><span id="Expression-549"><a href="#Expression-549"><span class="linenos">549</span></a><span class="sd"> new transformed node or the same node without modifications. If the function</span>
-</span><span id="Expression-550"><a href="#Expression-550"><span class="linenos">550</span></a><span class="sd"> returns None, then the corresponding node will be removed from the syntax tree.</span>
-</span><span id="Expression-551"><a href="#Expression-551"><span class="linenos">551</span></a><span class="sd"> copy (bool): if set to True a new tree instance is constructed, otherwise the tree is</span>
-</span><span id="Expression-552"><a href="#Expression-552"><span class="linenos">552</span></a><span class="sd"> modified in place.</span>
-</span><span id="Expression-553"><a href="#Expression-553"><span class="linenos">553</span></a>
-</span><span id="Expression-554"><a href="#Expression-554"><span class="linenos">554</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression-555"><a href="#Expression-555"><span class="linenos">555</span></a><span class="sd"> The transformed tree.</span>
-</span><span id="Expression-556"><a href="#Expression-556"><span class="linenos">556</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-557"><a href="#Expression-557"><span class="linenos">557</span></a> <span class="n">node</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">copy</span> <span class="k">else</span> <span class="bp">self</span>
-</span><span id="Expression-558"><a href="#Expression-558"><span class="linenos">558</span></a> <span class="n">new_node</span> <span class="o">=</span> <span class="n">fun</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
-</span><span id="Expression-559"><a href="#Expression-559"><span class="linenos">559</span></a>
-</span><span id="Expression-560"><a href="#Expression-560"><span class="linenos">560</span></a> <span class="k">if</span> <span class="n">new_node</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">new_node</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
-</span><span id="Expression-561"><a href="#Expression-561"><span class="linenos">561</span></a> <span class="k">return</span> <span class="n">new_node</span>
-</span><span id="Expression-562"><a href="#Expression-562"><span class="linenos">562</span></a> <span class="k">if</span> <span class="n">new_node</span> <span class="ow">is</span> <span class="ow">not</span> <span class="n">node</span><span class="p">:</span>
-</span><span id="Expression-563"><a href="#Expression-563"><span class="linenos">563</span></a> <span class="n">new_node</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">node</span><span class="o">.</span><span class="n">parent</span>
-</span><span id="Expression-564"><a href="#Expression-564"><span class="linenos">564</span></a> <span class="k">return</span> <span class="n">new_node</span>
+</span><span id="Expression-516"><a href="#Expression-516"><span class="linenos">516</span></a> <span class="k">def</span> <span class="nf">sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Expression-517"><a href="#Expression-517"><span class="linenos">517</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-518"><a href="#Expression-518"><span class="linenos">518</span></a><span class="sd"> Returns SQL string representation of this tree.</span>
+</span><span id="Expression-519"><a href="#Expression-519"><span class="linenos">519</span></a>
+</span><span id="Expression-520"><a href="#Expression-520"><span class="linenos">520</span></a><span class="sd"> Args:</span>
+</span><span id="Expression-521"><a href="#Expression-521"><span class="linenos">521</span></a><span class="sd"> dialect: the dialect of the output SQL string (eg. &quot;spark&quot;, &quot;hive&quot;, &quot;presto&quot;, &quot;mysql&quot;).</span>
+</span><span id="Expression-522"><a href="#Expression-522"><span class="linenos">522</span></a><span class="sd"> opts: other `sqlglot.generator.Generator` options.</span>
+</span><span id="Expression-523"><a href="#Expression-523"><span class="linenos">523</span></a>
+</span><span id="Expression-524"><a href="#Expression-524"><span class="linenos">524</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression-525"><a href="#Expression-525"><span class="linenos">525</span></a><span class="sd"> The SQL string.</span>
+</span><span id="Expression-526"><a href="#Expression-526"><span class="linenos">526</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-527"><a href="#Expression-527"><span class="linenos">527</span></a> <span class="kn">from</span> <span class="nn">sqlglot.dialects</span> <span class="kn">import</span> <span class="n">Dialect</span>
+</span><span id="Expression-528"><a href="#Expression-528"><span class="linenos">528</span></a>
+</span><span id="Expression-529"><a href="#Expression-529"><span class="linenos">529</span></a> <span class="k">return</span> <span class="n">Dialect</span><span class="o">.</span><span class="n">get_or_raise</span><span class="p">(</span><span class="n">dialect</span><span class="p">)</span><span class="o">.</span><span class="n">generate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="Expression-530"><a href="#Expression-530"><span class="linenos">530</span></a>
+</span><span id="Expression-531"><a href="#Expression-531"><span class="linenos">531</span></a> <span class="k">def</span> <span class="nf">transform</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fun</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
+</span><span id="Expression-532"><a href="#Expression-532"><span class="linenos">532</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-533"><a href="#Expression-533"><span class="linenos">533</span></a><span class="sd"> Recursively visits all tree nodes (excluding already transformed ones)</span>
+</span><span id="Expression-534"><a href="#Expression-534"><span class="linenos">534</span></a><span class="sd"> and applies the given transformation function to each node.</span>
+</span><span id="Expression-535"><a href="#Expression-535"><span class="linenos">535</span></a>
+</span><span id="Expression-536"><a href="#Expression-536"><span class="linenos">536</span></a><span class="sd"> Args:</span>
+</span><span id="Expression-537"><a href="#Expression-537"><span class="linenos">537</span></a><span class="sd"> fun (function): a function which takes a node as an argument and returns a</span>
+</span><span id="Expression-538"><a href="#Expression-538"><span class="linenos">538</span></a><span class="sd"> new transformed node or the same node without modifications. If the function</span>
+</span><span id="Expression-539"><a href="#Expression-539"><span class="linenos">539</span></a><span class="sd"> returns None, then the corresponding node will be removed from the syntax tree.</span>
+</span><span id="Expression-540"><a href="#Expression-540"><span class="linenos">540</span></a><span class="sd"> copy (bool): if set to True a new tree instance is constructed, otherwise the tree is</span>
+</span><span id="Expression-541"><a href="#Expression-541"><span class="linenos">541</span></a><span class="sd"> modified in place.</span>
+</span><span id="Expression-542"><a href="#Expression-542"><span class="linenos">542</span></a>
+</span><span id="Expression-543"><a href="#Expression-543"><span class="linenos">543</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression-544"><a href="#Expression-544"><span class="linenos">544</span></a><span class="sd"> The transformed tree.</span>
+</span><span id="Expression-545"><a href="#Expression-545"><span class="linenos">545</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-546"><a href="#Expression-546"><span class="linenos">546</span></a> <span class="n">node</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">copy</span> <span class="k">else</span> <span class="bp">self</span>
+</span><span id="Expression-547"><a href="#Expression-547"><span class="linenos">547</span></a> <span class="n">new_node</span> <span class="o">=</span> <span class="n">fun</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+</span><span id="Expression-548"><a href="#Expression-548"><span class="linenos">548</span></a>
+</span><span id="Expression-549"><a href="#Expression-549"><span class="linenos">549</span></a> <span class="k">if</span> <span class="n">new_node</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">new_node</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
+</span><span id="Expression-550"><a href="#Expression-550"><span class="linenos">550</span></a> <span class="k">return</span> <span class="n">new_node</span>
+</span><span id="Expression-551"><a href="#Expression-551"><span class="linenos">551</span></a> <span class="k">if</span> <span class="n">new_node</span> <span class="ow">is</span> <span class="ow">not</span> <span class="n">node</span><span class="p">:</span>
+</span><span id="Expression-552"><a href="#Expression-552"><span class="linenos">552</span></a> <span class="n">new_node</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">node</span><span class="o">.</span><span class="n">parent</span>
+</span><span id="Expression-553"><a href="#Expression-553"><span class="linenos">553</span></a> <span class="k">return</span> <span class="n">new_node</span>
+</span><span id="Expression-554"><a href="#Expression-554"><span class="linenos">554</span></a>
+</span><span id="Expression-555"><a href="#Expression-555"><span class="linenos">555</span></a> <span class="n">replace_children</span><span class="p">(</span><span class="n">new_node</span><span class="p">,</span> <span class="k">lambda</span> <span class="n">child</span><span class="p">:</span> <span class="n">child</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">fun</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">))</span>
+</span><span id="Expression-556"><a href="#Expression-556"><span class="linenos">556</span></a> <span class="k">return</span> <span class="n">new_node</span>
+</span><span id="Expression-557"><a href="#Expression-557"><span class="linenos">557</span></a>
+</span><span id="Expression-558"><a href="#Expression-558"><span class="linenos">558</span></a> <span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="Expression-559"><a href="#Expression-559"><span class="linenos">559</span></a> <span class="k">def</span> <span class="nf">replace</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">E</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
+</span><span id="Expression-560"><a href="#Expression-560"><span class="linenos">560</span></a> <span class="o">...</span>
+</span><span id="Expression-561"><a href="#Expression-561"><span class="linenos">561</span></a>
+</span><span id="Expression-562"><a href="#Expression-562"><span class="linenos">562</span></a> <span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="Expression-563"><a href="#Expression-563"><span class="linenos">563</span></a> <span class="k">def</span> <span class="nf">replace</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="Expression-564"><a href="#Expression-564"><span class="linenos">564</span></a> <span class="o">...</span>
</span><span id="Expression-565"><a href="#Expression-565"><span class="linenos">565</span></a>
-</span><span id="Expression-566"><a href="#Expression-566"><span class="linenos">566</span></a> <span class="n">replace_children</span><span class="p">(</span><span class="n">new_node</span><span class="p">,</span> <span class="k">lambda</span> <span class="n">child</span><span class="p">:</span> <span class="n">child</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">fun</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">))</span>
-</span><span id="Expression-567"><a href="#Expression-567"><span class="linenos">567</span></a> <span class="k">return</span> <span class="n">new_node</span>
-</span><span id="Expression-568"><a href="#Expression-568"><span class="linenos">568</span></a>
-</span><span id="Expression-569"><a href="#Expression-569"><span class="linenos">569</span></a> <span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
-</span><span id="Expression-570"><a href="#Expression-570"><span class="linenos">570</span></a> <span class="k">def</span> <span class="nf">replace</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">E</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
-</span><span id="Expression-571"><a href="#Expression-571"><span class="linenos">571</span></a> <span class="o">...</span>
-</span><span id="Expression-572"><a href="#Expression-572"><span class="linenos">572</span></a>
-</span><span id="Expression-573"><a href="#Expression-573"><span class="linenos">573</span></a> <span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
-</span><span id="Expression-574"><a href="#Expression-574"><span class="linenos">574</span></a> <span class="k">def</span> <span class="nf">replace</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="Expression-575"><a href="#Expression-575"><span class="linenos">575</span></a> <span class="o">...</span>
-</span><span id="Expression-576"><a href="#Expression-576"><span class="linenos">576</span></a>
-</span><span id="Expression-577"><a href="#Expression-577"><span class="linenos">577</span></a> <span class="k">def</span> <span class="nf">replace</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">):</span>
-</span><span id="Expression-578"><a href="#Expression-578"><span class="linenos">578</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-579"><a href="#Expression-579"><span class="linenos">579</span></a><span class="sd"> Swap out this expression with a new expression.</span>
-</span><span id="Expression-580"><a href="#Expression-580"><span class="linenos">580</span></a>
-</span><span id="Expression-581"><a href="#Expression-581"><span class="linenos">581</span></a><span class="sd"> For example::</span>
-</span><span id="Expression-582"><a href="#Expression-582"><span class="linenos">582</span></a>
-</span><span id="Expression-583"><a href="#Expression-583"><span class="linenos">583</span></a><span class="sd"> &gt;&gt;&gt; tree = Select().select(&quot;x&quot;).from_(&quot;tbl&quot;)</span>
-</span><span id="Expression-584"><a href="#Expression-584"><span class="linenos">584</span></a><span class="sd"> &gt;&gt;&gt; tree.find(Column).replace(Column(this=&quot;y&quot;))</span>
-</span><span id="Expression-585"><a href="#Expression-585"><span class="linenos">585</span></a><span class="sd"> (COLUMN this: y)</span>
-</span><span id="Expression-586"><a href="#Expression-586"><span class="linenos">586</span></a><span class="sd"> &gt;&gt;&gt; tree.sql()</span>
-</span><span id="Expression-587"><a href="#Expression-587"><span class="linenos">587</span></a><span class="sd"> &#39;SELECT y FROM tbl&#39;</span>
-</span><span id="Expression-588"><a href="#Expression-588"><span class="linenos">588</span></a>
-</span><span id="Expression-589"><a href="#Expression-589"><span class="linenos">589</span></a><span class="sd"> Args:</span>
-</span><span id="Expression-590"><a href="#Expression-590"><span class="linenos">590</span></a><span class="sd"> expression: new node</span>
-</span><span id="Expression-591"><a href="#Expression-591"><span class="linenos">591</span></a>
-</span><span id="Expression-592"><a href="#Expression-592"><span class="linenos">592</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression-593"><a href="#Expression-593"><span class="linenos">593</span></a><span class="sd"> The new expression or expressions.</span>
-</span><span id="Expression-594"><a href="#Expression-594"><span class="linenos">594</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-595"><a href="#Expression-595"><span class="linenos">595</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">:</span>
-</span><span id="Expression-596"><a href="#Expression-596"><span class="linenos">596</span></a> <span class="k">return</span> <span class="n">expression</span>
+</span><span id="Expression-566"><a href="#Expression-566"><span class="linenos">566</span></a> <span class="k">def</span> <span class="nf">replace</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">):</span>
+</span><span id="Expression-567"><a href="#Expression-567"><span class="linenos">567</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-568"><a href="#Expression-568"><span class="linenos">568</span></a><span class="sd"> Swap out this expression with a new expression.</span>
+</span><span id="Expression-569"><a href="#Expression-569"><span class="linenos">569</span></a>
+</span><span id="Expression-570"><a href="#Expression-570"><span class="linenos">570</span></a><span class="sd"> For example::</span>
+</span><span id="Expression-571"><a href="#Expression-571"><span class="linenos">571</span></a>
+</span><span id="Expression-572"><a href="#Expression-572"><span class="linenos">572</span></a><span class="sd"> &gt;&gt;&gt; tree = Select().select(&quot;x&quot;).from_(&quot;tbl&quot;)</span>
+</span><span id="Expression-573"><a href="#Expression-573"><span class="linenos">573</span></a><span class="sd"> &gt;&gt;&gt; tree.find(Column).replace(column(&quot;y&quot;))</span>
+</span><span id="Expression-574"><a href="#Expression-574"><span class="linenos">574</span></a><span class="sd"> Column(</span>
+</span><span id="Expression-575"><a href="#Expression-575"><span class="linenos">575</span></a><span class="sd"> this=Identifier(this=y, quoted=False))</span>
+</span><span id="Expression-576"><a href="#Expression-576"><span class="linenos">576</span></a><span class="sd"> &gt;&gt;&gt; tree.sql()</span>
+</span><span id="Expression-577"><a href="#Expression-577"><span class="linenos">577</span></a><span class="sd"> &#39;SELECT y FROM tbl&#39;</span>
+</span><span id="Expression-578"><a href="#Expression-578"><span class="linenos">578</span></a>
+</span><span id="Expression-579"><a href="#Expression-579"><span class="linenos">579</span></a><span class="sd"> Args:</span>
+</span><span id="Expression-580"><a href="#Expression-580"><span class="linenos">580</span></a><span class="sd"> expression: new node</span>
+</span><span id="Expression-581"><a href="#Expression-581"><span class="linenos">581</span></a>
+</span><span id="Expression-582"><a href="#Expression-582"><span class="linenos">582</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression-583"><a href="#Expression-583"><span class="linenos">583</span></a><span class="sd"> The new expression or expressions.</span>
+</span><span id="Expression-584"><a href="#Expression-584"><span class="linenos">584</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-585"><a href="#Expression-585"><span class="linenos">585</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">:</span>
+</span><span id="Expression-586"><a href="#Expression-586"><span class="linenos">586</span></a> <span class="k">return</span> <span class="n">expression</span>
+</span><span id="Expression-587"><a href="#Expression-587"><span class="linenos">587</span></a>
+</span><span id="Expression-588"><a href="#Expression-588"><span class="linenos">588</span></a> <span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
+</span><span id="Expression-589"><a href="#Expression-589"><span class="linenos">589</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="kc">None</span>
+</span><span id="Expression-590"><a href="#Expression-590"><span class="linenos">590</span></a>
+</span><span id="Expression-591"><a href="#Expression-591"><span class="linenos">591</span></a> <span class="n">replace_children</span><span class="p">(</span><span class="n">parent</span><span class="p">,</span> <span class="k">lambda</span> <span class="n">child</span><span class="p">:</span> <span class="n">expression</span> <span class="k">if</span> <span class="n">child</span> <span class="ow">is</span> <span class="bp">self</span> <span class="k">else</span> <span class="n">child</span><span class="p">)</span>
+</span><span id="Expression-592"><a href="#Expression-592"><span class="linenos">592</span></a> <span class="k">return</span> <span class="n">expression</span>
+</span><span id="Expression-593"><a href="#Expression-593"><span class="linenos">593</span></a>
+</span><span id="Expression-594"><a href="#Expression-594"><span class="linenos">594</span></a> <span class="k">def</span> <span class="nf">pop</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">E</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
+</span><span id="Expression-595"><a href="#Expression-595"><span class="linenos">595</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-596"><a href="#Expression-596"><span class="linenos">596</span></a><span class="sd"> Remove this expression from its AST.</span>
</span><span id="Expression-597"><a href="#Expression-597"><span class="linenos">597</span></a>
-</span><span id="Expression-598"><a href="#Expression-598"><span class="linenos">598</span></a> <span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
-</span><span id="Expression-599"><a href="#Expression-599"><span class="linenos">599</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="kc">None</span>
-</span><span id="Expression-600"><a href="#Expression-600"><span class="linenos">600</span></a>
-</span><span id="Expression-601"><a href="#Expression-601"><span class="linenos">601</span></a> <span class="n">replace_children</span><span class="p">(</span><span class="n">parent</span><span class="p">,</span> <span class="k">lambda</span> <span class="n">child</span><span class="p">:</span> <span class="n">expression</span> <span class="k">if</span> <span class="n">child</span> <span class="ow">is</span> <span class="bp">self</span> <span class="k">else</span> <span class="n">child</span><span class="p">)</span>
-</span><span id="Expression-602"><a href="#Expression-602"><span class="linenos">602</span></a> <span class="k">return</span> <span class="n">expression</span>
+</span><span id="Expression-598"><a href="#Expression-598"><span class="linenos">598</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression-599"><a href="#Expression-599"><span class="linenos">599</span></a><span class="sd"> The popped expression.</span>
+</span><span id="Expression-600"><a href="#Expression-600"><span class="linenos">600</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-601"><a href="#Expression-601"><span class="linenos">601</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="kc">None</span><span class="p">)</span>
+</span><span id="Expression-602"><a href="#Expression-602"><span class="linenos">602</span></a> <span class="k">return</span> <span class="bp">self</span>
</span><span id="Expression-603"><a href="#Expression-603"><span class="linenos">603</span></a>
-</span><span id="Expression-604"><a href="#Expression-604"><span class="linenos">604</span></a> <span class="k">def</span> <span class="nf">pop</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">E</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
+</span><span id="Expression-604"><a href="#Expression-604"><span class="linenos">604</span></a> <span class="k">def</span> <span class="nf">assert_is</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type_</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
</span><span id="Expression-605"><a href="#Expression-605"><span class="linenos">605</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-606"><a href="#Expression-606"><span class="linenos">606</span></a><span class="sd"> Remove this expression from its AST.</span>
+</span><span id="Expression-606"><a href="#Expression-606"><span class="linenos">606</span></a><span class="sd"> Assert that this `Expression` is an instance of `type_`.</span>
</span><span id="Expression-607"><a href="#Expression-607"><span class="linenos">607</span></a>
-</span><span id="Expression-608"><a href="#Expression-608"><span class="linenos">608</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression-609"><a href="#Expression-609"><span class="linenos">609</span></a><span class="sd"> The popped expression.</span>
-</span><span id="Expression-610"><a href="#Expression-610"><span class="linenos">610</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-611"><a href="#Expression-611"><span class="linenos">611</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="kc">None</span><span class="p">)</span>
-</span><span id="Expression-612"><a href="#Expression-612"><span class="linenos">612</span></a> <span class="k">return</span> <span class="bp">self</span>
+</span><span id="Expression-608"><a href="#Expression-608"><span class="linenos">608</span></a><span class="sd"> If it is NOT an instance of `type_`, this raises an assertion error.</span>
+</span><span id="Expression-609"><a href="#Expression-609"><span class="linenos">609</span></a><span class="sd"> Otherwise, this returns this expression.</span>
+</span><span id="Expression-610"><a href="#Expression-610"><span class="linenos">610</span></a>
+</span><span id="Expression-611"><a href="#Expression-611"><span class="linenos">611</span></a><span class="sd"> Examples:</span>
+</span><span id="Expression-612"><a href="#Expression-612"><span class="linenos">612</span></a><span class="sd"> This is useful for type security in chained expressions:</span>
</span><span id="Expression-613"><a href="#Expression-613"><span class="linenos">613</span></a>
-</span><span id="Expression-614"><a href="#Expression-614"><span class="linenos">614</span></a> <span class="k">def</span> <span class="nf">assert_is</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type_</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
-</span><span id="Expression-615"><a href="#Expression-615"><span class="linenos">615</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-616"><a href="#Expression-616"><span class="linenos">616</span></a><span class="sd"> Assert that this `Expression` is an instance of `type_`.</span>
-</span><span id="Expression-617"><a href="#Expression-617"><span class="linenos">617</span></a>
-</span><span id="Expression-618"><a href="#Expression-618"><span class="linenos">618</span></a><span class="sd"> If it is NOT an instance of `type_`, this raises an assertion error.</span>
-</span><span id="Expression-619"><a href="#Expression-619"><span class="linenos">619</span></a><span class="sd"> Otherwise, this returns this expression.</span>
+</span><span id="Expression-614"><a href="#Expression-614"><span class="linenos">614</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="Expression-615"><a href="#Expression-615"><span class="linenos">615</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;SELECT x from y&quot;).assert_is(Select).select(&quot;z&quot;).sql()</span>
+</span><span id="Expression-616"><a href="#Expression-616"><span class="linenos">616</span></a><span class="sd"> &#39;SELECT x, z FROM y&#39;</span>
+</span><span id="Expression-617"><a href="#Expression-617"><span class="linenos">617</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-618"><a href="#Expression-618"><span class="linenos">618</span></a> <span class="k">assert</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type_</span><span class="p">)</span>
+</span><span id="Expression-619"><a href="#Expression-619"><span class="linenos">619</span></a> <span class="k">return</span> <span class="bp">self</span>
</span><span id="Expression-620"><a href="#Expression-620"><span class="linenos">620</span></a>
-</span><span id="Expression-621"><a href="#Expression-621"><span class="linenos">621</span></a><span class="sd"> Examples:</span>
-</span><span id="Expression-622"><a href="#Expression-622"><span class="linenos">622</span></a><span class="sd"> This is useful for type security in chained expressions:</span>
-</span><span id="Expression-623"><a href="#Expression-623"><span class="linenos">623</span></a>
-</span><span id="Expression-624"><a href="#Expression-624"><span class="linenos">624</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="Expression-625"><a href="#Expression-625"><span class="linenos">625</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;SELECT x from y&quot;).assert_is(Select).select(&quot;z&quot;).sql()</span>
-</span><span id="Expression-626"><a href="#Expression-626"><span class="linenos">626</span></a><span class="sd"> &#39;SELECT x, z FROM y&#39;</span>
-</span><span id="Expression-627"><a href="#Expression-627"><span class="linenos">627</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-628"><a href="#Expression-628"><span class="linenos">628</span></a> <span class="k">assert</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type_</span><span class="p">)</span>
-</span><span id="Expression-629"><a href="#Expression-629"><span class="linenos">629</span></a> <span class="k">return</span> <span class="bp">self</span>
-</span><span id="Expression-630"><a href="#Expression-630"><span class="linenos">630</span></a>
-</span><span id="Expression-631"><a href="#Expression-631"><span class="linenos">631</span></a> <span class="k">def</span> <span class="nf">error_messages</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
-</span><span id="Expression-632"><a href="#Expression-632"><span class="linenos">632</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-633"><a href="#Expression-633"><span class="linenos">633</span></a><span class="sd"> Checks if this expression is valid (e.g. all mandatory args are set).</span>
-</span><span id="Expression-634"><a href="#Expression-634"><span class="linenos">634</span></a>
-</span><span id="Expression-635"><a href="#Expression-635"><span class="linenos">635</span></a><span class="sd"> Args:</span>
-</span><span id="Expression-636"><a href="#Expression-636"><span class="linenos">636</span></a><span class="sd"> args: a sequence of values that were used to instantiate a Func expression. This is used</span>
-</span><span id="Expression-637"><a href="#Expression-637"><span class="linenos">637</span></a><span class="sd"> to check that the provided arguments don&#39;t exceed the function argument limit.</span>
-</span><span id="Expression-638"><a href="#Expression-638"><span class="linenos">638</span></a>
-</span><span id="Expression-639"><a href="#Expression-639"><span class="linenos">639</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression-640"><a href="#Expression-640"><span class="linenos">640</span></a><span class="sd"> A list of error messages for all possible errors that were found.</span>
-</span><span id="Expression-641"><a href="#Expression-641"><span class="linenos">641</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-642"><a href="#Expression-642"><span class="linenos">642</span></a> <span class="n">errors</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
-</span><span id="Expression-643"><a href="#Expression-643"><span class="linenos">643</span></a>
-</span><span id="Expression-644"><a href="#Expression-644"><span class="linenos">644</span></a> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">:</span>
-</span><span id="Expression-645"><a href="#Expression-645"><span class="linenos">645</span></a> <span class="k">if</span> <span class="n">k</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">:</span>
-</span><span id="Expression-646"><a href="#Expression-646"><span class="linenos">646</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Unexpected keyword: &#39;</span><span class="si">{</span><span class="n">k</span><span class="si">}</span><span class="s2">&#39; for </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
-</span><span id="Expression-647"><a href="#Expression-647"><span class="linenos">647</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">mandatory</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
-</span><span id="Expression-648"><a href="#Expression-648"><span class="linenos">648</span></a> <span class="n">v</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">k</span><span class="p">)</span>
-</span><span id="Expression-649"><a href="#Expression-649"><span class="linenos">649</span></a> <span class="k">if</span> <span class="n">mandatory</span> <span class="ow">and</span> <span class="p">(</span><span class="n">v</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="nb">list</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">v</span><span class="p">)):</span>
-</span><span id="Expression-650"><a href="#Expression-650"><span class="linenos">650</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Required keyword: &#39;</span><span class="si">{</span><span class="n">k</span><span class="si">}</span><span class="s2">&#39; missing for </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
-</span><span id="Expression-651"><a href="#Expression-651"><span class="linenos">651</span></a>
-</span><span id="Expression-652"><a href="#Expression-652"><span class="linenos">652</span></a> <span class="k">if</span> <span class="p">(</span>
-</span><span id="Expression-653"><a href="#Expression-653"><span class="linenos">653</span></a> <span class="n">args</span>
-</span><span id="Expression-654"><a href="#Expression-654"><span class="linenos">654</span></a> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Func</span><span class="p">)</span>
-</span><span id="Expression-655"><a href="#Expression-655"><span class="linenos">655</span></a> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="o">&gt;</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span>
-</span><span id="Expression-656"><a href="#Expression-656"><span class="linenos">656</span></a> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_var_len_args</span>
-</span><span id="Expression-657"><a href="#Expression-657"><span class="linenos">657</span></a> <span class="p">):</span>
-</span><span id="Expression-658"><a href="#Expression-658"><span class="linenos">658</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
-</span><span id="Expression-659"><a href="#Expression-659"><span class="linenos">659</span></a> <span class="sa">f</span><span class="s2">&quot;The number of provided arguments (</span><span class="si">{</span><span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span><span class="si">}</span><span class="s2">) is greater than &quot;</span>
-</span><span id="Expression-660"><a href="#Expression-660"><span class="linenos">660</span></a> <span class="sa">f</span><span class="s2">&quot;the maximum number of supported arguments (</span><span class="si">{</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span><span class="si">}</span><span class="s2">)&quot;</span>
-</span><span id="Expression-661"><a href="#Expression-661"><span class="linenos">661</span></a> <span class="p">)</span>
+</span><span id="Expression-621"><a href="#Expression-621"><span class="linenos">621</span></a> <span class="k">def</span> <span class="nf">error_messages</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
+</span><span id="Expression-622"><a href="#Expression-622"><span class="linenos">622</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-623"><a href="#Expression-623"><span class="linenos">623</span></a><span class="sd"> Checks if this expression is valid (e.g. all mandatory args are set).</span>
+</span><span id="Expression-624"><a href="#Expression-624"><span class="linenos">624</span></a>
+</span><span id="Expression-625"><a href="#Expression-625"><span class="linenos">625</span></a><span class="sd"> Args:</span>
+</span><span id="Expression-626"><a href="#Expression-626"><span class="linenos">626</span></a><span class="sd"> args: a sequence of values that were used to instantiate a Func expression. This is used</span>
+</span><span id="Expression-627"><a href="#Expression-627"><span class="linenos">627</span></a><span class="sd"> to check that the provided arguments don&#39;t exceed the function argument limit.</span>
+</span><span id="Expression-628"><a href="#Expression-628"><span class="linenos">628</span></a>
+</span><span id="Expression-629"><a href="#Expression-629"><span class="linenos">629</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression-630"><a href="#Expression-630"><span class="linenos">630</span></a><span class="sd"> A list of error messages for all possible errors that were found.</span>
+</span><span id="Expression-631"><a href="#Expression-631"><span class="linenos">631</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-632"><a href="#Expression-632"><span class="linenos">632</span></a> <span class="n">errors</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="Expression-633"><a href="#Expression-633"><span class="linenos">633</span></a>
+</span><span id="Expression-634"><a href="#Expression-634"><span class="linenos">634</span></a> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">:</span>
+</span><span id="Expression-635"><a href="#Expression-635"><span class="linenos">635</span></a> <span class="k">if</span> <span class="n">k</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">:</span>
+</span><span id="Expression-636"><a href="#Expression-636"><span class="linenos">636</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Unexpected keyword: &#39;</span><span class="si">{</span><span class="n">k</span><span class="si">}</span><span class="s2">&#39; for </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
+</span><span id="Expression-637"><a href="#Expression-637"><span class="linenos">637</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">mandatory</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+</span><span id="Expression-638"><a href="#Expression-638"><span class="linenos">638</span></a> <span class="n">v</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">k</span><span class="p">)</span>
+</span><span id="Expression-639"><a href="#Expression-639"><span class="linenos">639</span></a> <span class="k">if</span> <span class="n">mandatory</span> <span class="ow">and</span> <span class="p">(</span><span class="n">v</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="nb">list</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">v</span><span class="p">)):</span>
+</span><span id="Expression-640"><a href="#Expression-640"><span class="linenos">640</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Required keyword: &#39;</span><span class="si">{</span><span class="n">k</span><span class="si">}</span><span class="s2">&#39; missing for </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
+</span><span id="Expression-641"><a href="#Expression-641"><span class="linenos">641</span></a>
+</span><span id="Expression-642"><a href="#Expression-642"><span class="linenos">642</span></a> <span class="k">if</span> <span class="p">(</span>
+</span><span id="Expression-643"><a href="#Expression-643"><span class="linenos">643</span></a> <span class="n">args</span>
+</span><span id="Expression-644"><a href="#Expression-644"><span class="linenos">644</span></a> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Func</span><span class="p">)</span>
+</span><span id="Expression-645"><a href="#Expression-645"><span class="linenos">645</span></a> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="o">&gt;</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span>
+</span><span id="Expression-646"><a href="#Expression-646"><span class="linenos">646</span></a> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_var_len_args</span>
+</span><span id="Expression-647"><a href="#Expression-647"><span class="linenos">647</span></a> <span class="p">):</span>
+</span><span id="Expression-648"><a href="#Expression-648"><span class="linenos">648</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
+</span><span id="Expression-649"><a href="#Expression-649"><span class="linenos">649</span></a> <span class="sa">f</span><span class="s2">&quot;The number of provided arguments (</span><span class="si">{</span><span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span><span class="si">}</span><span class="s2">) is greater than &quot;</span>
+</span><span id="Expression-650"><a href="#Expression-650"><span class="linenos">650</span></a> <span class="sa">f</span><span class="s2">&quot;the maximum number of supported arguments (</span><span class="si">{</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span><span class="si">}</span><span class="s2">)&quot;</span>
+</span><span id="Expression-651"><a href="#Expression-651"><span class="linenos">651</span></a> <span class="p">)</span>
+</span><span id="Expression-652"><a href="#Expression-652"><span class="linenos">652</span></a>
+</span><span id="Expression-653"><a href="#Expression-653"><span class="linenos">653</span></a> <span class="k">return</span> <span class="n">errors</span>
+</span><span id="Expression-654"><a href="#Expression-654"><span class="linenos">654</span></a>
+</span><span id="Expression-655"><a href="#Expression-655"><span class="linenos">655</span></a> <span class="k">def</span> <span class="nf">dump</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="Expression-656"><a href="#Expression-656"><span class="linenos">656</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-657"><a href="#Expression-657"><span class="linenos">657</span></a><span class="sd"> Dump this Expression to a JSON-serializable dict.</span>
+</span><span id="Expression-658"><a href="#Expression-658"><span class="linenos">658</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-659"><a href="#Expression-659"><span class="linenos">659</span></a> <span class="kn">from</span> <span class="nn">sqlglot.serde</span> <span class="kn">import</span> <span class="n">dump</span>
+</span><span id="Expression-660"><a href="#Expression-660"><span class="linenos">660</span></a>
+</span><span id="Expression-661"><a href="#Expression-661"><span class="linenos">661</span></a> <span class="k">return</span> <span class="n">dump</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
</span><span id="Expression-662"><a href="#Expression-662"><span class="linenos">662</span></a>
-</span><span id="Expression-663"><a href="#Expression-663"><span class="linenos">663</span></a> <span class="k">return</span> <span class="n">errors</span>
-</span><span id="Expression-664"><a href="#Expression-664"><span class="linenos">664</span></a>
-</span><span id="Expression-665"><a href="#Expression-665"><span class="linenos">665</span></a> <span class="k">def</span> <span class="nf">dump</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Expression-666"><a href="#Expression-666"><span class="linenos">666</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-667"><a href="#Expression-667"><span class="linenos">667</span></a><span class="sd"> Dump this Expression to a JSON-serializable dict.</span>
-</span><span id="Expression-668"><a href="#Expression-668"><span class="linenos">668</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-669"><a href="#Expression-669"><span class="linenos">669</span></a> <span class="kn">from</span> <span class="nn">sqlglot.serde</span> <span class="kn">import</span> <span class="n">dump</span>
-</span><span id="Expression-670"><a href="#Expression-670"><span class="linenos">670</span></a>
-</span><span id="Expression-671"><a href="#Expression-671"><span class="linenos">671</span></a> <span class="k">return</span> <span class="n">dump</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
-</span><span id="Expression-672"><a href="#Expression-672"><span class="linenos">672</span></a>
-</span><span id="Expression-673"><a href="#Expression-673"><span class="linenos">673</span></a> <span class="nd">@classmethod</span>
-</span><span id="Expression-674"><a href="#Expression-674"><span class="linenos">674</span></a> <span class="k">def</span> <span class="nf">load</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">obj</span><span class="p">):</span>
-</span><span id="Expression-675"><a href="#Expression-675"><span class="linenos">675</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-676"><a href="#Expression-676"><span class="linenos">676</span></a><span class="sd"> Load a dict (as returned by `Expression.dump`) into an Expression instance.</span>
-</span><span id="Expression-677"><a href="#Expression-677"><span class="linenos">677</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-678"><a href="#Expression-678"><span class="linenos">678</span></a> <span class="kn">from</span> <span class="nn">sqlglot.serde</span> <span class="kn">import</span> <span class="n">load</span>
-</span><span id="Expression-679"><a href="#Expression-679"><span class="linenos">679</span></a>
-</span><span id="Expression-680"><a href="#Expression-680"><span class="linenos">680</span></a> <span class="k">return</span> <span class="n">load</span><span class="p">(</span><span class="n">obj</span><span class="p">)</span>
+</span><span id="Expression-663"><a href="#Expression-663"><span class="linenos">663</span></a> <span class="nd">@classmethod</span>
+</span><span id="Expression-664"><a href="#Expression-664"><span class="linenos">664</span></a> <span class="k">def</span> <span class="nf">load</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">obj</span><span class="p">):</span>
+</span><span id="Expression-665"><a href="#Expression-665"><span class="linenos">665</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-666"><a href="#Expression-666"><span class="linenos">666</span></a><span class="sd"> Load a dict (as returned by `Expression.dump`) into an Expression instance.</span>
+</span><span id="Expression-667"><a href="#Expression-667"><span class="linenos">667</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-668"><a href="#Expression-668"><span class="linenos">668</span></a> <span class="kn">from</span> <span class="nn">sqlglot.serde</span> <span class="kn">import</span> <span class="n">load</span>
+</span><span id="Expression-669"><a href="#Expression-669"><span class="linenos">669</span></a>
+</span><span id="Expression-670"><a href="#Expression-670"><span class="linenos">670</span></a> <span class="k">return</span> <span class="n">load</span><span class="p">(</span><span class="n">obj</span><span class="p">)</span>
+</span><span id="Expression-671"><a href="#Expression-671"><span class="linenos">671</span></a>
+</span><span id="Expression-672"><a href="#Expression-672"><span class="linenos">672</span></a> <span class="k">def</span> <span class="nf">and_</span><span class="p">(</span>
+</span><span id="Expression-673"><a href="#Expression-673"><span class="linenos">673</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Expression-674"><a href="#Expression-674"><span class="linenos">674</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Expression-675"><a href="#Expression-675"><span class="linenos">675</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Expression-676"><a href="#Expression-676"><span class="linenos">676</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="Expression-677"><a href="#Expression-677"><span class="linenos">677</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Expression-678"><a href="#Expression-678"><span class="linenos">678</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
+</span><span id="Expression-679"><a href="#Expression-679"><span class="linenos">679</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-680"><a href="#Expression-680"><span class="linenos">680</span></a><span class="sd"> AND this condition with one or multiple expressions.</span>
</span><span id="Expression-681"><a href="#Expression-681"><span class="linenos">681</span></a>
-</span><span id="Expression-682"><a href="#Expression-682"><span class="linenos">682</span></a> <span class="k">def</span> <span class="nf">and_</span><span class="p">(</span>
-</span><span id="Expression-683"><a href="#Expression-683"><span class="linenos">683</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Expression-684"><a href="#Expression-684"><span class="linenos">684</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Expression-685"><a href="#Expression-685"><span class="linenos">685</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Expression-686"><a href="#Expression-686"><span class="linenos">686</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="Expression-687"><a href="#Expression-687"><span class="linenos">687</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Expression-688"><a href="#Expression-688"><span class="linenos">688</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
-</span><span id="Expression-689"><a href="#Expression-689"><span class="linenos">689</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-690"><a href="#Expression-690"><span class="linenos">690</span></a><span class="sd"> AND this condition with one or multiple expressions.</span>
-</span><span id="Expression-691"><a href="#Expression-691"><span class="linenos">691</span></a>
-</span><span id="Expression-692"><a href="#Expression-692"><span class="linenos">692</span></a><span class="sd"> Example:</span>
-</span><span id="Expression-693"><a href="#Expression-693"><span class="linenos">693</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).and_(&quot;y=1&quot;).sql()</span>
-</span><span id="Expression-694"><a href="#Expression-694"><span class="linenos">694</span></a><span class="sd"> &#39;x = 1 AND y = 1&#39;</span>
-</span><span id="Expression-695"><a href="#Expression-695"><span class="linenos">695</span></a>
-</span><span id="Expression-696"><a href="#Expression-696"><span class="linenos">696</span></a><span class="sd"> Args:</span>
-</span><span id="Expression-697"><a href="#Expression-697"><span class="linenos">697</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Expression-698"><a href="#Expression-698"><span class="linenos">698</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Expression-699"><a href="#Expression-699"><span class="linenos">699</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="Expression-700"><a href="#Expression-700"><span class="linenos">700</span></a><span class="sd"> copy: whether or not to copy the involved expressions (only applies to Expressions).</span>
-</span><span id="Expression-701"><a href="#Expression-701"><span class="linenos">701</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Expression-702"><a href="#Expression-702"><span class="linenos">702</span></a>
-</span><span id="Expression-703"><a href="#Expression-703"><span class="linenos">703</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression-704"><a href="#Expression-704"><span class="linenos">704</span></a><span class="sd"> The new And condition.</span>
-</span><span id="Expression-705"><a href="#Expression-705"><span class="linenos">705</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-706"><a href="#Expression-706"><span class="linenos">706</span></a> <span class="k">return</span> <span class="n">and_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="Expression-682"><a href="#Expression-682"><span class="linenos">682</span></a><span class="sd"> Example:</span>
+</span><span id="Expression-683"><a href="#Expression-683"><span class="linenos">683</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).and_(&quot;y=1&quot;).sql()</span>
+</span><span id="Expression-684"><a href="#Expression-684"><span class="linenos">684</span></a><span class="sd"> &#39;x = 1 AND y = 1&#39;</span>
+</span><span id="Expression-685"><a href="#Expression-685"><span class="linenos">685</span></a>
+</span><span id="Expression-686"><a href="#Expression-686"><span class="linenos">686</span></a><span class="sd"> Args:</span>
+</span><span id="Expression-687"><a href="#Expression-687"><span class="linenos">687</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Expression-688"><a href="#Expression-688"><span class="linenos">688</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Expression-689"><a href="#Expression-689"><span class="linenos">689</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Expression-690"><a href="#Expression-690"><span class="linenos">690</span></a><span class="sd"> copy: whether or not to copy the involved expressions (only applies to Expressions).</span>
+</span><span id="Expression-691"><a href="#Expression-691"><span class="linenos">691</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Expression-692"><a href="#Expression-692"><span class="linenos">692</span></a>
+</span><span id="Expression-693"><a href="#Expression-693"><span class="linenos">693</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression-694"><a href="#Expression-694"><span class="linenos">694</span></a><span class="sd"> The new And condition.</span>
+</span><span id="Expression-695"><a href="#Expression-695"><span class="linenos">695</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-696"><a href="#Expression-696"><span class="linenos">696</span></a> <span class="k">return</span> <span class="n">and_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="Expression-697"><a href="#Expression-697"><span class="linenos">697</span></a>
+</span><span id="Expression-698"><a href="#Expression-698"><span class="linenos">698</span></a> <span class="k">def</span> <span class="nf">or_</span><span class="p">(</span>
+</span><span id="Expression-699"><a href="#Expression-699"><span class="linenos">699</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Expression-700"><a href="#Expression-700"><span class="linenos">700</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Expression-701"><a href="#Expression-701"><span class="linenos">701</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Expression-702"><a href="#Expression-702"><span class="linenos">702</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="Expression-703"><a href="#Expression-703"><span class="linenos">703</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Expression-704"><a href="#Expression-704"><span class="linenos">704</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
+</span><span id="Expression-705"><a href="#Expression-705"><span class="linenos">705</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-706"><a href="#Expression-706"><span class="linenos">706</span></a><span class="sd"> OR this condition with one or multiple expressions.</span>
</span><span id="Expression-707"><a href="#Expression-707"><span class="linenos">707</span></a>
-</span><span id="Expression-708"><a href="#Expression-708"><span class="linenos">708</span></a> <span class="k">def</span> <span class="nf">or_</span><span class="p">(</span>
-</span><span id="Expression-709"><a href="#Expression-709"><span class="linenos">709</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Expression-710"><a href="#Expression-710"><span class="linenos">710</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Expression-711"><a href="#Expression-711"><span class="linenos">711</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Expression-712"><a href="#Expression-712"><span class="linenos">712</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="Expression-713"><a href="#Expression-713"><span class="linenos">713</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Expression-714"><a href="#Expression-714"><span class="linenos">714</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
-</span><span id="Expression-715"><a href="#Expression-715"><span class="linenos">715</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-716"><a href="#Expression-716"><span class="linenos">716</span></a><span class="sd"> OR this condition with one or multiple expressions.</span>
-</span><span id="Expression-717"><a href="#Expression-717"><span class="linenos">717</span></a>
-</span><span id="Expression-718"><a href="#Expression-718"><span class="linenos">718</span></a><span class="sd"> Example:</span>
-</span><span id="Expression-719"><a href="#Expression-719"><span class="linenos">719</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).or_(&quot;y=1&quot;).sql()</span>
-</span><span id="Expression-720"><a href="#Expression-720"><span class="linenos">720</span></a><span class="sd"> &#39;x = 1 OR y = 1&#39;</span>
-</span><span id="Expression-721"><a href="#Expression-721"><span class="linenos">721</span></a>
-</span><span id="Expression-722"><a href="#Expression-722"><span class="linenos">722</span></a><span class="sd"> Args:</span>
-</span><span id="Expression-723"><a href="#Expression-723"><span class="linenos">723</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Expression-724"><a href="#Expression-724"><span class="linenos">724</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Expression-725"><a href="#Expression-725"><span class="linenos">725</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="Expression-726"><a href="#Expression-726"><span class="linenos">726</span></a><span class="sd"> copy: whether or not to copy the involved expressions (only applies to Expressions).</span>
-</span><span id="Expression-727"><a href="#Expression-727"><span class="linenos">727</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Expression-728"><a href="#Expression-728"><span class="linenos">728</span></a>
-</span><span id="Expression-729"><a href="#Expression-729"><span class="linenos">729</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression-730"><a href="#Expression-730"><span class="linenos">730</span></a><span class="sd"> The new Or condition.</span>
-</span><span id="Expression-731"><a href="#Expression-731"><span class="linenos">731</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-732"><a href="#Expression-732"><span class="linenos">732</span></a> <span class="k">return</span> <span class="n">or_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="Expression-733"><a href="#Expression-733"><span class="linenos">733</span></a>
-</span><span id="Expression-734"><a href="#Expression-734"><span class="linenos">734</span></a> <span class="k">def</span> <span class="nf">not_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">):</span>
-</span><span id="Expression-735"><a href="#Expression-735"><span class="linenos">735</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-736"><a href="#Expression-736"><span class="linenos">736</span></a><span class="sd"> Wrap this condition with NOT.</span>
-</span><span id="Expression-737"><a href="#Expression-737"><span class="linenos">737</span></a>
-</span><span id="Expression-738"><a href="#Expression-738"><span class="linenos">738</span></a><span class="sd"> Example:</span>
-</span><span id="Expression-739"><a href="#Expression-739"><span class="linenos">739</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).not_().sql()</span>
-</span><span id="Expression-740"><a href="#Expression-740"><span class="linenos">740</span></a><span class="sd"> &#39;NOT x = 1&#39;</span>
-</span><span id="Expression-741"><a href="#Expression-741"><span class="linenos">741</span></a>
-</span><span id="Expression-742"><a href="#Expression-742"><span class="linenos">742</span></a><span class="sd"> Args:</span>
-</span><span id="Expression-743"><a href="#Expression-743"><span class="linenos">743</span></a><span class="sd"> copy: whether or not to copy this object.</span>
-</span><span id="Expression-744"><a href="#Expression-744"><span class="linenos">744</span></a>
-</span><span id="Expression-745"><a href="#Expression-745"><span class="linenos">745</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression-746"><a href="#Expression-746"><span class="linenos">746</span></a><span class="sd"> The new Not instance.</span>
-</span><span id="Expression-747"><a href="#Expression-747"><span class="linenos">747</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-748"><a href="#Expression-748"><span class="linenos">748</span></a> <span class="k">return</span> <span class="n">not_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span>
+</span><span id="Expression-708"><a href="#Expression-708"><span class="linenos">708</span></a><span class="sd"> Example:</span>
+</span><span id="Expression-709"><a href="#Expression-709"><span class="linenos">709</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).or_(&quot;y=1&quot;).sql()</span>
+</span><span id="Expression-710"><a href="#Expression-710"><span class="linenos">710</span></a><span class="sd"> &#39;x = 1 OR y = 1&#39;</span>
+</span><span id="Expression-711"><a href="#Expression-711"><span class="linenos">711</span></a>
+</span><span id="Expression-712"><a href="#Expression-712"><span class="linenos">712</span></a><span class="sd"> Args:</span>
+</span><span id="Expression-713"><a href="#Expression-713"><span class="linenos">713</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Expression-714"><a href="#Expression-714"><span class="linenos">714</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Expression-715"><a href="#Expression-715"><span class="linenos">715</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Expression-716"><a href="#Expression-716"><span class="linenos">716</span></a><span class="sd"> copy: whether or not to copy the involved expressions (only applies to Expressions).</span>
+</span><span id="Expression-717"><a href="#Expression-717"><span class="linenos">717</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Expression-718"><a href="#Expression-718"><span class="linenos">718</span></a>
+</span><span id="Expression-719"><a href="#Expression-719"><span class="linenos">719</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression-720"><a href="#Expression-720"><span class="linenos">720</span></a><span class="sd"> The new Or condition.</span>
+</span><span id="Expression-721"><a href="#Expression-721"><span class="linenos">721</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-722"><a href="#Expression-722"><span class="linenos">722</span></a> <span class="k">return</span> <span class="n">or_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="Expression-723"><a href="#Expression-723"><span class="linenos">723</span></a>
+</span><span id="Expression-724"><a href="#Expression-724"><span class="linenos">724</span></a> <span class="k">def</span> <span class="nf">not_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">):</span>
+</span><span id="Expression-725"><a href="#Expression-725"><span class="linenos">725</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-726"><a href="#Expression-726"><span class="linenos">726</span></a><span class="sd"> Wrap this condition with NOT.</span>
+</span><span id="Expression-727"><a href="#Expression-727"><span class="linenos">727</span></a>
+</span><span id="Expression-728"><a href="#Expression-728"><span class="linenos">728</span></a><span class="sd"> Example:</span>
+</span><span id="Expression-729"><a href="#Expression-729"><span class="linenos">729</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).not_().sql()</span>
+</span><span id="Expression-730"><a href="#Expression-730"><span class="linenos">730</span></a><span class="sd"> &#39;NOT x = 1&#39;</span>
+</span><span id="Expression-731"><a href="#Expression-731"><span class="linenos">731</span></a>
+</span><span id="Expression-732"><a href="#Expression-732"><span class="linenos">732</span></a><span class="sd"> Args:</span>
+</span><span id="Expression-733"><a href="#Expression-733"><span class="linenos">733</span></a><span class="sd"> copy: whether or not to copy this object.</span>
+</span><span id="Expression-734"><a href="#Expression-734"><span class="linenos">734</span></a>
+</span><span id="Expression-735"><a href="#Expression-735"><span class="linenos">735</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression-736"><a href="#Expression-736"><span class="linenos">736</span></a><span class="sd"> The new Not instance.</span>
+</span><span id="Expression-737"><a href="#Expression-737"><span class="linenos">737</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-738"><a href="#Expression-738"><span class="linenos">738</span></a> <span class="k">return</span> <span class="n">not_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span>
+</span><span id="Expression-739"><a href="#Expression-739"><span class="linenos">739</span></a>
+</span><span id="Expression-740"><a href="#Expression-740"><span class="linenos">740</span></a> <span class="k">def</span> <span class="nf">as_</span><span class="p">(</span>
+</span><span id="Expression-741"><a href="#Expression-741"><span class="linenos">741</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Expression-742"><a href="#Expression-742"><span class="linenos">742</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="Expression-743"><a href="#Expression-743"><span class="linenos">743</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="Expression-744"><a href="#Expression-744"><span class="linenos">744</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Expression-745"><a href="#Expression-745"><span class="linenos">745</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="Expression-746"><a href="#Expression-746"><span class="linenos">746</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Expression-747"><a href="#Expression-747"><span class="linenos">747</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Alias</span><span class="p">:</span>
+</span><span id="Expression-748"><a href="#Expression-748"><span class="linenos">748</span></a> <span class="k">return</span> <span class="n">alias_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="Expression-749"><a href="#Expression-749"><span class="linenos">749</span></a>
-</span><span id="Expression-750"><a href="#Expression-750"><span class="linenos">750</span></a> <span class="k">def</span> <span class="nf">as_</span><span class="p">(</span>
-</span><span id="Expression-751"><a href="#Expression-751"><span class="linenos">751</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Expression-752"><a href="#Expression-752"><span class="linenos">752</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="Expression-753"><a href="#Expression-753"><span class="linenos">753</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="Expression-754"><a href="#Expression-754"><span class="linenos">754</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Expression-755"><a href="#Expression-755"><span class="linenos">755</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="Expression-756"><a href="#Expression-756"><span class="linenos">756</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Expression-757"><a href="#Expression-757"><span class="linenos">757</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Alias</span><span class="p">:</span>
-</span><span id="Expression-758"><a href="#Expression-758"><span class="linenos">758</span></a> <span class="k">return</span> <span class="n">alias_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="Expression-750"><a href="#Expression-750"><span class="linenos">750</span></a> <span class="k">def</span> <span class="nf">_binop</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">klass</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">],</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">reverse</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
+</span><span id="Expression-751"><a href="#Expression-751"><span class="linenos">751</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
+</span><span id="Expression-752"><a href="#Expression-752"><span class="linenos">752</span></a> <span class="n">other</span> <span class="o">=</span> <span class="n">convert</span><span class="p">(</span><span class="n">other</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+</span><span id="Expression-753"><a href="#Expression-753"><span class="linenos">753</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">klass</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">other</span><span class="p">,</span> <span class="n">klass</span><span class="p">):</span>
+</span><span id="Expression-754"><a href="#Expression-754"><span class="linenos">754</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">_wrap</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">Binary</span><span class="p">)</span>
+</span><span id="Expression-755"><a href="#Expression-755"><span class="linenos">755</span></a> <span class="n">other</span> <span class="o">=</span> <span class="n">_wrap</span><span class="p">(</span><span class="n">other</span><span class="p">,</span> <span class="n">Binary</span><span class="p">)</span>
+</span><span id="Expression-756"><a href="#Expression-756"><span class="linenos">756</span></a> <span class="k">if</span> <span class="n">reverse</span><span class="p">:</span>
+</span><span id="Expression-757"><a href="#Expression-757"><span class="linenos">757</span></a> <span class="k">return</span> <span class="n">klass</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">other</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">this</span><span class="p">)</span>
+</span><span id="Expression-758"><a href="#Expression-758"><span class="linenos">758</span></a> <span class="k">return</span> <span class="n">klass</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">other</span><span class="p">)</span>
</span><span id="Expression-759"><a href="#Expression-759"><span class="linenos">759</span></a>
-</span><span id="Expression-760"><a href="#Expression-760"><span class="linenos">760</span></a> <span class="k">def</span> <span class="nf">_binop</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">klass</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">],</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">reverse</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
-</span><span id="Expression-761"><a href="#Expression-761"><span class="linenos">761</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
-</span><span id="Expression-762"><a href="#Expression-762"><span class="linenos">762</span></a> <span class="n">other</span> <span class="o">=</span> <span class="n">convert</span><span class="p">(</span><span class="n">other</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</span><span id="Expression-763"><a href="#Expression-763"><span class="linenos">763</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">klass</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">other</span><span class="p">,</span> <span class="n">klass</span><span class="p">):</span>
-</span><span id="Expression-764"><a href="#Expression-764"><span class="linenos">764</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">_wrap</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">Binary</span><span class="p">)</span>
-</span><span id="Expression-765"><a href="#Expression-765"><span class="linenos">765</span></a> <span class="n">other</span> <span class="o">=</span> <span class="n">_wrap</span><span class="p">(</span><span class="n">other</span><span class="p">,</span> <span class="n">Binary</span><span class="p">)</span>
-</span><span id="Expression-766"><a href="#Expression-766"><span class="linenos">766</span></a> <span class="k">if</span> <span class="n">reverse</span><span class="p">:</span>
-</span><span id="Expression-767"><a href="#Expression-767"><span class="linenos">767</span></a> <span class="k">return</span> <span class="n">klass</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">other</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">this</span><span class="p">)</span>
-</span><span id="Expression-768"><a href="#Expression-768"><span class="linenos">768</span></a> <span class="k">return</span> <span class="n">klass</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">other</span><span class="p">)</span>
-</span><span id="Expression-769"><a href="#Expression-769"><span class="linenos">769</span></a>
-</span><span id="Expression-770"><a href="#Expression-770"><span class="linenos">770</span></a> <span class="k">def</span> <span class="fm">__getitem__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Tuple</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">Bracket</span><span class="p">:</span>
-</span><span id="Expression-771"><a href="#Expression-771"><span class="linenos">771</span></a> <span class="k">return</span> <span class="n">Bracket</span><span class="p">(</span>
-</span><span id="Expression-772"><a href="#Expression-772"><span class="linenos">772</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">ensure_list</span><span class="p">(</span><span class="n">other</span><span class="p">)]</span>
-</span><span id="Expression-773"><a href="#Expression-773"><span class="linenos">773</span></a> <span class="p">)</span>
-</span><span id="Expression-774"><a href="#Expression-774"><span class="linenos">774</span></a>
-</span><span id="Expression-775"><a href="#Expression-775"><span class="linenos">775</span></a> <span class="k">def</span> <span class="fm">__iter__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Iterator</span><span class="p">:</span>
-</span><span id="Expression-776"><a href="#Expression-776"><span class="linenos">776</span></a> <span class="k">if</span> <span class="s2">&quot;expressions&quot;</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">:</span>
-</span><span id="Expression-777"><a href="#Expression-777"><span class="linenos">777</span></a> <span class="k">return</span> <span class="nb">iter</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;expressions&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[])</span>
-</span><span id="Expression-778"><a href="#Expression-778"><span class="linenos">778</span></a> <span class="c1"># We define this because __getitem__ converts Expression into an iterable, which is</span>
-</span><span id="Expression-779"><a href="#Expression-779"><span class="linenos">779</span></a> <span class="c1"># problematic because one can hit infinite loops if they do &quot;for x in some_expr: ...&quot;</span>
-</span><span id="Expression-780"><a href="#Expression-780"><span class="linenos">780</span></a> <span class="c1"># See: https://peps.python.org/pep-0234/</span>
-</span><span id="Expression-781"><a href="#Expression-781"><span class="linenos">781</span></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;&#39;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="si">}</span><span class="s2">&#39; object is not iterable&quot;</span><span class="p">)</span>
-</span><span id="Expression-782"><a href="#Expression-782"><span class="linenos">782</span></a>
-</span><span id="Expression-783"><a href="#Expression-783"><span class="linenos">783</span></a> <span class="k">def</span> <span class="nf">isin</span><span class="p">(</span>
-</span><span id="Expression-784"><a href="#Expression-784"><span class="linenos">784</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Expression-785"><a href="#Expression-785"><span class="linenos">785</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span>
-</span><span id="Expression-786"><a href="#Expression-786"><span class="linenos">786</span></a> <span class="n">query</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Expression-787"><a href="#Expression-787"><span class="linenos">787</span></a> <span class="n">unnest</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Collection</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Expression-788"><a href="#Expression-788"><span class="linenos">788</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="Expression-789"><a href="#Expression-789"><span class="linenos">789</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Expression-790"><a href="#Expression-790"><span class="linenos">790</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">In</span><span class="p">:</span>
-</span><span id="Expression-791"><a href="#Expression-791"><span class="linenos">791</span></a> <span class="k">return</span> <span class="n">In</span><span class="p">(</span>
-</span><span id="Expression-792"><a href="#Expression-792"><span class="linenos">792</span></a> <span class="n">this</span><span class="o">=</span><span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">),</span>
-</span><span id="Expression-793"><a href="#Expression-793"><span class="linenos">793</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">],</span>
-</span><span id="Expression-794"><a href="#Expression-794"><span class="linenos">794</span></a> <span class="n">query</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">query</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="k">if</span> <span class="n">query</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Expression-795"><a href="#Expression-795"><span class="linenos">795</span></a> <span class="n">unnest</span><span class="o">=</span><span class="n">Unnest</span><span class="p">(</span>
-</span><span id="Expression-796"><a href="#Expression-796"><span class="linenos">796</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span>
-</span><span id="Expression-797"><a href="#Expression-797"><span class="linenos">797</span></a> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">e</span><span class="p">),</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">ensure_list</span><span class="p">(</span><span class="n">unnest</span><span class="p">)</span>
-</span><span id="Expression-798"><a href="#Expression-798"><span class="linenos">798</span></a> <span class="p">]</span>
-</span><span id="Expression-799"><a href="#Expression-799"><span class="linenos">799</span></a> <span class="p">)</span>
-</span><span id="Expression-800"><a href="#Expression-800"><span class="linenos">800</span></a> <span class="k">if</span> <span class="n">unnest</span>
-</span><span id="Expression-801"><a href="#Expression-801"><span class="linenos">801</span></a> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Expression-802"><a href="#Expression-802"><span class="linenos">802</span></a> <span class="p">)</span>
+</span><span id="Expression-760"><a href="#Expression-760"><span class="linenos">760</span></a> <span class="k">def</span> <span class="fm">__getitem__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Tuple</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">Bracket</span><span class="p">:</span>
+</span><span id="Expression-761"><a href="#Expression-761"><span class="linenos">761</span></a> <span class="k">return</span> <span class="n">Bracket</span><span class="p">(</span>
+</span><span id="Expression-762"><a href="#Expression-762"><span class="linenos">762</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">ensure_list</span><span class="p">(</span><span class="n">other</span><span class="p">)]</span>
+</span><span id="Expression-763"><a href="#Expression-763"><span class="linenos">763</span></a> <span class="p">)</span>
+</span><span id="Expression-764"><a href="#Expression-764"><span class="linenos">764</span></a>
+</span><span id="Expression-765"><a href="#Expression-765"><span class="linenos">765</span></a> <span class="k">def</span> <span class="fm">__iter__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Iterator</span><span class="p">:</span>
+</span><span id="Expression-766"><a href="#Expression-766"><span class="linenos">766</span></a> <span class="k">if</span> <span class="s2">&quot;expressions&quot;</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">:</span>
+</span><span id="Expression-767"><a href="#Expression-767"><span class="linenos">767</span></a> <span class="k">return</span> <span class="nb">iter</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;expressions&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[])</span>
+</span><span id="Expression-768"><a href="#Expression-768"><span class="linenos">768</span></a> <span class="c1"># We define this because __getitem__ converts Expression into an iterable, which is</span>
+</span><span id="Expression-769"><a href="#Expression-769"><span class="linenos">769</span></a> <span class="c1"># problematic because one can hit infinite loops if they do &quot;for x in some_expr: ...&quot;</span>
+</span><span id="Expression-770"><a href="#Expression-770"><span class="linenos">770</span></a> <span class="c1"># See: https://peps.python.org/pep-0234/</span>
+</span><span id="Expression-771"><a href="#Expression-771"><span class="linenos">771</span></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;&#39;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="si">}</span><span class="s2">&#39; object is not iterable&quot;</span><span class="p">)</span>
+</span><span id="Expression-772"><a href="#Expression-772"><span class="linenos">772</span></a>
+</span><span id="Expression-773"><a href="#Expression-773"><span class="linenos">773</span></a> <span class="k">def</span> <span class="nf">isin</span><span class="p">(</span>
+</span><span id="Expression-774"><a href="#Expression-774"><span class="linenos">774</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Expression-775"><a href="#Expression-775"><span class="linenos">775</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span>
+</span><span id="Expression-776"><a href="#Expression-776"><span class="linenos">776</span></a> <span class="n">query</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Expression-777"><a href="#Expression-777"><span class="linenos">777</span></a> <span class="n">unnest</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Collection</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Expression-778"><a href="#Expression-778"><span class="linenos">778</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="Expression-779"><a href="#Expression-779"><span class="linenos">779</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Expression-780"><a href="#Expression-780"><span class="linenos">780</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">In</span><span class="p">:</span>
+</span><span id="Expression-781"><a href="#Expression-781"><span class="linenos">781</span></a> <span class="k">return</span> <span class="n">In</span><span class="p">(</span>
+</span><span id="Expression-782"><a href="#Expression-782"><span class="linenos">782</span></a> <span class="n">this</span><span class="o">=</span><span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">),</span>
+</span><span id="Expression-783"><a href="#Expression-783"><span class="linenos">783</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">],</span>
+</span><span id="Expression-784"><a href="#Expression-784"><span class="linenos">784</span></a> <span class="n">query</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">query</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="k">if</span> <span class="n">query</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Expression-785"><a href="#Expression-785"><span class="linenos">785</span></a> <span class="n">unnest</span><span class="o">=</span><span class="n">Unnest</span><span class="p">(</span>
+</span><span id="Expression-786"><a href="#Expression-786"><span class="linenos">786</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span>
+</span><span id="Expression-787"><a href="#Expression-787"><span class="linenos">787</span></a> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">e</span><span class="p">),</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">ensure_list</span><span class="p">(</span><span class="n">unnest</span><span class="p">)</span>
+</span><span id="Expression-788"><a href="#Expression-788"><span class="linenos">788</span></a> <span class="p">]</span>
+</span><span id="Expression-789"><a href="#Expression-789"><span class="linenos">789</span></a> <span class="p">)</span>
+</span><span id="Expression-790"><a href="#Expression-790"><span class="linenos">790</span></a> <span class="k">if</span> <span class="n">unnest</span>
+</span><span id="Expression-791"><a href="#Expression-791"><span class="linenos">791</span></a> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Expression-792"><a href="#Expression-792"><span class="linenos">792</span></a> <span class="p">)</span>
+</span><span id="Expression-793"><a href="#Expression-793"><span class="linenos">793</span></a>
+</span><span id="Expression-794"><a href="#Expression-794"><span class="linenos">794</span></a> <span class="k">def</span> <span class="nf">between</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">low</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">high</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Between</span><span class="p">:</span>
+</span><span id="Expression-795"><a href="#Expression-795"><span class="linenos">795</span></a> <span class="k">return</span> <span class="n">Between</span><span class="p">(</span>
+</span><span id="Expression-796"><a href="#Expression-796"><span class="linenos">796</span></a> <span class="n">this</span><span class="o">=</span><span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">),</span>
+</span><span id="Expression-797"><a href="#Expression-797"><span class="linenos">797</span></a> <span class="n">low</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">low</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
+</span><span id="Expression-798"><a href="#Expression-798"><span class="linenos">798</span></a> <span class="n">high</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">high</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
+</span><span id="Expression-799"><a href="#Expression-799"><span class="linenos">799</span></a> <span class="p">)</span>
+</span><span id="Expression-800"><a href="#Expression-800"><span class="linenos">800</span></a>
+</span><span id="Expression-801"><a href="#Expression-801"><span class="linenos">801</span></a> <span class="k">def</span> <span class="nf">is_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Is</span><span class="p">:</span>
+</span><span id="Expression-802"><a href="#Expression-802"><span class="linenos">802</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Is</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span><span id="Expression-803"><a href="#Expression-803"><span class="linenos">803</span></a>
-</span><span id="Expression-804"><a href="#Expression-804"><span class="linenos">804</span></a> <span class="k">def</span> <span class="nf">between</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">low</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">high</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Between</span><span class="p">:</span>
-</span><span id="Expression-805"><a href="#Expression-805"><span class="linenos">805</span></a> <span class="k">return</span> <span class="n">Between</span><span class="p">(</span>
-</span><span id="Expression-806"><a href="#Expression-806"><span class="linenos">806</span></a> <span class="n">this</span><span class="o">=</span><span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">),</span>
-</span><span id="Expression-807"><a href="#Expression-807"><span class="linenos">807</span></a> <span class="n">low</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">low</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
-</span><span id="Expression-808"><a href="#Expression-808"><span class="linenos">808</span></a> <span class="n">high</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">high</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
-</span><span id="Expression-809"><a href="#Expression-809"><span class="linenos">809</span></a> <span class="p">)</span>
-</span><span id="Expression-810"><a href="#Expression-810"><span class="linenos">810</span></a>
-</span><span id="Expression-811"><a href="#Expression-811"><span class="linenos">811</span></a> <span class="k">def</span> <span class="nf">is_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Is</span><span class="p">:</span>
-</span><span id="Expression-812"><a href="#Expression-812"><span class="linenos">812</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Is</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="Expression-813"><a href="#Expression-813"><span class="linenos">813</span></a>
-</span><span id="Expression-814"><a href="#Expression-814"><span class="linenos">814</span></a> <span class="k">def</span> <span class="nf">like</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Like</span><span class="p">:</span>
-</span><span id="Expression-815"><a href="#Expression-815"><span class="linenos">815</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Like</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="Expression-816"><a href="#Expression-816"><span class="linenos">816</span></a>
-</span><span id="Expression-817"><a href="#Expression-817"><span class="linenos">817</span></a> <span class="k">def</span> <span class="nf">ilike</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">ILike</span><span class="p">:</span>
-</span><span id="Expression-818"><a href="#Expression-818"><span class="linenos">818</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">ILike</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="Expression-819"><a href="#Expression-819"><span class="linenos">819</span></a>
-</span><span id="Expression-820"><a href="#Expression-820"><span class="linenos">820</span></a> <span class="k">def</span> <span class="nf">eq</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">EQ</span><span class="p">:</span>
-</span><span id="Expression-821"><a href="#Expression-821"><span class="linenos">821</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">EQ</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="Expression-822"><a href="#Expression-822"><span class="linenos">822</span></a>
-</span><span id="Expression-823"><a href="#Expression-823"><span class="linenos">823</span></a> <span class="k">def</span> <span class="nf">neq</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">NEQ</span><span class="p">:</span>
-</span><span id="Expression-824"><a href="#Expression-824"><span class="linenos">824</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">NEQ</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="Expression-825"><a href="#Expression-825"><span class="linenos">825</span></a>
-</span><span id="Expression-826"><a href="#Expression-826"><span class="linenos">826</span></a> <span class="k">def</span> <span class="nf">rlike</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">RegexpLike</span><span class="p">:</span>
-</span><span id="Expression-827"><a href="#Expression-827"><span class="linenos">827</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">RegexpLike</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="Expression-828"><a href="#Expression-828"><span class="linenos">828</span></a>
-</span><span id="Expression-829"><a href="#Expression-829"><span class="linenos">829</span></a> <span class="k">def</span> <span class="nf">div</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">typed</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span> <span class="n">safe</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Div</span><span class="p">:</span>
-</span><span id="Expression-830"><a href="#Expression-830"><span class="linenos">830</span></a> <span class="n">div</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Div</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="Expression-831"><a href="#Expression-831"><span class="linenos">831</span></a> <span class="n">div</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;typed&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">typed</span>
-</span><span id="Expression-832"><a href="#Expression-832"><span class="linenos">832</span></a> <span class="n">div</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;safe&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">safe</span>
-</span><span id="Expression-833"><a href="#Expression-833"><span class="linenos">833</span></a> <span class="k">return</span> <span class="n">div</span>
-</span><span id="Expression-834"><a href="#Expression-834"><span class="linenos">834</span></a>
-</span><span id="Expression-835"><a href="#Expression-835"><span class="linenos">835</span></a> <span class="k">def</span> <span class="fm">__lt__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">LT</span><span class="p">:</span>
-</span><span id="Expression-836"><a href="#Expression-836"><span class="linenos">836</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">LT</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="Expression-837"><a href="#Expression-837"><span class="linenos">837</span></a>
-</span><span id="Expression-838"><a href="#Expression-838"><span class="linenos">838</span></a> <span class="k">def</span> <span class="fm">__le__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">LTE</span><span class="p">:</span>
-</span><span id="Expression-839"><a href="#Expression-839"><span class="linenos">839</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">LTE</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="Expression-840"><a href="#Expression-840"><span class="linenos">840</span></a>
-</span><span id="Expression-841"><a href="#Expression-841"><span class="linenos">841</span></a> <span class="k">def</span> <span class="fm">__gt__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">GT</span><span class="p">:</span>
-</span><span id="Expression-842"><a href="#Expression-842"><span class="linenos">842</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">GT</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="Expression-843"><a href="#Expression-843"><span class="linenos">843</span></a>
-</span><span id="Expression-844"><a href="#Expression-844"><span class="linenos">844</span></a> <span class="k">def</span> <span class="fm">__ge__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">GTE</span><span class="p">:</span>
-</span><span id="Expression-845"><a href="#Expression-845"><span class="linenos">845</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">GTE</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="Expression-846"><a href="#Expression-846"><span class="linenos">846</span></a>
-</span><span id="Expression-847"><a href="#Expression-847"><span class="linenos">847</span></a> <span class="k">def</span> <span class="fm">__add__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Add</span><span class="p">:</span>
-</span><span id="Expression-848"><a href="#Expression-848"><span class="linenos">848</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Add</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="Expression-849"><a href="#Expression-849"><span class="linenos">849</span></a>
-</span><span id="Expression-850"><a href="#Expression-850"><span class="linenos">850</span></a> <span class="k">def</span> <span class="fm">__radd__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Add</span><span class="p">:</span>
-</span><span id="Expression-851"><a href="#Expression-851"><span class="linenos">851</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Add</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</span><span id="Expression-852"><a href="#Expression-852"><span class="linenos">852</span></a>
-</span><span id="Expression-853"><a href="#Expression-853"><span class="linenos">853</span></a> <span class="k">def</span> <span class="fm">__sub__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Sub</span><span class="p">:</span>
-</span><span id="Expression-854"><a href="#Expression-854"><span class="linenos">854</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Sub</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="Expression-855"><a href="#Expression-855"><span class="linenos">855</span></a>
-</span><span id="Expression-856"><a href="#Expression-856"><span class="linenos">856</span></a> <span class="k">def</span> <span class="fm">__rsub__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Sub</span><span class="p">:</span>
-</span><span id="Expression-857"><a href="#Expression-857"><span class="linenos">857</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Sub</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</span><span id="Expression-858"><a href="#Expression-858"><span class="linenos">858</span></a>
-</span><span id="Expression-859"><a href="#Expression-859"><span class="linenos">859</span></a> <span class="k">def</span> <span class="fm">__mul__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Mul</span><span class="p">:</span>
-</span><span id="Expression-860"><a href="#Expression-860"><span class="linenos">860</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Mul</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="Expression-861"><a href="#Expression-861"><span class="linenos">861</span></a>
-</span><span id="Expression-862"><a href="#Expression-862"><span class="linenos">862</span></a> <span class="k">def</span> <span class="fm">__rmul__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Mul</span><span class="p">:</span>
-</span><span id="Expression-863"><a href="#Expression-863"><span class="linenos">863</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Mul</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</span><span id="Expression-864"><a href="#Expression-864"><span class="linenos">864</span></a>
-</span><span id="Expression-865"><a href="#Expression-865"><span class="linenos">865</span></a> <span class="k">def</span> <span class="fm">__truediv__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Div</span><span class="p">:</span>
-</span><span id="Expression-866"><a href="#Expression-866"><span class="linenos">866</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Div</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="Expression-867"><a href="#Expression-867"><span class="linenos">867</span></a>
-</span><span id="Expression-868"><a href="#Expression-868"><span class="linenos">868</span></a> <span class="k">def</span> <span class="fm">__rtruediv__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Div</span><span class="p">:</span>
-</span><span id="Expression-869"><a href="#Expression-869"><span class="linenos">869</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Div</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</span><span id="Expression-870"><a href="#Expression-870"><span class="linenos">870</span></a>
-</span><span id="Expression-871"><a href="#Expression-871"><span class="linenos">871</span></a> <span class="k">def</span> <span class="fm">__floordiv__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">IntDiv</span><span class="p">:</span>
-</span><span id="Expression-872"><a href="#Expression-872"><span class="linenos">872</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">IntDiv</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="Expression-873"><a href="#Expression-873"><span class="linenos">873</span></a>
-</span><span id="Expression-874"><a href="#Expression-874"><span class="linenos">874</span></a> <span class="k">def</span> <span class="fm">__rfloordiv__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">IntDiv</span><span class="p">:</span>
-</span><span id="Expression-875"><a href="#Expression-875"><span class="linenos">875</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">IntDiv</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</span><span id="Expression-876"><a href="#Expression-876"><span class="linenos">876</span></a>
-</span><span id="Expression-877"><a href="#Expression-877"><span class="linenos">877</span></a> <span class="k">def</span> <span class="fm">__mod__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Mod</span><span class="p">:</span>
-</span><span id="Expression-878"><a href="#Expression-878"><span class="linenos">878</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Mod</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="Expression-879"><a href="#Expression-879"><span class="linenos">879</span></a>
-</span><span id="Expression-880"><a href="#Expression-880"><span class="linenos">880</span></a> <span class="k">def</span> <span class="fm">__rmod__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Mod</span><span class="p">:</span>
-</span><span id="Expression-881"><a href="#Expression-881"><span class="linenos">881</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Mod</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</span><span id="Expression-882"><a href="#Expression-882"><span class="linenos">882</span></a>
-</span><span id="Expression-883"><a href="#Expression-883"><span class="linenos">883</span></a> <span class="k">def</span> <span class="fm">__pow__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Pow</span><span class="p">:</span>
-</span><span id="Expression-884"><a href="#Expression-884"><span class="linenos">884</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Pow</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="Expression-885"><a href="#Expression-885"><span class="linenos">885</span></a>
-</span><span id="Expression-886"><a href="#Expression-886"><span class="linenos">886</span></a> <span class="k">def</span> <span class="fm">__rpow__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Pow</span><span class="p">:</span>
-</span><span id="Expression-887"><a href="#Expression-887"><span class="linenos">887</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Pow</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</span><span id="Expression-888"><a href="#Expression-888"><span class="linenos">888</span></a>
-</span><span id="Expression-889"><a href="#Expression-889"><span class="linenos">889</span></a> <span class="k">def</span> <span class="fm">__and__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">And</span><span class="p">:</span>
-</span><span id="Expression-890"><a href="#Expression-890"><span class="linenos">890</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">And</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="Expression-891"><a href="#Expression-891"><span class="linenos">891</span></a>
-</span><span id="Expression-892"><a href="#Expression-892"><span class="linenos">892</span></a> <span class="k">def</span> <span class="fm">__rand__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">And</span><span class="p">:</span>
-</span><span id="Expression-893"><a href="#Expression-893"><span class="linenos">893</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">And</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</span><span id="Expression-894"><a href="#Expression-894"><span class="linenos">894</span></a>
-</span><span id="Expression-895"><a href="#Expression-895"><span class="linenos">895</span></a> <span class="k">def</span> <span class="fm">__or__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Or</span><span class="p">:</span>
-</span><span id="Expression-896"><a href="#Expression-896"><span class="linenos">896</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Or</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="Expression-897"><a href="#Expression-897"><span class="linenos">897</span></a>
-</span><span id="Expression-898"><a href="#Expression-898"><span class="linenos">898</span></a> <span class="k">def</span> <span class="fm">__ror__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Or</span><span class="p">:</span>
-</span><span id="Expression-899"><a href="#Expression-899"><span class="linenos">899</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Or</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</span><span id="Expression-900"><a href="#Expression-900"><span class="linenos">900</span></a>
-</span><span id="Expression-901"><a href="#Expression-901"><span class="linenos">901</span></a> <span class="k">def</span> <span class="fm">__neg__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Neg</span><span class="p">:</span>
-</span><span id="Expression-902"><a href="#Expression-902"><span class="linenos">902</span></a> <span class="k">return</span> <span class="n">Neg</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">_wrap</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span> <span class="n">Binary</span><span class="p">))</span>
-</span><span id="Expression-903"><a href="#Expression-903"><span class="linenos">903</span></a>
-</span><span id="Expression-904"><a href="#Expression-904"><span class="linenos">904</span></a> <span class="k">def</span> <span class="fm">__invert__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Not</span><span class="p">:</span>
-</span><span id="Expression-905"><a href="#Expression-905"><span class="linenos">905</span></a> <span class="k">return</span> <span class="n">not_</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">())</span>
+</span><span id="Expression-804"><a href="#Expression-804"><span class="linenos">804</span></a> <span class="k">def</span> <span class="nf">like</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Like</span><span class="p">:</span>
+</span><span id="Expression-805"><a href="#Expression-805"><span class="linenos">805</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Like</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="Expression-806"><a href="#Expression-806"><span class="linenos">806</span></a>
+</span><span id="Expression-807"><a href="#Expression-807"><span class="linenos">807</span></a> <span class="k">def</span> <span class="nf">ilike</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">ILike</span><span class="p">:</span>
+</span><span id="Expression-808"><a href="#Expression-808"><span class="linenos">808</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">ILike</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="Expression-809"><a href="#Expression-809"><span class="linenos">809</span></a>
+</span><span id="Expression-810"><a href="#Expression-810"><span class="linenos">810</span></a> <span class="k">def</span> <span class="nf">eq</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">EQ</span><span class="p">:</span>
+</span><span id="Expression-811"><a href="#Expression-811"><span class="linenos">811</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">EQ</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="Expression-812"><a href="#Expression-812"><span class="linenos">812</span></a>
+</span><span id="Expression-813"><a href="#Expression-813"><span class="linenos">813</span></a> <span class="k">def</span> <span class="nf">neq</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">NEQ</span><span class="p">:</span>
+</span><span id="Expression-814"><a href="#Expression-814"><span class="linenos">814</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">NEQ</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="Expression-815"><a href="#Expression-815"><span class="linenos">815</span></a>
+</span><span id="Expression-816"><a href="#Expression-816"><span class="linenos">816</span></a> <span class="k">def</span> <span class="nf">rlike</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">RegexpLike</span><span class="p">:</span>
+</span><span id="Expression-817"><a href="#Expression-817"><span class="linenos">817</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">RegexpLike</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="Expression-818"><a href="#Expression-818"><span class="linenos">818</span></a>
+</span><span id="Expression-819"><a href="#Expression-819"><span class="linenos">819</span></a> <span class="k">def</span> <span class="nf">div</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">typed</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span> <span class="n">safe</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Div</span><span class="p">:</span>
+</span><span id="Expression-820"><a href="#Expression-820"><span class="linenos">820</span></a> <span class="n">div</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Div</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="Expression-821"><a href="#Expression-821"><span class="linenos">821</span></a> <span class="n">div</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;typed&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">typed</span>
+</span><span id="Expression-822"><a href="#Expression-822"><span class="linenos">822</span></a> <span class="n">div</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;safe&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">safe</span>
+</span><span id="Expression-823"><a href="#Expression-823"><span class="linenos">823</span></a> <span class="k">return</span> <span class="n">div</span>
+</span><span id="Expression-824"><a href="#Expression-824"><span class="linenos">824</span></a>
+</span><span id="Expression-825"><a href="#Expression-825"><span class="linenos">825</span></a> <span class="k">def</span> <span class="nf">desc</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">nulls_first</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Ordered</span><span class="p">:</span>
+</span><span id="Expression-826"><a href="#Expression-826"><span class="linenos">826</span></a> <span class="k">return</span> <span class="n">Ordered</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span> <span class="n">desc</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">nulls_first</span><span class="o">=</span><span class="n">nulls_first</span><span class="p">)</span>
+</span><span id="Expression-827"><a href="#Expression-827"><span class="linenos">827</span></a>
+</span><span id="Expression-828"><a href="#Expression-828"><span class="linenos">828</span></a> <span class="k">def</span> <span class="fm">__lt__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">LT</span><span class="p">:</span>
+</span><span id="Expression-829"><a href="#Expression-829"><span class="linenos">829</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">LT</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="Expression-830"><a href="#Expression-830"><span class="linenos">830</span></a>
+</span><span id="Expression-831"><a href="#Expression-831"><span class="linenos">831</span></a> <span class="k">def</span> <span class="fm">__le__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">LTE</span><span class="p">:</span>
+</span><span id="Expression-832"><a href="#Expression-832"><span class="linenos">832</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">LTE</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="Expression-833"><a href="#Expression-833"><span class="linenos">833</span></a>
+</span><span id="Expression-834"><a href="#Expression-834"><span class="linenos">834</span></a> <span class="k">def</span> <span class="fm">__gt__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">GT</span><span class="p">:</span>
+</span><span id="Expression-835"><a href="#Expression-835"><span class="linenos">835</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">GT</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="Expression-836"><a href="#Expression-836"><span class="linenos">836</span></a>
+</span><span id="Expression-837"><a href="#Expression-837"><span class="linenos">837</span></a> <span class="k">def</span> <span class="fm">__ge__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">GTE</span><span class="p">:</span>
+</span><span id="Expression-838"><a href="#Expression-838"><span class="linenos">838</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">GTE</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="Expression-839"><a href="#Expression-839"><span class="linenos">839</span></a>
+</span><span id="Expression-840"><a href="#Expression-840"><span class="linenos">840</span></a> <span class="k">def</span> <span class="fm">__add__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Add</span><span class="p">:</span>
+</span><span id="Expression-841"><a href="#Expression-841"><span class="linenos">841</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Add</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="Expression-842"><a href="#Expression-842"><span class="linenos">842</span></a>
+</span><span id="Expression-843"><a href="#Expression-843"><span class="linenos">843</span></a> <span class="k">def</span> <span class="fm">__radd__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Add</span><span class="p">:</span>
+</span><span id="Expression-844"><a href="#Expression-844"><span class="linenos">844</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Add</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+</span><span id="Expression-845"><a href="#Expression-845"><span class="linenos">845</span></a>
+</span><span id="Expression-846"><a href="#Expression-846"><span class="linenos">846</span></a> <span class="k">def</span> <span class="fm">__sub__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Sub</span><span class="p">:</span>
+</span><span id="Expression-847"><a href="#Expression-847"><span class="linenos">847</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Sub</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="Expression-848"><a href="#Expression-848"><span class="linenos">848</span></a>
+</span><span id="Expression-849"><a href="#Expression-849"><span class="linenos">849</span></a> <span class="k">def</span> <span class="fm">__rsub__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Sub</span><span class="p">:</span>
+</span><span id="Expression-850"><a href="#Expression-850"><span class="linenos">850</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Sub</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+</span><span id="Expression-851"><a href="#Expression-851"><span class="linenos">851</span></a>
+</span><span id="Expression-852"><a href="#Expression-852"><span class="linenos">852</span></a> <span class="k">def</span> <span class="fm">__mul__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Mul</span><span class="p">:</span>
+</span><span id="Expression-853"><a href="#Expression-853"><span class="linenos">853</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Mul</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="Expression-854"><a href="#Expression-854"><span class="linenos">854</span></a>
+</span><span id="Expression-855"><a href="#Expression-855"><span class="linenos">855</span></a> <span class="k">def</span> <span class="fm">__rmul__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Mul</span><span class="p">:</span>
+</span><span id="Expression-856"><a href="#Expression-856"><span class="linenos">856</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Mul</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+</span><span id="Expression-857"><a href="#Expression-857"><span class="linenos">857</span></a>
+</span><span id="Expression-858"><a href="#Expression-858"><span class="linenos">858</span></a> <span class="k">def</span> <span class="fm">__truediv__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Div</span><span class="p">:</span>
+</span><span id="Expression-859"><a href="#Expression-859"><span class="linenos">859</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Div</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="Expression-860"><a href="#Expression-860"><span class="linenos">860</span></a>
+</span><span id="Expression-861"><a href="#Expression-861"><span class="linenos">861</span></a> <span class="k">def</span> <span class="fm">__rtruediv__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Div</span><span class="p">:</span>
+</span><span id="Expression-862"><a href="#Expression-862"><span class="linenos">862</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Div</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+</span><span id="Expression-863"><a href="#Expression-863"><span class="linenos">863</span></a>
+</span><span id="Expression-864"><a href="#Expression-864"><span class="linenos">864</span></a> <span class="k">def</span> <span class="fm">__floordiv__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">IntDiv</span><span class="p">:</span>
+</span><span id="Expression-865"><a href="#Expression-865"><span class="linenos">865</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">IntDiv</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="Expression-866"><a href="#Expression-866"><span class="linenos">866</span></a>
+</span><span id="Expression-867"><a href="#Expression-867"><span class="linenos">867</span></a> <span class="k">def</span> <span class="fm">__rfloordiv__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">IntDiv</span><span class="p">:</span>
+</span><span id="Expression-868"><a href="#Expression-868"><span class="linenos">868</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">IntDiv</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+</span><span id="Expression-869"><a href="#Expression-869"><span class="linenos">869</span></a>
+</span><span id="Expression-870"><a href="#Expression-870"><span class="linenos">870</span></a> <span class="k">def</span> <span class="fm">__mod__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Mod</span><span class="p">:</span>
+</span><span id="Expression-871"><a href="#Expression-871"><span class="linenos">871</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Mod</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="Expression-872"><a href="#Expression-872"><span class="linenos">872</span></a>
+</span><span id="Expression-873"><a href="#Expression-873"><span class="linenos">873</span></a> <span class="k">def</span> <span class="fm">__rmod__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Mod</span><span class="p">:</span>
+</span><span id="Expression-874"><a href="#Expression-874"><span class="linenos">874</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Mod</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+</span><span id="Expression-875"><a href="#Expression-875"><span class="linenos">875</span></a>
+</span><span id="Expression-876"><a href="#Expression-876"><span class="linenos">876</span></a> <span class="k">def</span> <span class="fm">__pow__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Pow</span><span class="p">:</span>
+</span><span id="Expression-877"><a href="#Expression-877"><span class="linenos">877</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Pow</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="Expression-878"><a href="#Expression-878"><span class="linenos">878</span></a>
+</span><span id="Expression-879"><a href="#Expression-879"><span class="linenos">879</span></a> <span class="k">def</span> <span class="fm">__rpow__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Pow</span><span class="p">:</span>
+</span><span id="Expression-880"><a href="#Expression-880"><span class="linenos">880</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Pow</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+</span><span id="Expression-881"><a href="#Expression-881"><span class="linenos">881</span></a>
+</span><span id="Expression-882"><a href="#Expression-882"><span class="linenos">882</span></a> <span class="k">def</span> <span class="fm">__and__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">And</span><span class="p">:</span>
+</span><span id="Expression-883"><a href="#Expression-883"><span class="linenos">883</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">And</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="Expression-884"><a href="#Expression-884"><span class="linenos">884</span></a>
+</span><span id="Expression-885"><a href="#Expression-885"><span class="linenos">885</span></a> <span class="k">def</span> <span class="fm">__rand__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">And</span><span class="p">:</span>
+</span><span id="Expression-886"><a href="#Expression-886"><span class="linenos">886</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">And</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+</span><span id="Expression-887"><a href="#Expression-887"><span class="linenos">887</span></a>
+</span><span id="Expression-888"><a href="#Expression-888"><span class="linenos">888</span></a> <span class="k">def</span> <span class="fm">__or__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Or</span><span class="p">:</span>
+</span><span id="Expression-889"><a href="#Expression-889"><span class="linenos">889</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Or</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="Expression-890"><a href="#Expression-890"><span class="linenos">890</span></a>
+</span><span id="Expression-891"><a href="#Expression-891"><span class="linenos">891</span></a> <span class="k">def</span> <span class="fm">__ror__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Or</span><span class="p">:</span>
+</span><span id="Expression-892"><a href="#Expression-892"><span class="linenos">892</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Or</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+</span><span id="Expression-893"><a href="#Expression-893"><span class="linenos">893</span></a>
+</span><span id="Expression-894"><a href="#Expression-894"><span class="linenos">894</span></a> <span class="k">def</span> <span class="fm">__neg__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Neg</span><span class="p">:</span>
+</span><span id="Expression-895"><a href="#Expression-895"><span class="linenos">895</span></a> <span class="k">return</span> <span class="n">Neg</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">_wrap</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span> <span class="n">Binary</span><span class="p">))</span>
+</span><span id="Expression-896"><a href="#Expression-896"><span class="linenos">896</span></a>
+</span><span id="Expression-897"><a href="#Expression-897"><span class="linenos">897</span></a> <span class="k">def</span> <span class="fm">__invert__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Not</span><span class="p">:</span>
+</span><span id="Expression-898"><a href="#Expression-898"><span class="linenos">898</span></a> <span class="k">return</span> <span class="n">not_</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">())</span>
</span></pre></div>
@@ -14253,17 +14634,17 @@ optimizer, in order to enable some transformations that require type information
</div>
<a class="headerlink" href="#Expression.__init__"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.__init__-95"><a href="#Expression.__init__-95"><span class="linenos"> 95</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 class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">):</span>
-</span><span id="Expression.__init__-96"><a href="#Expression.__init__-96"><span class="linenos"> 96</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="n">args</span>
-</span><span id="Expression.__init__-97"><a href="#Expression.__init__-97"><span class="linenos"> 97</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span 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="kc">None</span>
-</span><span id="Expression.__init__-98"><a href="#Expression.__init__-98"><span class="linenos"> 98</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">arg_key</span><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><span id="Expression.__init__-99"><a href="#Expression.__init__-99"><span class="linenos"> 99</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span>
-</span><span id="Expression.__init__-100"><a href="#Expression.__init__-100"><span class="linenos">100</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_type</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">DataType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>
-</span><span id="Expression.__init__-101"><a href="#Expression.__init__-101"><span class="linenos">101</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_meta</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="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="kc">None</span>
-</span><span id="Expression.__init__-102"><a href="#Expression.__init__-102"><span class="linenos">102</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_hash</span><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">int</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>
-</span><span id="Expression.__init__-103"><a href="#Expression.__init__-103"><span class="linenos">103</span></a>
-</span><span id="Expression.__init__-104"><a href="#Expression.__init__-104"><span class="linenos">104</span></a> <span class="k">for</span> <span class="n">arg_key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
-</span><span id="Expression.__init__-105"><a href="#Expression.__init__-105"><span class="linenos">105</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_set_parent</span><span class="p">(</span><span class="n">arg_key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.__init__-98"><a href="#Expression.__init__-98"><span class="linenos"> 98</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 class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">):</span>
+</span><span id="Expression.__init__-99"><a href="#Expression.__init__-99"><span class="linenos"> 99</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="n">args</span>
+</span><span id="Expression.__init__-100"><a href="#Expression.__init__-100"><span class="linenos">100</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span 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="kc">None</span>
+</span><span id="Expression.__init__-101"><a href="#Expression.__init__-101"><span class="linenos">101</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">arg_key</span><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><span id="Expression.__init__-102"><a href="#Expression.__init__-102"><span class="linenos">102</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span>
+</span><span id="Expression.__init__-103"><a href="#Expression.__init__-103"><span class="linenos">103</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_type</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">DataType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>
+</span><span id="Expression.__init__-104"><a href="#Expression.__init__-104"><span class="linenos">104</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_meta</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="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="kc">None</span>
+</span><span id="Expression.__init__-105"><a href="#Expression.__init__-105"><span class="linenos">105</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_hash</span><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">int</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>
+</span><span id="Expression.__init__-106"><a href="#Expression.__init__-106"><span class="linenos">106</span></a>
+</span><span id="Expression.__init__-107"><a href="#Expression.__init__-107"><span class="linenos">107</span></a> <span class="k">for</span> <span class="n">arg_key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+</span><span id="Expression.__init__-108"><a href="#Expression.__init__-108"><span class="linenos">108</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_set_parent</span><span class="p">(</span><span class="n">arg_key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
</span></pre></div>
@@ -14339,50 +14720,91 @@ optimizer, in order to enable some transformations that require type information
</div>
<div id="Expression.hashable_args" class="classattr">
- <div class="attr variable">
+ <input id="Expression.hashable_args-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">hashable_args</span><span class="annotation">: Any</span>
-
+ <label class="view-source-button" for="Expression.hashable_args-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Expression.hashable_args"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.hashable_args-113"><a href="#Expression.hashable_args-113"><span class="linenos">113</span></a> <span class="nd">@property</span>
+</span><span id="Expression.hashable_args-114"><a href="#Expression.hashable_args-114"><span class="linenos">114</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="Expression.hashable_args-115"><a href="#Expression.hashable_args-115"><span class="linenos">115</span></a> <span class="k">return</span> <span class="nb">frozenset</span><span class="p">(</span>
+</span><span id="Expression.hashable_args-116"><a href="#Expression.hashable_args-116"><span class="linenos">116</span></a> <span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="nb">tuple</span><span class="p">(</span><span class="n">_norm_arg</span><span class="p">(</span><span class="n">a</span><span class="p">)</span> <span class="k">for</span> <span class="n">a</span> <span class="ow">in</span> <span class="n">v</span><span class="p">)</span> <span class="k">if</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 class="k">else</span> <span class="n">_norm_arg</span><span class="p">(</span><span class="n">v</span><span class="p">))</span>
+</span><span id="Expression.hashable_args-117"><a href="#Expression.hashable_args-117"><span class="linenos">117</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span>
+</span><span id="Expression.hashable_args-118"><a href="#Expression.hashable_args-118"><span class="linenos">118</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="p">(</span><span class="n">v</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="n">v</span> <span class="ow">is</span> <span class="kc">False</span> <span class="ow">or</span> <span class="p">(</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 class="ow">and</span> <span class="ow">not</span> <span class="n">v</span><span class="p">))</span>
+</span><span id="Expression.hashable_args-119"><a href="#Expression.hashable_args-119"><span class="linenos">119</span></a> <span class="p">)</span>
+</span></pre></div>
+
+
</div>
<div id="Expression.this" class="classattr">
- <div class="attr variable">
+ <input id="Expression.this-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">this</span><span class="annotation">: Any</span>
-
+ <label class="view-source-button" for="Expression.this-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Expression.this"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.this-127"><a href="#Expression.this-127"><span class="linenos">127</span></a> <span class="nd">@property</span>
+</span><span id="Expression.this-128"><a href="#Expression.this-128"><span class="linenos">128</span></a> <span class="k">def</span> <span class="nf">this</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="Expression.this-129"><a href="#Expression.this-129"><span class="linenos">129</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.this-130"><a href="#Expression.this-130"><span class="linenos">130</span></a><span class="sd"> Retrieves the argument with key &quot;this&quot;.</span>
+</span><span id="Expression.this-131"><a href="#Expression.this-131"><span class="linenos">131</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.this-132"><a href="#Expression.this-132"><span class="linenos">132</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;this&quot;</span><span class="p">)</span>
+</span></pre></div>
+
+
<div class="docstring"><p>Retrieves the argument with key "this".</p>
</div>
</div>
<div id="Expression.expression" class="classattr">
- <div class="attr variable">
+ <input id="Expression.expression-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">expression</span><span class="annotation">: Any</span>
-
+ <label class="view-source-button" for="Expression.expression-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Expression.expression"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.expression-134"><a href="#Expression.expression-134"><span class="linenos">134</span></a> <span class="nd">@property</span>
+</span><span id="Expression.expression-135"><a href="#Expression.expression-135"><span class="linenos">135</span></a> <span class="k">def</span> <span class="nf">expression</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="Expression.expression-136"><a href="#Expression.expression-136"><span class="linenos">136</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.expression-137"><a href="#Expression.expression-137"><span class="linenos">137</span></a><span class="sd"> Retrieves the argument with key &quot;expression&quot;.</span>
+</span><span id="Expression.expression-138"><a href="#Expression.expression-138"><span class="linenos">138</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.expression-139"><a href="#Expression.expression-139"><span class="linenos">139</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;expression&quot;</span><span class="p">)</span>
+</span></pre></div>
+
+
<div class="docstring"><p>Retrieves the argument with key "expression".</p>
</div>
</div>
<div id="Expression.expressions" class="classattr">
- <div class="attr variable">
+ <input id="Expression.expressions-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">expressions</span><span class="annotation">: List[Any]</span>
-
+ <label class="view-source-button" for="Expression.expressions-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Expression.expressions"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.expressions-141"><a href="#Expression.expressions-141"><span class="linenos">141</span></a> <span class="nd">@property</span>
+</span><span id="Expression.expressions-142"><a href="#Expression.expressions-142"><span class="linenos">142</span></a> <span class="k">def</span> <span class="nf">expressions</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]:</span>
+</span><span id="Expression.expressions-143"><a href="#Expression.expressions-143"><span class="linenos">143</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.expressions-144"><a href="#Expression.expressions-144"><span class="linenos">144</span></a><span class="sd"> Retrieves the argument with key &quot;expressions&quot;.</span>
+</span><span id="Expression.expressions-145"><a href="#Expression.expressions-145"><span class="linenos">145</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.expressions-146"><a href="#Expression.expressions-146"><span class="linenos">146</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;expressions&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]</span>
+</span></pre></div>
+
+
<div class="docstring"><p>Retrieves the argument with key "expressions".</p>
</div>
@@ -14399,19 +14821,19 @@ optimizer, in order to enable some transformations that require type information
</div>
<a class="headerlink" href="#Expression.text"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.text-145"><a href="#Expression.text-145"><span class="linenos">145</span></a> <span class="k">def</span> <span class="nf">text</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Expression.text-146"><a href="#Expression.text-146"><span class="linenos">146</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.text-147"><a href="#Expression.text-147"><span class="linenos">147</span></a><span class="sd"> Returns a textual representation of the argument corresponding to &quot;key&quot;. This can only be used</span>
-</span><span id="Expression.text-148"><a href="#Expression.text-148"><span class="linenos">148</span></a><span class="sd"> for args that are strings or leaf Expression instances, such as identifiers and literals.</span>
-</span><span id="Expression.text-149"><a href="#Expression.text-149"><span class="linenos">149</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.text-150"><a href="#Expression.text-150"><span class="linenos">150</span></a> <span class="n">field</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">key</span><span class="p">)</span>
-</span><span id="Expression.text-151"><a href="#Expression.text-151"><span class="linenos">151</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">field</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
-</span><span id="Expression.text-152"><a href="#Expression.text-152"><span class="linenos">152</span></a> <span class="k">return</span> <span class="n">field</span>
-</span><span id="Expression.text-153"><a href="#Expression.text-153"><span class="linenos">153</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">field</span><span class="p">,</span> <span class="p">(</span><span class="n">Identifier</span><span class="p">,</span> <span class="n">Literal</span><span class="p">,</span> <span class="n">Var</span><span class="p">)):</span>
-</span><span id="Expression.text-154"><a href="#Expression.text-154"><span class="linenos">154</span></a> <span class="k">return</span> <span class="n">field</span><span class="o">.</span><span class="n">this</span>
-</span><span id="Expression.text-155"><a href="#Expression.text-155"><span class="linenos">155</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">field</span><span class="p">,</span> <span class="p">(</span><span class="n">Star</span><span class="p">,</span> <span class="n">Null</span><span class="p">)):</span>
-</span><span id="Expression.text-156"><a href="#Expression.text-156"><span class="linenos">156</span></a> <span class="k">return</span> <span class="n">field</span><span class="o">.</span><span class="n">name</span>
-</span><span id="Expression.text-157"><a href="#Expression.text-157"><span class="linenos">157</span></a> <span class="k">return</span> <span class="s2">&quot;&quot;</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.text-148"><a href="#Expression.text-148"><span class="linenos">148</span></a> <span class="k">def</span> <span class="nf">text</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Expression.text-149"><a href="#Expression.text-149"><span class="linenos">149</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.text-150"><a href="#Expression.text-150"><span class="linenos">150</span></a><span class="sd"> Returns a textual representation of the argument corresponding to &quot;key&quot;. This can only be used</span>
+</span><span id="Expression.text-151"><a href="#Expression.text-151"><span class="linenos">151</span></a><span class="sd"> for args that are strings or leaf Expression instances, such as identifiers and literals.</span>
+</span><span id="Expression.text-152"><a href="#Expression.text-152"><span class="linenos">152</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.text-153"><a href="#Expression.text-153"><span class="linenos">153</span></a> <span class="n">field</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">key</span><span class="p">)</span>
+</span><span id="Expression.text-154"><a href="#Expression.text-154"><span class="linenos">154</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">field</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
+</span><span id="Expression.text-155"><a href="#Expression.text-155"><span class="linenos">155</span></a> <span class="k">return</span> <span class="n">field</span>
+</span><span id="Expression.text-156"><a href="#Expression.text-156"><span class="linenos">156</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">field</span><span class="p">,</span> <span class="p">(</span><span class="n">Identifier</span><span class="p">,</span> <span class="n">Literal</span><span class="p">,</span> <span class="n">Var</span><span class="p">)):</span>
+</span><span id="Expression.text-157"><a href="#Expression.text-157"><span class="linenos">157</span></a> <span class="k">return</span> <span class="n">field</span><span class="o">.</span><span class="n">this</span>
+</span><span id="Expression.text-158"><a href="#Expression.text-158"><span class="linenos">158</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">field</span><span class="p">,</span> <span class="p">(</span><span class="n">Star</span><span class="p">,</span> <span class="n">Null</span><span class="p">)):</span>
+</span><span id="Expression.text-159"><a href="#Expression.text-159"><span class="linenos">159</span></a> <span class="k">return</span> <span class="n">field</span><span class="o">.</span><span class="n">name</span>
+</span><span id="Expression.text-160"><a href="#Expression.text-160"><span class="linenos">160</span></a> <span class="k">return</span> <span class="s2">&quot;&quot;</span>
</span></pre></div>
@@ -14422,111 +14844,212 @@ for args that are strings or leaf Expression instances, such as identifiers and
</div>
<div id="Expression.is_string" class="classattr">
- <div class="attr variable">
+ <input id="Expression.is_string-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">is_string</span><span class="annotation">: bool</span>
-
+ <label class="view-source-button" for="Expression.is_string-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Expression.is_string"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.is_string-162"><a href="#Expression.is_string-162"><span class="linenos">162</span></a> <span class="nd">@property</span>
+</span><span id="Expression.is_string-163"><a href="#Expression.is_string-163"><span class="linenos">163</span></a> <span class="k">def</span> <span class="nf">is_string</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="Expression.is_string-164"><a href="#Expression.is_string-164"><span class="linenos">164</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.is_string-165"><a href="#Expression.is_string-165"><span class="linenos">165</span></a><span class="sd"> Checks whether a Literal expression is a string.</span>
+</span><span id="Expression.is_string-166"><a href="#Expression.is_string-166"><span class="linenos">166</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.is_string-167"><a href="#Expression.is_string-167"><span class="linenos">167</span></a> <span class="k">return</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Literal</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;is_string&quot;</span><span class="p">]</span>
+</span></pre></div>
+
+
<div class="docstring"><p>Checks whether a Literal expression is a string.</p>
</div>
</div>
<div id="Expression.is_number" class="classattr">
- <div class="attr variable">
+ <input id="Expression.is_number-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">is_number</span><span class="annotation">: bool</span>
-
+ <label class="view-source-button" for="Expression.is_number-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Expression.is_number"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.is_number-169"><a href="#Expression.is_number-169"><span class="linenos">169</span></a> <span class="nd">@property</span>
+</span><span id="Expression.is_number-170"><a href="#Expression.is_number-170"><span class="linenos">170</span></a> <span class="k">def</span> <span class="nf">is_number</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="Expression.is_number-171"><a href="#Expression.is_number-171"><span class="linenos">171</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.is_number-172"><a href="#Expression.is_number-172"><span class="linenos">172</span></a><span class="sd"> Checks whether a Literal expression is a number.</span>
+</span><span id="Expression.is_number-173"><a href="#Expression.is_number-173"><span class="linenos">173</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.is_number-174"><a href="#Expression.is_number-174"><span class="linenos">174</span></a> <span class="k">return</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Literal</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;is_string&quot;</span><span class="p">]</span>
+</span></pre></div>
+
+
<div class="docstring"><p>Checks whether a Literal expression is a number.</p>
</div>
</div>
<div id="Expression.is_int" class="classattr">
- <div class="attr variable">
+ <input id="Expression.is_int-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">is_int</span><span class="annotation">: bool</span>
-
+ <label class="view-source-button" for="Expression.is_int-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Expression.is_int"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.is_int-176"><a href="#Expression.is_int-176"><span class="linenos">176</span></a> <span class="nd">@property</span>
+</span><span id="Expression.is_int-177"><a href="#Expression.is_int-177"><span class="linenos">177</span></a> <span class="k">def</span> <span class="nf">is_int</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="Expression.is_int-178"><a href="#Expression.is_int-178"><span class="linenos">178</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.is_int-179"><a href="#Expression.is_int-179"><span class="linenos">179</span></a><span class="sd"> Checks whether a Literal expression is an integer.</span>
+</span><span id="Expression.is_int-180"><a href="#Expression.is_int-180"><span class="linenos">180</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.is_int-181"><a href="#Expression.is_int-181"><span class="linenos">181</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_number</span><span class="p">:</span>
+</span><span id="Expression.is_int-182"><a href="#Expression.is_int-182"><span class="linenos">182</span></a> <span class="k">try</span><span class="p">:</span>
+</span><span id="Expression.is_int-183"><a href="#Expression.is_int-183"><span class="linenos">183</span></a> <span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+</span><span id="Expression.is_int-184"><a href="#Expression.is_int-184"><span class="linenos">184</span></a> <span class="k">return</span> <span class="kc">True</span>
+</span><span id="Expression.is_int-185"><a href="#Expression.is_int-185"><span class="linenos">185</span></a> <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
+</span><span id="Expression.is_int-186"><a href="#Expression.is_int-186"><span class="linenos">186</span></a> <span class="k">pass</span>
+</span><span id="Expression.is_int-187"><a href="#Expression.is_int-187"><span class="linenos">187</span></a> <span class="k">return</span> <span class="kc">False</span>
+</span></pre></div>
+
+
<div class="docstring"><p>Checks whether a Literal expression is an integer.</p>
</div>
</div>
<div id="Expression.is_star" class="classattr">
- <div class="attr variable">
+ <input id="Expression.is_star-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">is_star</span><span class="annotation">: bool</span>
-
+ <label class="view-source-button" for="Expression.is_star-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Expression.is_star"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.is_star-189"><a href="#Expression.is_star-189"><span class="linenos">189</span></a> <span class="nd">@property</span>
+</span><span id="Expression.is_star-190"><a href="#Expression.is_star-190"><span class="linenos">190</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="Expression.is_star-191"><a href="#Expression.is_star-191"><span class="linenos">191</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Checks whether an expression is a star.&quot;&quot;&quot;</span>
+</span><span id="Expression.is_star-192"><a href="#Expression.is_star-192"><span class="linenos">192</span></a> <span class="k">return</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Star</span><span class="p">)</span> <span class="ow">or</span> <span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Column</span><span class="p">)</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">Star</span><span class="p">))</span>
+</span></pre></div>
+
+
<div class="docstring"><p>Checks whether an expression is a star.</p>
</div>
</div>
<div id="Expression.alias" class="classattr">
- <div class="attr variable">
+ <input id="Expression.alias-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">alias</span><span class="annotation">: str</span>
-
+ <label class="view-source-button" for="Expression.alias-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Expression.alias"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.alias-194"><a href="#Expression.alias-194"><span class="linenos">194</span></a> <span class="nd">@property</span>
+</span><span id="Expression.alias-195"><a href="#Expression.alias-195"><span class="linenos">195</span></a> <span class="k">def</span> <span class="nf">alias</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Expression.alias-196"><a href="#Expression.alias-196"><span class="linenos">196</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.alias-197"><a href="#Expression.alias-197"><span class="linenos">197</span></a><span class="sd"> Returns the alias of the expression, or an empty string if it&#39;s not aliased.</span>
+</span><span id="Expression.alias-198"><a href="#Expression.alias-198"><span class="linenos">198</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.alias-199"><a href="#Expression.alias-199"><span class="linenos">199</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;alias&quot;</span><span class="p">),</span> <span class="n">TableAlias</span><span class="p">):</span>
+</span><span id="Expression.alias-200"><a href="#Expression.alias-200"><span class="linenos">200</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;alias&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">name</span>
+</span><span id="Expression.alias-201"><a href="#Expression.alias-201"><span class="linenos">201</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;alias&quot;</span><span class="p">)</span>
+</span></pre></div>
+
+
<div class="docstring"><p>Returns the alias of the expression, or an empty string if it's not aliased.</p>
</div>
</div>
<div id="Expression.alias_column_names" class="classattr">
- <div class="attr variable">
+ <input id="Expression.alias_column_names-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">alias_column_names</span><span class="annotation">: List[str]</span>
-
+ <label class="view-source-button" for="Expression.alias_column_names-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Expression.alias_column_names"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.alias_column_names-203"><a href="#Expression.alias_column_names-203"><span class="linenos">203</span></a> <span class="nd">@property</span>
+</span><span id="Expression.alias_column_names-204"><a href="#Expression.alias_column_names-204"><span class="linenos">204</span></a> <span class="k">def</span> <span class="nf">alias_column_names</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
+</span><span id="Expression.alias_column_names-205"><a href="#Expression.alias_column_names-205"><span class="linenos">205</span></a> <span class="n">table_alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;alias&quot;</span><span class="p">)</span>
+</span><span id="Expression.alias_column_names-206"><a href="#Expression.alias_column_names-206"><span class="linenos">206</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">table_alias</span><span class="p">:</span>
+</span><span id="Expression.alias_column_names-207"><a href="#Expression.alias_column_names-207"><span class="linenos">207</span></a> <span class="k">return</span> <span class="p">[]</span>
+</span><span id="Expression.alias_column_names-208"><a href="#Expression.alias_column_names-208"><span class="linenos">208</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">c</span><span class="o">.</span><span class="n">name</span> <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="n">table_alias</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;columns&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]]</span>
+</span></pre></div>
+
+
</div>
<div id="Expression.name" class="classattr">
- <div class="attr variable">
+ <input id="Expression.name-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">name</span><span class="annotation">: str</span>
-
+ <label class="view-source-button" for="Expression.name-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Expression.name"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.name-210"><a href="#Expression.name-210"><span class="linenos">210</span></a> <span class="nd">@property</span>
+</span><span id="Expression.name-211"><a href="#Expression.name-211"><span class="linenos">211</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Expression.name-212"><a href="#Expression.name-212"><span class="linenos">212</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;this&quot;</span><span class="p">)</span>
+</span></pre></div>
+
+
</div>
<div id="Expression.alias_or_name" class="classattr">
- <div class="attr variable">
+ <input id="Expression.alias_or_name-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">alias_or_name</span><span class="annotation">: str</span>
-
+ <label class="view-source-button" for="Expression.alias_or_name-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Expression.alias_or_name"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.alias_or_name-214"><a href="#Expression.alias_or_name-214"><span class="linenos">214</span></a> <span class="nd">@property</span>
+</span><span id="Expression.alias_or_name-215"><a href="#Expression.alias_or_name-215"><span class="linenos">215</span></a> <span class="k">def</span> <span class="nf">alias_or_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Expression.alias_or_name-216"><a href="#Expression.alias_or_name-216"><span class="linenos">216</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
+</span></pre></div>
+
+
</div>
<div id="Expression.output_name" class="classattr">
- <div class="attr variable">
+ <input id="Expression.output_name-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">output_name</span><span class="annotation">: str</span>
-
+ <label class="view-source-button" for="Expression.output_name-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Expression.output_name"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.output_name-218"><a href="#Expression.output_name-218"><span class="linenos">218</span></a> <span class="nd">@property</span>
+</span><span id="Expression.output_name-219"><a href="#Expression.output_name-219"><span class="linenos">219</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Expression.output_name-220"><a href="#Expression.output_name-220"><span class="linenos">220</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.output_name-221"><a href="#Expression.output_name-221"><span class="linenos">221</span></a><span class="sd"> Name of the output column if this expression is a selection.</span>
+</span><span id="Expression.output_name-222"><a href="#Expression.output_name-222"><span class="linenos">222</span></a>
+</span><span id="Expression.output_name-223"><a href="#Expression.output_name-223"><span class="linenos">223</span></a><span class="sd"> If the Expression has no output name, an empty string is returned.</span>
+</span><span id="Expression.output_name-224"><a href="#Expression.output_name-224"><span class="linenos">224</span></a>
+</span><span id="Expression.output_name-225"><a href="#Expression.output_name-225"><span class="linenos">225</span></a><span class="sd"> Example:</span>
+</span><span id="Expression.output_name-226"><a href="#Expression.output_name-226"><span class="linenos">226</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
+</span><span id="Expression.output_name-227"><a href="#Expression.output_name-227"><span class="linenos">227</span></a><span class="sd"> &gt;&gt;&gt; parse_one(&quot;SELECT a&quot;).expressions[0].output_name</span>
+</span><span id="Expression.output_name-228"><a href="#Expression.output_name-228"><span class="linenos">228</span></a><span class="sd"> &#39;a&#39;</span>
+</span><span id="Expression.output_name-229"><a href="#Expression.output_name-229"><span class="linenos">229</span></a><span class="sd"> &gt;&gt;&gt; parse_one(&quot;SELECT b AS c&quot;).expressions[0].output_name</span>
+</span><span id="Expression.output_name-230"><a href="#Expression.output_name-230"><span class="linenos">230</span></a><span class="sd"> &#39;c&#39;</span>
+</span><span id="Expression.output_name-231"><a href="#Expression.output_name-231"><span class="linenos">231</span></a><span class="sd"> &gt;&gt;&gt; parse_one(&quot;SELECT 1 + 2&quot;).expressions[0].output_name</span>
+</span><span id="Expression.output_name-232"><a href="#Expression.output_name-232"><span class="linenos">232</span></a><span class="sd"> &#39;&#39;</span>
+</span><span id="Expression.output_name-233"><a href="#Expression.output_name-233"><span class="linenos">233</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.output_name-234"><a href="#Expression.output_name-234"><span class="linenos">234</span></a> <span class="k">return</span> <span class="s2">&quot;&quot;</span>
+</span></pre></div>
+
+
<div class="docstring"><p>Name of the output column if this expression is a selection.</p>
<p>If the Expression has no output name, an empty string is returned.</p>
@@ -14550,13 +15073,20 @@ for args that are strings or leaf Expression instances, such as identifiers and
</div>
<div id="Expression.type" class="classattr">
- <div class="attr variable">
+ <input id="Expression.type-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">type</span><span class="annotation">: Optional[<a href="#DataType">DataType</a>]</span>
-
+ <label class="view-source-button" for="Expression.type-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Expression.type"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.type-236"><a href="#Expression.type-236"><span class="linenos">236</span></a> <span class="nd">@property</span>
+</span><span id="Expression.type-237"><a href="#Expression.type-237"><span class="linenos">237</span></a> <span class="k">def</span> <span class="nf">type</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">DataType</span><span class="p">]:</span>
+</span><span id="Expression.type-238"><a href="#Expression.type-238"><span class="linenos">238</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_type</span>
+</span></pre></div>
+
+
</div>
@@ -14571,8 +15101,27 @@ for args that are strings or leaf Expression instances, such as identifiers and
</div>
<a class="headerlink" href="#Expression.is_type"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.is_type-243"><a href="#Expression.is_type-243"><span class="linenos">243</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">dtypes</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="Expression.is_type-244"><a href="#Expression.is_type-244"><span class="linenos">244</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">type</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">type</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="o">*</span><span class="n">dtypes</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.is_type-246"><a href="#Expression.is_type-246"><span class="linenos">246</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">dtypes</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="Expression.is_type-247"><a href="#Expression.is_type-247"><span class="linenos">247</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">type</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">type</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="o">*</span><span class="n">dtypes</span><span class="p">)</span>
+</span></pre></div>
+
+
+
+
+ </div>
+ <div id="Expression.is_leaf" class="classattr">
+ <input id="Expression.is_leaf-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr function">
+
+ <span class="def">def</span>
+ <span class="name">is_leaf</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span></span><span class="return-annotation">) -> <span class="nb">bool</span>:</span></span>
+
+ <label class="view-source-button" for="Expression.is_leaf-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#Expression.is_leaf"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.is_leaf-249"><a href="#Expression.is_leaf-249"><span class="linenos">249</span></a> <span class="k">def</span> <span class="nf">is_leaf</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="Expression.is_leaf-250"><a href="#Expression.is_leaf-250"><span class="linenos">250</span></a> <span class="k">return</span> <span class="ow">not</span> <span class="nb">any</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="p">(</span><span class="n">Expression</span><span class="p">,</span> <span class="nb">list</span><span class="p">))</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">values</span><span class="p">())</span>
</span></pre></div>
@@ -14580,13 +15129,22 @@ for args that are strings or leaf Expression instances, such as identifiers and
</div>
<div id="Expression.meta" class="classattr">
- <div class="attr variable">
+ <input id="Expression.meta-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">meta</span><span class="annotation">: Dict[str, Any]</span>
-
+ <label class="view-source-button" for="Expression.meta-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Expression.meta"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.meta-252"><a href="#Expression.meta-252"><span class="linenos">252</span></a> <span class="nd">@property</span>
+</span><span id="Expression.meta-253"><a href="#Expression.meta-253"><span class="linenos">253</span></a> <span class="k">def</span> <span class="nf">meta</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]:</span>
+</span><span id="Expression.meta-254"><a href="#Expression.meta-254"><span class="linenos">254</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_meta</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="Expression.meta-255"><a href="#Expression.meta-255"><span class="linenos">255</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_meta</span> <span class="o">=</span> <span class="p">{}</span>
+</span><span id="Expression.meta-256"><a href="#Expression.meta-256"><span class="linenos">256</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_meta</span>
+</span></pre></div>
+
+
</div>
@@ -14601,13 +15159,13 @@ for args that are strings or leaf Expression instances, such as identifiers and
</div>
<a class="headerlink" href="#Expression.copy"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.copy-265"><a href="#Expression.copy-265"><span class="linenos">265</span></a> <span class="k">def</span> <span class="nf">copy</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Expression.copy-266"><a href="#Expression.copy-266"><span class="linenos">266</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.copy-267"><a href="#Expression.copy-267"><span class="linenos">267</span></a><span class="sd"> Returns a deep copy of the expression.</span>
-</span><span id="Expression.copy-268"><a href="#Expression.copy-268"><span class="linenos">268</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.copy-269"><a href="#Expression.copy-269"><span class="linenos">269</span></a> <span class="n">new</span> <span class="o">=</span> <span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
-</span><span id="Expression.copy-270"><a href="#Expression.copy-270"><span class="linenos">270</span></a> <span class="n">new</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
-</span><span id="Expression.copy-271"><a href="#Expression.copy-271"><span class="linenos">271</span></a> <span class="k">return</span> <span class="n">new</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.copy-271"><a href="#Expression.copy-271"><span class="linenos">271</span></a> <span class="k">def</span> <span class="nf">copy</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="Expression.copy-272"><a href="#Expression.copy-272"><span class="linenos">272</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.copy-273"><a href="#Expression.copy-273"><span class="linenos">273</span></a><span class="sd"> Returns a deep copy of the expression.</span>
+</span><span id="Expression.copy-274"><a href="#Expression.copy-274"><span class="linenos">274</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.copy-275"><a href="#Expression.copy-275"><span class="linenos">275</span></a> <span class="n">new</span> <span class="o">=</span> <span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
+</span><span id="Expression.copy-276"><a href="#Expression.copy-276"><span class="linenos">276</span></a> <span class="n">new</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
+</span><span id="Expression.copy-277"><a href="#Expression.copy-277"><span class="linenos">277</span></a> <span class="k">return</span> <span class="n">new</span>
</span></pre></div>
@@ -14627,18 +15185,18 @@ for args that are strings or leaf Expression instances, such as identifiers and
</div>
<a class="headerlink" href="#Expression.add_comments"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.add_comments-273"><a href="#Expression.add_comments-273"><span class="linenos">273</span></a> <span class="k">def</span> <span class="nf">add_comments</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">comments</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]])</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="Expression.add_comments-274"><a href="#Expression.add_comments-274"><span class="linenos">274</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="Expression.add_comments-275"><a href="#Expression.add_comments-275"><span class="linenos">275</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="p">[]</span>
-</span><span id="Expression.add_comments-276"><a href="#Expression.add_comments-276"><span class="linenos">276</span></a> <span class="k">if</span> <span class="n">comments</span><span class="p">:</span>
-</span><span id="Expression.add_comments-277"><a href="#Expression.add_comments-277"><span class="linenos">277</span></a> <span class="k">for</span> <span class="n">comment</span> <span class="ow">in</span> <span class="n">comments</span><span class="p">:</span>
-</span><span id="Expression.add_comments-278"><a href="#Expression.add_comments-278"><span class="linenos">278</span></a> <span class="n">_</span><span class="p">,</span> <span class="o">*</span><span class="n">meta</span> <span class="o">=</span> <span class="n">comment</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">SQLGLOT_META</span><span class="p">)</span>
-</span><span id="Expression.add_comments-279"><a href="#Expression.add_comments-279"><span class="linenos">279</span></a> <span class="k">if</span> <span class="n">meta</span><span class="p">:</span>
-</span><span id="Expression.add_comments-280"><a href="#Expression.add_comments-280"><span class="linenos">280</span></a> <span class="k">for</span> <span class="n">kv</span> <span class="ow">in</span> <span class="s2">&quot;&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">meta</span><span class="p">)</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><span id="Expression.add_comments-281"><a href="#Expression.add_comments-281"><span class="linenos">281</span></a> <span class="n">k</span><span class="p">,</span> <span class="o">*</span><span class="n">v</span> <span class="o">=</span> <span class="n">kv</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><span id="Expression.add_comments-282"><a href="#Expression.add_comments-282"><span class="linenos">282</span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">v</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="k">if</span> <span class="n">v</span> <span class="k">else</span> <span class="kc">True</span>
-</span><span id="Expression.add_comments-283"><a href="#Expression.add_comments-283"><span class="linenos">283</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">meta</span><span class="p">[</span><span class="n">k</span><span class="o">.</span><span class="n">strip</span><span class="p">()]</span> <span class="o">=</span> <span class="n">value</span>
-</span><span id="Expression.add_comments-284"><a href="#Expression.add_comments-284"><span class="linenos">284</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">comment</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.add_comments-279"><a href="#Expression.add_comments-279"><span class="linenos">279</span></a> <span class="k">def</span> <span class="nf">add_comments</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">comments</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]])</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="Expression.add_comments-280"><a href="#Expression.add_comments-280"><span class="linenos">280</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="Expression.add_comments-281"><a href="#Expression.add_comments-281"><span class="linenos">281</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="Expression.add_comments-282"><a href="#Expression.add_comments-282"><span class="linenos">282</span></a> <span class="k">if</span> <span class="n">comments</span><span class="p">:</span>
+</span><span id="Expression.add_comments-283"><a href="#Expression.add_comments-283"><span class="linenos">283</span></a> <span class="k">for</span> <span class="n">comment</span> <span class="ow">in</span> <span class="n">comments</span><span class="p">:</span>
+</span><span id="Expression.add_comments-284"><a href="#Expression.add_comments-284"><span class="linenos">284</span></a> <span class="n">_</span><span class="p">,</span> <span class="o">*</span><span class="n">meta</span> <span class="o">=</span> <span class="n">comment</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">SQLGLOT_META</span><span class="p">)</span>
+</span><span id="Expression.add_comments-285"><a href="#Expression.add_comments-285"><span class="linenos">285</span></a> <span class="k">if</span> <span class="n">meta</span><span class="p">:</span>
+</span><span id="Expression.add_comments-286"><a href="#Expression.add_comments-286"><span class="linenos">286</span></a> <span class="k">for</span> <span class="n">kv</span> <span class="ow">in</span> <span class="s2">&quot;&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">meta</span><span class="p">)</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><span id="Expression.add_comments-287"><a href="#Expression.add_comments-287"><span class="linenos">287</span></a> <span class="n">k</span><span class="p">,</span> <span class="o">*</span><span class="n">v</span> <span class="o">=</span> <span class="n">kv</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><span id="Expression.add_comments-288"><a href="#Expression.add_comments-288"><span class="linenos">288</span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">v</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="k">if</span> <span class="n">v</span> <span class="k">else</span> <span class="kc">True</span>
+</span><span id="Expression.add_comments-289"><a href="#Expression.add_comments-289"><span class="linenos">289</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">meta</span><span class="p">[</span><span class="n">k</span><span class="o">.</span><span class="n">strip</span><span class="p">()]</span> <span class="o">=</span> <span class="n">value</span>
+</span><span id="Expression.add_comments-290"><a href="#Expression.add_comments-290"><span class="linenos">290</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">comment</span><span class="p">)</span>
</span></pre></div>
@@ -14656,18 +15214,18 @@ for args that are strings or leaf Expression instances, such as identifiers and
</div>
<a class="headerlink" href="#Expression.append"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.append-286"><a href="#Expression.append-286"><span class="linenos">286</span></a> <span class="k">def</span> <span class="nf">append</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">arg_key</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="Expression.append-287"><a href="#Expression.append-287"><span class="linenos">287</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.append-288"><a href="#Expression.append-288"><span class="linenos">288</span></a><span class="sd"> Appends value to arg_key if it&#39;s a list or sets it as a new list.</span>
-</span><span id="Expression.append-289"><a href="#Expression.append-289"><span class="linenos">289</span></a>
-</span><span id="Expression.append-290"><a href="#Expression.append-290"><span class="linenos">290</span></a><span class="sd"> Args:</span>
-</span><span id="Expression.append-291"><a href="#Expression.append-291"><span class="linenos">291</span></a><span class="sd"> arg_key (str): name of the list expression arg</span>
-</span><span id="Expression.append-292"><a href="#Expression.append-292"><span class="linenos">292</span></a><span class="sd"> value (Any): value to append to the list</span>
-</span><span id="Expression.append-293"><a href="#Expression.append-293"><span class="linenos">293</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.append-294"><a href="#Expression.append-294"><span class="linenos">294</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">arg_key</span><span class="p">),</span> <span class="nb">list</span><span class="p">):</span>
-</span><span id="Expression.append-295"><a href="#Expression.append-295"><span class="linenos">295</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">arg_key</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
-</span><span id="Expression.append-296"><a href="#Expression.append-296"><span class="linenos">296</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">arg_key</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
-</span><span id="Expression.append-297"><a href="#Expression.append-297"><span class="linenos">297</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_set_parent</span><span class="p">(</span><span class="n">arg_key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.append-292"><a href="#Expression.append-292"><span class="linenos">292</span></a> <span class="k">def</span> <span class="nf">append</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">arg_key</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="Expression.append-293"><a href="#Expression.append-293"><span class="linenos">293</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.append-294"><a href="#Expression.append-294"><span class="linenos">294</span></a><span class="sd"> Appends value to arg_key if it&#39;s a list or sets it as a new list.</span>
+</span><span id="Expression.append-295"><a href="#Expression.append-295"><span class="linenos">295</span></a>
+</span><span id="Expression.append-296"><a href="#Expression.append-296"><span class="linenos">296</span></a><span class="sd"> Args:</span>
+</span><span id="Expression.append-297"><a href="#Expression.append-297"><span class="linenos">297</span></a><span class="sd"> arg_key (str): name of the list expression arg</span>
+</span><span id="Expression.append-298"><a href="#Expression.append-298"><span class="linenos">298</span></a><span class="sd"> value (Any): value to append to the list</span>
+</span><span id="Expression.append-299"><a href="#Expression.append-299"><span class="linenos">299</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.append-300"><a href="#Expression.append-300"><span class="linenos">300</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">arg_key</span><span class="p">),</span> <span class="nb">list</span><span class="p">):</span>
+</span><span id="Expression.append-301"><a href="#Expression.append-301"><span class="linenos">301</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">arg_key</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="Expression.append-302"><a href="#Expression.append-302"><span class="linenos">302</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">arg_key</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
+</span><span id="Expression.append-303"><a href="#Expression.append-303"><span class="linenos">303</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_set_parent</span><span class="p">(</span><span class="n">arg_key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
</span></pre></div>
@@ -14694,20 +15252,20 @@ for args that are strings or leaf Expression instances, such as identifiers and
</div>
<a class="headerlink" href="#Expression.set"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.set-299"><a href="#Expression.set-299"><span class="linenos">299</span></a> <span class="k">def</span> <span class="nf">set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">arg_key</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="Expression.set-300"><a href="#Expression.set-300"><span class="linenos">300</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.set-301"><a href="#Expression.set-301"><span class="linenos">301</span></a><span class="sd"> Sets arg_key to value.</span>
-</span><span id="Expression.set-302"><a href="#Expression.set-302"><span class="linenos">302</span></a>
-</span><span id="Expression.set-303"><a href="#Expression.set-303"><span class="linenos">303</span></a><span class="sd"> Args:</span>
-</span><span id="Expression.set-304"><a href="#Expression.set-304"><span class="linenos">304</span></a><span class="sd"> arg_key: name of the expression arg.</span>
-</span><span id="Expression.set-305"><a href="#Expression.set-305"><span class="linenos">305</span></a><span class="sd"> value: value to set the arg to.</span>
-</span><span id="Expression.set-306"><a href="#Expression.set-306"><span class="linenos">306</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.set-307"><a href="#Expression.set-307"><span class="linenos">307</span></a> <span class="k">if</span> <span class="n">value</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="Expression.set-308"><a href="#Expression.set-308"><span class="linenos">308</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">arg_key</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
-</span><span id="Expression.set-309"><a href="#Expression.set-309"><span class="linenos">309</span></a> <span class="k">return</span>
-</span><span id="Expression.set-310"><a href="#Expression.set-310"><span class="linenos">310</span></a>
-</span><span id="Expression.set-311"><a href="#Expression.set-311"><span class="linenos">311</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">arg_key</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span>
-</span><span id="Expression.set-312"><a href="#Expression.set-312"><span class="linenos">312</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_set_parent</span><span class="p">(</span><span class="n">arg_key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.set-305"><a href="#Expression.set-305"><span class="linenos">305</span></a> <span class="k">def</span> <span class="nf">set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">arg_key</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="Expression.set-306"><a href="#Expression.set-306"><span class="linenos">306</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.set-307"><a href="#Expression.set-307"><span class="linenos">307</span></a><span class="sd"> Sets arg_key to value.</span>
+</span><span id="Expression.set-308"><a href="#Expression.set-308"><span class="linenos">308</span></a>
+</span><span id="Expression.set-309"><a href="#Expression.set-309"><span class="linenos">309</span></a><span class="sd"> Args:</span>
+</span><span id="Expression.set-310"><a href="#Expression.set-310"><span class="linenos">310</span></a><span class="sd"> arg_key: name of the expression arg.</span>
+</span><span id="Expression.set-311"><a href="#Expression.set-311"><span class="linenos">311</span></a><span class="sd"> value: value to set the arg to.</span>
+</span><span id="Expression.set-312"><a href="#Expression.set-312"><span class="linenos">312</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.set-313"><a href="#Expression.set-313"><span class="linenos">313</span></a> <span class="k">if</span> <span class="n">value</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="Expression.set-314"><a href="#Expression.set-314"><span class="linenos">314</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">arg_key</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
+</span><span id="Expression.set-315"><a href="#Expression.set-315"><span class="linenos">315</span></a> <span class="k">return</span>
+</span><span id="Expression.set-316"><a href="#Expression.set-316"><span class="linenos">316</span></a>
+</span><span id="Expression.set-317"><a href="#Expression.set-317"><span class="linenos">317</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">arg_key</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span>
+</span><span id="Expression.set-318"><a href="#Expression.set-318"><span class="linenos">318</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_set_parent</span><span class="p">(</span><span class="n">arg_key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
</span></pre></div>
@@ -14724,13 +15282,25 @@ for args that are strings or leaf Expression instances, such as identifiers and
</div>
<div id="Expression.depth" class="classattr">
- <div class="attr variable">
+ <input id="Expression.depth-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">depth</span><span class="annotation">: int</span>
-
+ <label class="view-source-button" for="Expression.depth-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Expression.depth"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.depth-330"><a href="#Expression.depth-330"><span class="linenos">330</span></a> <span class="nd">@property</span>
+</span><span id="Expression.depth-331"><a href="#Expression.depth-331"><span class="linenos">331</span></a> <span class="k">def</span> <span class="nf">depth</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">int</span><span class="p">:</span>
+</span><span id="Expression.depth-332"><a href="#Expression.depth-332"><span class="linenos">332</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.depth-333"><a href="#Expression.depth-333"><span class="linenos">333</span></a><span class="sd"> Returns the depth of this tree.</span>
+</span><span id="Expression.depth-334"><a href="#Expression.depth-334"><span class="linenos">334</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.depth-335"><a href="#Expression.depth-335"><span class="linenos">335</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">:</span>
+</span><span id="Expression.depth-336"><a href="#Expression.depth-336"><span class="linenos">336</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">depth</span> <span class="o">+</span> <span class="mi">1</span>
+</span><span id="Expression.depth-337"><a href="#Expression.depth-337"><span class="linenos">337</span></a> <span class="k">return</span> <span class="mi">0</span>
+</span></pre></div>
+
+
<div class="docstring"><p>Returns the depth of this tree.</p>
</div>
@@ -14747,16 +15317,16 @@ for args that are strings or leaf Expression instances, such as identifiers and
</div>
<a class="headerlink" href="#Expression.iter_expressions"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.iter_expressions-333"><a href="#Expression.iter_expressions-333"><span class="linenos">333</span></a> <span class="k">def</span> <span class="nf">iter_expressions</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Iterator</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Tuple</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Expression</span><span class="p">]]:</span>
-</span><span id="Expression.iter_expressions-334"><a href="#Expression.iter_expressions-334"><span class="linenos">334</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Yields the key and expression for all arguments, exploding list args.&quot;&quot;&quot;</span>
-</span><span id="Expression.iter_expressions-335"><a href="#Expression.iter_expressions-335"><span class="linenos">335</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">vs</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
-</span><span id="Expression.iter_expressions-336"><a href="#Expression.iter_expressions-336"><span class="linenos">336</span></a> <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">vs</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">list</span><span class="p">:</span>
-</span><span id="Expression.iter_expressions-337"><a href="#Expression.iter_expressions-337"><span class="linenos">337</span></a> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">vs</span><span class="p">:</span>
-</span><span id="Expression.iter_expressions-338"><a href="#Expression.iter_expressions-338"><span class="linenos">338</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">):</span>
-</span><span id="Expression.iter_expressions-339"><a href="#Expression.iter_expressions-339"><span class="linenos">339</span></a> <span class="k">yield</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span>
-</span><span id="Expression.iter_expressions-340"><a href="#Expression.iter_expressions-340"><span class="linenos">340</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="Expression.iter_expressions-341"><a href="#Expression.iter_expressions-341"><span class="linenos">341</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">vs</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">):</span>
-</span><span id="Expression.iter_expressions-342"><a href="#Expression.iter_expressions-342"><span class="linenos">342</span></a> <span class="k">yield</span> <span class="n">k</span><span class="p">,</span> <span class="n">vs</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.iter_expressions-339"><a href="#Expression.iter_expressions-339"><span class="linenos">339</span></a> <span class="k">def</span> <span class="nf">iter_expressions</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Iterator</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Tuple</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Expression</span><span class="p">]]:</span>
+</span><span id="Expression.iter_expressions-340"><a href="#Expression.iter_expressions-340"><span class="linenos">340</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Yields the key and expression for all arguments, exploding list args.&quot;&quot;&quot;</span>
+</span><span id="Expression.iter_expressions-341"><a href="#Expression.iter_expressions-341"><span class="linenos">341</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">vs</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+</span><span id="Expression.iter_expressions-342"><a href="#Expression.iter_expressions-342"><span class="linenos">342</span></a> <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">vs</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">list</span><span class="p">:</span>
+</span><span id="Expression.iter_expressions-343"><a href="#Expression.iter_expressions-343"><span class="linenos">343</span></a> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">vs</span><span class="p">:</span>
+</span><span id="Expression.iter_expressions-344"><a href="#Expression.iter_expressions-344"><span class="linenos">344</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">):</span>
+</span><span id="Expression.iter_expressions-345"><a href="#Expression.iter_expressions-345"><span class="linenos">345</span></a> <span class="k">yield</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span>
+</span><span id="Expression.iter_expressions-346"><a href="#Expression.iter_expressions-346"><span class="linenos">346</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="Expression.iter_expressions-347"><a href="#Expression.iter_expressions-347"><span class="linenos">347</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">vs</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">):</span>
+</span><span id="Expression.iter_expressions-348"><a href="#Expression.iter_expressions-348"><span class="linenos">348</span></a> <span class="k">yield</span> <span class="n">k</span><span class="p">,</span> <span class="n">vs</span>
</span></pre></div>
@@ -14776,19 +15346,19 @@ for args that are strings or leaf Expression instances, such as identifiers and
</div>
<a class="headerlink" href="#Expression.find"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.find-344"><a href="#Expression.find-344"><span class="linenos">344</span></a> <span class="k">def</span> <span class="nf">find</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">],</span> <span class="n">bfs</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">E</span><span class="p">]:</span>
-</span><span id="Expression.find-345"><a href="#Expression.find-345"><span class="linenos">345</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.find-346"><a href="#Expression.find-346"><span class="linenos">346</span></a><span class="sd"> Returns the first node in this tree which matches at least one of</span>
-</span><span id="Expression.find-347"><a href="#Expression.find-347"><span class="linenos">347</span></a><span class="sd"> the specified types.</span>
-</span><span id="Expression.find-348"><a href="#Expression.find-348"><span class="linenos">348</span></a>
-</span><span id="Expression.find-349"><a href="#Expression.find-349"><span class="linenos">349</span></a><span class="sd"> Args:</span>
-</span><span id="Expression.find-350"><a href="#Expression.find-350"><span class="linenos">350</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
-</span><span id="Expression.find-351"><a href="#Expression.find-351"><span class="linenos">351</span></a><span class="sd"> bfs: whether to search the AST using the BFS algorithm (DFS is used if false).</span>
-</span><span id="Expression.find-352"><a href="#Expression.find-352"><span class="linenos">352</span></a>
-</span><span id="Expression.find-353"><a href="#Expression.find-353"><span class="linenos">353</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression.find-354"><a href="#Expression.find-354"><span class="linenos">354</span></a><span class="sd"> The node which matches the criteria or None if no such node was found.</span>
-</span><span id="Expression.find-355"><a href="#Expression.find-355"><span class="linenos">355</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.find-356"><a href="#Expression.find-356"><span class="linenos">356</span></a> <span class="k">return</span> <span class="nb">next</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="o">*</span><span class="n">expression_types</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="n">bfs</span><span class="p">),</span> <span class="kc">None</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.find-350"><a href="#Expression.find-350"><span class="linenos">350</span></a> <span class="k">def</span> <span class="nf">find</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">],</span> <span class="n">bfs</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">E</span><span class="p">]:</span>
+</span><span id="Expression.find-351"><a href="#Expression.find-351"><span class="linenos">351</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.find-352"><a href="#Expression.find-352"><span class="linenos">352</span></a><span class="sd"> Returns the first node in this tree which matches at least one of</span>
+</span><span id="Expression.find-353"><a href="#Expression.find-353"><span class="linenos">353</span></a><span class="sd"> the specified types.</span>
+</span><span id="Expression.find-354"><a href="#Expression.find-354"><span class="linenos">354</span></a>
+</span><span id="Expression.find-355"><a href="#Expression.find-355"><span class="linenos">355</span></a><span class="sd"> Args:</span>
+</span><span id="Expression.find-356"><a href="#Expression.find-356"><span class="linenos">356</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
+</span><span id="Expression.find-357"><a href="#Expression.find-357"><span class="linenos">357</span></a><span class="sd"> bfs: whether to search the AST using the BFS algorithm (DFS is used if false).</span>
+</span><span id="Expression.find-358"><a href="#Expression.find-358"><span class="linenos">358</span></a>
+</span><span id="Expression.find-359"><a href="#Expression.find-359"><span class="linenos">359</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression.find-360"><a href="#Expression.find-360"><span class="linenos">360</span></a><span class="sd"> The node which matches the criteria or None if no such node was found.</span>
+</span><span id="Expression.find-361"><a href="#Expression.find-361"><span class="linenos">361</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.find-362"><a href="#Expression.find-362"><span class="linenos">362</span></a> <span class="k">return</span> <span class="nb">next</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="o">*</span><span class="n">expression_types</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="n">bfs</span><span class="p">),</span> <span class="kc">None</span><span class="p">)</span>
</span></pre></div>
@@ -14822,21 +15392,21 @@ the specified types.</p>
</div>
<a class="headerlink" href="#Expression.find_all"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.find_all-358"><a href="#Expression.find_all-358"><span class="linenos">358</span></a> <span class="k">def</span> <span class="nf">find_all</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">],</span> <span class="n">bfs</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Iterator</span><span class="p">[</span><span class="n">E</span><span class="p">]:</span>
-</span><span id="Expression.find_all-359"><a href="#Expression.find_all-359"><span class="linenos">359</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.find_all-360"><a href="#Expression.find_all-360"><span class="linenos">360</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree and only</span>
-</span><span id="Expression.find_all-361"><a href="#Expression.find_all-361"><span class="linenos">361</span></a><span class="sd"> yields those that match at least one of the specified expression types.</span>
-</span><span id="Expression.find_all-362"><a href="#Expression.find_all-362"><span class="linenos">362</span></a>
-</span><span id="Expression.find_all-363"><a href="#Expression.find_all-363"><span class="linenos">363</span></a><span class="sd"> Args:</span>
-</span><span id="Expression.find_all-364"><a href="#Expression.find_all-364"><span class="linenos">364</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
-</span><span id="Expression.find_all-365"><a href="#Expression.find_all-365"><span class="linenos">365</span></a><span class="sd"> bfs: whether to search the AST using the BFS algorithm (DFS is used if false).</span>
-</span><span id="Expression.find_all-366"><a href="#Expression.find_all-366"><span class="linenos">366</span></a>
-</span><span id="Expression.find_all-367"><a href="#Expression.find_all-367"><span class="linenos">367</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression.find_all-368"><a href="#Expression.find_all-368"><span class="linenos">368</span></a><span class="sd"> The generator object.</span>
-</span><span id="Expression.find_all-369"><a href="#Expression.find_all-369"><span class="linenos">369</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.find_all-370"><a href="#Expression.find_all-370"><span class="linenos">370</span></a> <span class="k">for</span> <span class="n">expression</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">walk</span><span class="p">(</span><span class="n">bfs</span><span class="o">=</span><span class="n">bfs</span><span class="p">):</span>
-</span><span id="Expression.find_all-371"><a href="#Expression.find_all-371"><span class="linenos">371</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">expression_types</span><span class="p">):</span>
-</span><span id="Expression.find_all-372"><a href="#Expression.find_all-372"><span class="linenos">372</span></a> <span class="k">yield</span> <span class="n">expression</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.find_all-364"><a href="#Expression.find_all-364"><span class="linenos">364</span></a> <span class="k">def</span> <span class="nf">find_all</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">],</span> <span class="n">bfs</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Iterator</span><span class="p">[</span><span class="n">E</span><span class="p">]:</span>
+</span><span id="Expression.find_all-365"><a href="#Expression.find_all-365"><span class="linenos">365</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.find_all-366"><a href="#Expression.find_all-366"><span class="linenos">366</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree and only</span>
+</span><span id="Expression.find_all-367"><a href="#Expression.find_all-367"><span class="linenos">367</span></a><span class="sd"> yields those that match at least one of the specified expression types.</span>
+</span><span id="Expression.find_all-368"><a href="#Expression.find_all-368"><span class="linenos">368</span></a>
+</span><span id="Expression.find_all-369"><a href="#Expression.find_all-369"><span class="linenos">369</span></a><span class="sd"> Args:</span>
+</span><span id="Expression.find_all-370"><a href="#Expression.find_all-370"><span class="linenos">370</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
+</span><span id="Expression.find_all-371"><a href="#Expression.find_all-371"><span class="linenos">371</span></a><span class="sd"> bfs: whether to search the AST using the BFS algorithm (DFS is used if false).</span>
+</span><span id="Expression.find_all-372"><a href="#Expression.find_all-372"><span class="linenos">372</span></a>
+</span><span id="Expression.find_all-373"><a href="#Expression.find_all-373"><span class="linenos">373</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression.find_all-374"><a href="#Expression.find_all-374"><span class="linenos">374</span></a><span class="sd"> The generator object.</span>
+</span><span id="Expression.find_all-375"><a href="#Expression.find_all-375"><span class="linenos">375</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.find_all-376"><a href="#Expression.find_all-376"><span class="linenos">376</span></a> <span class="k">for</span> <span class="n">expression</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">walk</span><span class="p">(</span><span class="n">bfs</span><span class="o">=</span><span class="n">bfs</span><span class="p">):</span>
+</span><span id="Expression.find_all-377"><a href="#Expression.find_all-377"><span class="linenos">377</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">expression_types</span><span class="p">):</span>
+</span><span id="Expression.find_all-378"><a href="#Expression.find_all-378"><span class="linenos">378</span></a> <span class="k">yield</span> <span class="n">expression</span>
</span></pre></div>
@@ -14870,20 +15440,20 @@ yields those that match at least one of the specified expression types.</p>
</div>
<a class="headerlink" href="#Expression.find_ancestor"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.find_ancestor-374"><a href="#Expression.find_ancestor-374"><span class="linenos">374</span></a> <span class="k">def</span> <span class="nf">find_ancestor</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">E</span><span class="p">]:</span>
-</span><span id="Expression.find_ancestor-375"><a href="#Expression.find_ancestor-375"><span class="linenos">375</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.find_ancestor-376"><a href="#Expression.find_ancestor-376"><span class="linenos">376</span></a><span class="sd"> Returns a nearest parent matching expression_types.</span>
-</span><span id="Expression.find_ancestor-377"><a href="#Expression.find_ancestor-377"><span class="linenos">377</span></a>
-</span><span id="Expression.find_ancestor-378"><a href="#Expression.find_ancestor-378"><span class="linenos">378</span></a><span class="sd"> Args:</span>
-</span><span id="Expression.find_ancestor-379"><a href="#Expression.find_ancestor-379"><span class="linenos">379</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
-</span><span id="Expression.find_ancestor-380"><a href="#Expression.find_ancestor-380"><span class="linenos">380</span></a>
-</span><span id="Expression.find_ancestor-381"><a href="#Expression.find_ancestor-381"><span class="linenos">381</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression.find_ancestor-382"><a href="#Expression.find_ancestor-382"><span class="linenos">382</span></a><span class="sd"> The parent node.</span>
-</span><span id="Expression.find_ancestor-383"><a href="#Expression.find_ancestor-383"><span class="linenos">383</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.find_ancestor-384"><a href="#Expression.find_ancestor-384"><span class="linenos">384</span></a> <span class="n">ancestor</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
-</span><span id="Expression.find_ancestor-385"><a href="#Expression.find_ancestor-385"><span class="linenos">385</span></a> <span class="k">while</span> <span class="n">ancestor</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">ancestor</span><span class="p">,</span> <span class="n">expression_types</span><span class="p">):</span>
-</span><span id="Expression.find_ancestor-386"><a href="#Expression.find_ancestor-386"><span class="linenos">386</span></a> <span class="n">ancestor</span> <span class="o">=</span> <span class="n">ancestor</span><span class="o">.</span><span class="n">parent</span>
-</span><span id="Expression.find_ancestor-387"><a href="#Expression.find_ancestor-387"><span class="linenos">387</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">E</span><span class="p">,</span> <span class="n">ancestor</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.find_ancestor-380"><a href="#Expression.find_ancestor-380"><span class="linenos">380</span></a> <span class="k">def</span> <span class="nf">find_ancestor</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">E</span><span class="p">]:</span>
+</span><span id="Expression.find_ancestor-381"><a href="#Expression.find_ancestor-381"><span class="linenos">381</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.find_ancestor-382"><a href="#Expression.find_ancestor-382"><span class="linenos">382</span></a><span class="sd"> Returns a nearest parent matching expression_types.</span>
+</span><span id="Expression.find_ancestor-383"><a href="#Expression.find_ancestor-383"><span class="linenos">383</span></a>
+</span><span id="Expression.find_ancestor-384"><a href="#Expression.find_ancestor-384"><span class="linenos">384</span></a><span class="sd"> Args:</span>
+</span><span id="Expression.find_ancestor-385"><a href="#Expression.find_ancestor-385"><span class="linenos">385</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
+</span><span id="Expression.find_ancestor-386"><a href="#Expression.find_ancestor-386"><span class="linenos">386</span></a>
+</span><span id="Expression.find_ancestor-387"><a href="#Expression.find_ancestor-387"><span class="linenos">387</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression.find_ancestor-388"><a href="#Expression.find_ancestor-388"><span class="linenos">388</span></a><span class="sd"> The parent node.</span>
+</span><span id="Expression.find_ancestor-389"><a href="#Expression.find_ancestor-389"><span class="linenos">389</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.find_ancestor-390"><a href="#Expression.find_ancestor-390"><span class="linenos">390</span></a> <span class="n">ancestor</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
+</span><span id="Expression.find_ancestor-391"><a href="#Expression.find_ancestor-391"><span class="linenos">391</span></a> <span class="k">while</span> <span class="n">ancestor</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">ancestor</span><span class="p">,</span> <span class="n">expression_types</span><span class="p">):</span>
+</span><span id="Expression.find_ancestor-392"><a href="#Expression.find_ancestor-392"><span class="linenos">392</span></a> <span class="n">ancestor</span> <span class="o">=</span> <span class="n">ancestor</span><span class="o">.</span><span class="n">parent</span>
+</span><span id="Expression.find_ancestor-393"><a href="#Expression.find_ancestor-393"><span class="linenos">393</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">E</span><span class="p">,</span> <span class="n">ancestor</span><span class="p">)</span>
</span></pre></div>
@@ -14905,26 +15475,44 @@ yields those that match at least one of the specified expression types.</p>
</div>
<div id="Expression.parent_select" class="classattr">
- <div class="attr variable">
+ <input id="Expression.parent_select-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">parent_select</span><span class="annotation">: Optional[<a href="#Select">Select</a>]</span>
-
+ <label class="view-source-button" for="Expression.parent_select-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Expression.parent_select"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.parent_select-395"><a href="#Expression.parent_select-395"><span class="linenos">395</span></a> <span class="nd">@property</span>
+</span><span id="Expression.parent_select-396"><a href="#Expression.parent_select-396"><span class="linenos">396</span></a> <span class="k">def</span> <span class="nf">parent_select</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Select</span><span class="p">]:</span>
+</span><span id="Expression.parent_select-397"><a href="#Expression.parent_select-397"><span class="linenos">397</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.parent_select-398"><a href="#Expression.parent_select-398"><span class="linenos">398</span></a><span class="sd"> Returns the parent select statement.</span>
+</span><span id="Expression.parent_select-399"><a href="#Expression.parent_select-399"><span class="linenos">399</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.parent_select-400"><a href="#Expression.parent_select-400"><span class="linenos">400</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">find_ancestor</span><span class="p">(</span><span class="n">Select</span><span class="p">)</span>
+</span></pre></div>
+
+
<div class="docstring"><p>Returns the parent select statement.</p>
</div>
</div>
<div id="Expression.same_parent" class="classattr">
- <div class="attr variable">
+ <input id="Expression.same_parent-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">same_parent</span><span class="annotation">: bool</span>
-
+ <label class="view-source-button" for="Expression.same_parent-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Expression.same_parent"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.same_parent-402"><a href="#Expression.same_parent-402"><span class="linenos">402</span></a> <span class="nd">@property</span>
+</span><span id="Expression.same_parent-403"><a href="#Expression.same_parent-403"><span class="linenos">403</span></a> <span class="k">def</span> <span class="nf">same_parent</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="Expression.same_parent-404"><a href="#Expression.same_parent-404"><span class="linenos">404</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Returns if the parent is the same class as itself.&quot;&quot;&quot;</span>
+</span><span id="Expression.same_parent-405"><a href="#Expression.same_parent-405"><span class="linenos">405</span></a> <span class="k">return</span> <span class="nb">type</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">)</span> <span class="ow">is</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span>
+</span></pre></div>
+
+
<div class="docstring"><p>Returns if the parent is the same class as itself.</p>
</div>
@@ -14941,14 +15529,14 @@ yields those that match at least one of the specified expression types.</p>
</div>
<a class="headerlink" href="#Expression.root"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.root-401"><a href="#Expression.root-401"><span class="linenos">401</span></a> <span class="k">def</span> <span class="nf">root</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="Expression.root-402"><a href="#Expression.root-402"><span class="linenos">402</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.root-403"><a href="#Expression.root-403"><span class="linenos">403</span></a><span class="sd"> Returns the root expression of this tree.</span>
-</span><span id="Expression.root-404"><a href="#Expression.root-404"><span class="linenos">404</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.root-405"><a href="#Expression.root-405"><span class="linenos">405</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
-</span><span id="Expression.root-406"><a href="#Expression.root-406"><span class="linenos">406</span></a> <span class="k">while</span> <span class="n">expression</span><span class="o">.</span><span class="n">parent</span><span class="p">:</span>
-</span><span id="Expression.root-407"><a href="#Expression.root-407"><span class="linenos">407</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">parent</span>
-</span><span id="Expression.root-408"><a href="#Expression.root-408"><span class="linenos">408</span></a> <span class="k">return</span> <span class="n">expression</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.root-407"><a href="#Expression.root-407"><span class="linenos">407</span></a> <span class="k">def</span> <span class="nf">root</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="Expression.root-408"><a href="#Expression.root-408"><span class="linenos">408</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.root-409"><a href="#Expression.root-409"><span class="linenos">409</span></a><span class="sd"> Returns the root expression of this tree.</span>
+</span><span id="Expression.root-410"><a href="#Expression.root-410"><span class="linenos">410</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.root-411"><a href="#Expression.root-411"><span class="linenos">411</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
+</span><span id="Expression.root-412"><a href="#Expression.root-412"><span class="linenos">412</span></a> <span class="k">while</span> <span class="n">expression</span><span class="o">.</span><span class="n">parent</span><span class="p">:</span>
+</span><span id="Expression.root-413"><a href="#Expression.root-413"><span class="linenos">413</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">parent</span>
+</span><span id="Expression.root-414"><a href="#Expression.root-414"><span class="linenos">414</span></a> <span class="k">return</span> <span class="n">expression</span>
</span></pre></div>
@@ -14968,23 +15556,23 @@ yields those that match at least one of the specified expression types.</p>
</div>
<a class="headerlink" href="#Expression.walk"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.walk-410"><a href="#Expression.walk-410"><span class="linenos">410</span></a> <span class="k">def</span> <span class="nf">walk</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">prune</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
-</span><span id="Expression.walk-411"><a href="#Expression.walk-411"><span class="linenos">411</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.walk-412"><a href="#Expression.walk-412"><span class="linenos">412</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree.</span>
-</span><span id="Expression.walk-413"><a href="#Expression.walk-413"><span class="linenos">413</span></a>
-</span><span id="Expression.walk-414"><a href="#Expression.walk-414"><span class="linenos">414</span></a><span class="sd"> Args:</span>
-</span><span id="Expression.walk-415"><a href="#Expression.walk-415"><span class="linenos">415</span></a><span class="sd"> bfs (bool): if set to True the BFS traversal order will be applied,</span>
-</span><span id="Expression.walk-416"><a href="#Expression.walk-416"><span class="linenos">416</span></a><span class="sd"> otherwise the DFS traversal will be used instead.</span>
-</span><span id="Expression.walk-417"><a href="#Expression.walk-417"><span class="linenos">417</span></a><span class="sd"> prune ((node, parent, arg_key) -&gt; bool): callable that returns True if</span>
-</span><span id="Expression.walk-418"><a href="#Expression.walk-418"><span class="linenos">418</span></a><span class="sd"> the generator should stop traversing this branch of the tree.</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.walk-416"><a href="#Expression.walk-416"><span class="linenos">416</span></a> <span class="k">def</span> <span class="nf">walk</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">prune</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+</span><span id="Expression.walk-417"><a href="#Expression.walk-417"><span class="linenos">417</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.walk-418"><a href="#Expression.walk-418"><span class="linenos">418</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree.</span>
</span><span id="Expression.walk-419"><a href="#Expression.walk-419"><span class="linenos">419</span></a>
-</span><span id="Expression.walk-420"><a href="#Expression.walk-420"><span class="linenos">420</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression.walk-421"><a href="#Expression.walk-421"><span class="linenos">421</span></a><span class="sd"> the generator object.</span>
-</span><span id="Expression.walk-422"><a href="#Expression.walk-422"><span class="linenos">422</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.walk-423"><a href="#Expression.walk-423"><span class="linenos">423</span></a> <span class="k">if</span> <span class="n">bfs</span><span class="p">:</span>
-</span><span id="Expression.walk-424"><a href="#Expression.walk-424"><span class="linenos">424</span></a> <span class="k">yield from</span> <span class="bp">self</span><span class="o">.</span><span class="n">bfs</span><span class="p">(</span><span class="n">prune</span><span class="o">=</span><span class="n">prune</span><span class="p">)</span>
-</span><span id="Expression.walk-425"><a href="#Expression.walk-425"><span class="linenos">425</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="Expression.walk-426"><a href="#Expression.walk-426"><span class="linenos">426</span></a> <span class="k">yield from</span> <span class="bp">self</span><span class="o">.</span><span class="n">dfs</span><span class="p">(</span><span class="n">prune</span><span class="o">=</span><span class="n">prune</span><span class="p">)</span>
+</span><span id="Expression.walk-420"><a href="#Expression.walk-420"><span class="linenos">420</span></a><span class="sd"> Args:</span>
+</span><span id="Expression.walk-421"><a href="#Expression.walk-421"><span class="linenos">421</span></a><span class="sd"> bfs (bool): if set to True the BFS traversal order will be applied,</span>
+</span><span id="Expression.walk-422"><a href="#Expression.walk-422"><span class="linenos">422</span></a><span class="sd"> otherwise the DFS traversal will be used instead.</span>
+</span><span id="Expression.walk-423"><a href="#Expression.walk-423"><span class="linenos">423</span></a><span class="sd"> prune ((node, parent, arg_key) -&gt; bool): callable that returns True if</span>
+</span><span id="Expression.walk-424"><a href="#Expression.walk-424"><span class="linenos">424</span></a><span class="sd"> the generator should stop traversing this branch of the tree.</span>
+</span><span id="Expression.walk-425"><a href="#Expression.walk-425"><span class="linenos">425</span></a>
+</span><span id="Expression.walk-426"><a href="#Expression.walk-426"><span class="linenos">426</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression.walk-427"><a href="#Expression.walk-427"><span class="linenos">427</span></a><span class="sd"> the generator object.</span>
+</span><span id="Expression.walk-428"><a href="#Expression.walk-428"><span class="linenos">428</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.walk-429"><a href="#Expression.walk-429"><span class="linenos">429</span></a> <span class="k">if</span> <span class="n">bfs</span><span class="p">:</span>
+</span><span id="Expression.walk-430"><a href="#Expression.walk-430"><span class="linenos">430</span></a> <span class="k">yield from</span> <span class="bp">self</span><span class="o">.</span><span class="n">bfs</span><span class="p">(</span><span class="n">prune</span><span class="o">=</span><span class="n">prune</span><span class="p">)</span>
+</span><span id="Expression.walk-431"><a href="#Expression.walk-431"><span class="linenos">431</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="Expression.walk-432"><a href="#Expression.walk-432"><span class="linenos">432</span></a> <span class="k">yield from</span> <span class="bp">self</span><span class="o">.</span><span class="n">dfs</span><span class="p">(</span><span class="n">prune</span><span class="o">=</span><span class="n">prune</span><span class="p">)</span>
</span></pre></div>
@@ -15019,21 +15607,21 @@ the generator should stop traversing this branch of the tree.</li>
</div>
<a class="headerlink" href="#Expression.dfs"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.dfs-428"><a href="#Expression.dfs-428"><span class="linenos">428</span></a> <span class="k">def</span> <span class="nf">dfs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">prune</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
-</span><span id="Expression.dfs-429"><a href="#Expression.dfs-429"><span class="linenos">429</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.dfs-430"><a href="#Expression.dfs-430"><span class="linenos">430</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree in</span>
-</span><span id="Expression.dfs-431"><a href="#Expression.dfs-431"><span class="linenos">431</span></a><span class="sd"> the DFS (Depth-first) order.</span>
-</span><span id="Expression.dfs-432"><a href="#Expression.dfs-432"><span class="linenos">432</span></a>
-</span><span id="Expression.dfs-433"><a href="#Expression.dfs-433"><span class="linenos">433</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression.dfs-434"><a href="#Expression.dfs-434"><span class="linenos">434</span></a><span class="sd"> The generator object.</span>
-</span><span id="Expression.dfs-435"><a href="#Expression.dfs-435"><span class="linenos">435</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.dfs-436"><a href="#Expression.dfs-436"><span class="linenos">436</span></a> <span class="n">parent</span> <span class="o">=</span> <span class="n">parent</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
-</span><span id="Expression.dfs-437"><a href="#Expression.dfs-437"><span class="linenos">437</span></a> <span class="k">yield</span> <span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span>
-</span><span id="Expression.dfs-438"><a href="#Expression.dfs-438"><span class="linenos">438</span></a> <span class="k">if</span> <span class="n">prune</span> <span class="ow">and</span> <span class="n">prune</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
-</span><span id="Expression.dfs-439"><a href="#Expression.dfs-439"><span class="linenos">439</span></a> <span class="k">return</span>
-</span><span id="Expression.dfs-440"><a href="#Expression.dfs-440"><span class="linenos">440</span></a>
-</span><span id="Expression.dfs-441"><a href="#Expression.dfs-441"><span class="linenos">441</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">iter_expressions</span><span class="p">():</span>
-</span><span id="Expression.dfs-442"><a href="#Expression.dfs-442"><span class="linenos">442</span></a> <span class="k">yield from</span> <span class="n">v</span><span class="o">.</span><span class="n">dfs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">k</span><span class="p">,</span> <span class="n">prune</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.dfs-434"><a href="#Expression.dfs-434"><span class="linenos">434</span></a> <span class="k">def</span> <span class="nf">dfs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">prune</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+</span><span id="Expression.dfs-435"><a href="#Expression.dfs-435"><span class="linenos">435</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.dfs-436"><a href="#Expression.dfs-436"><span class="linenos">436</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree in</span>
+</span><span id="Expression.dfs-437"><a href="#Expression.dfs-437"><span class="linenos">437</span></a><span class="sd"> the DFS (Depth-first) order.</span>
+</span><span id="Expression.dfs-438"><a href="#Expression.dfs-438"><span class="linenos">438</span></a>
+</span><span id="Expression.dfs-439"><a href="#Expression.dfs-439"><span class="linenos">439</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression.dfs-440"><a href="#Expression.dfs-440"><span class="linenos">440</span></a><span class="sd"> The generator object.</span>
+</span><span id="Expression.dfs-441"><a href="#Expression.dfs-441"><span class="linenos">441</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.dfs-442"><a href="#Expression.dfs-442"><span class="linenos">442</span></a> <span class="n">parent</span> <span class="o">=</span> <span class="n">parent</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
+</span><span id="Expression.dfs-443"><a href="#Expression.dfs-443"><span class="linenos">443</span></a> <span class="k">yield</span> <span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span>
+</span><span id="Expression.dfs-444"><a href="#Expression.dfs-444"><span class="linenos">444</span></a> <span class="k">if</span> <span class="n">prune</span> <span class="ow">and</span> <span class="n">prune</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
+</span><span id="Expression.dfs-445"><a href="#Expression.dfs-445"><span class="linenos">445</span></a> <span class="k">return</span>
+</span><span id="Expression.dfs-446"><a href="#Expression.dfs-446"><span class="linenos">446</span></a>
+</span><span id="Expression.dfs-447"><a href="#Expression.dfs-447"><span class="linenos">447</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">iter_expressions</span><span class="p">():</span>
+</span><span id="Expression.dfs-448"><a href="#Expression.dfs-448"><span class="linenos">448</span></a> <span class="k">yield from</span> <span class="n">v</span><span class="o">.</span><span class="n">dfs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">k</span><span class="p">,</span> <span class="n">prune</span><span class="p">)</span>
</span></pre></div>
@@ -15060,25 +15648,25 @@ the DFS (Depth-first) order.</p>
</div>
<a class="headerlink" href="#Expression.bfs"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.bfs-444"><a href="#Expression.bfs-444"><span class="linenos">444</span></a> <span class="k">def</span> <span class="nf">bfs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">prune</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
-</span><span id="Expression.bfs-445"><a href="#Expression.bfs-445"><span class="linenos">445</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.bfs-446"><a href="#Expression.bfs-446"><span class="linenos">446</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree in</span>
-</span><span id="Expression.bfs-447"><a href="#Expression.bfs-447"><span class="linenos">447</span></a><span class="sd"> the BFS (Breadth-first) order.</span>
-</span><span id="Expression.bfs-448"><a href="#Expression.bfs-448"><span class="linenos">448</span></a>
-</span><span id="Expression.bfs-449"><a href="#Expression.bfs-449"><span class="linenos">449</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression.bfs-450"><a href="#Expression.bfs-450"><span class="linenos">450</span></a><span class="sd"> The generator object.</span>
-</span><span id="Expression.bfs-451"><a href="#Expression.bfs-451"><span class="linenos">451</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.bfs-452"><a href="#Expression.bfs-452"><span class="linenos">452</span></a> <span class="n">queue</span> <span class="o">=</span> <span class="n">deque</span><span class="p">([(</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="kc">None</span><span class="p">)])</span>
-</span><span id="Expression.bfs-453"><a href="#Expression.bfs-453"><span class="linenos">453</span></a>
-</span><span id="Expression.bfs-454"><a href="#Expression.bfs-454"><span class="linenos">454</span></a> <span class="k">while</span> <span class="n">queue</span><span class="p">:</span>
-</span><span id="Expression.bfs-455"><a href="#Expression.bfs-455"><span class="linenos">455</span></a> <span class="n">item</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span> <span class="o">=</span> <span class="n">queue</span><span class="o">.</span><span class="n">popleft</span><span class="p">()</span>
-</span><span id="Expression.bfs-456"><a href="#Expression.bfs-456"><span class="linenos">456</span></a>
-</span><span id="Expression.bfs-457"><a href="#Expression.bfs-457"><span class="linenos">457</span></a> <span class="k">yield</span> <span class="n">item</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span>
-</span><span id="Expression.bfs-458"><a href="#Expression.bfs-458"><span class="linenos">458</span></a> <span class="k">if</span> <span class="n">prune</span> <span class="ow">and</span> <span class="n">prune</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
-</span><span id="Expression.bfs-459"><a href="#Expression.bfs-459"><span class="linenos">459</span></a> <span class="k">continue</span>
-</span><span id="Expression.bfs-460"><a href="#Expression.bfs-460"><span class="linenos">460</span></a>
-</span><span id="Expression.bfs-461"><a href="#Expression.bfs-461"><span class="linenos">461</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">item</span><span class="o">.</span><span class="n">iter_expressions</span><span class="p">():</span>
-</span><span id="Expression.bfs-462"><a href="#Expression.bfs-462"><span class="linenos">462</span></a> <span class="n">queue</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">v</span><span class="p">,</span> <span class="n">item</span><span class="p">,</span> <span class="n">k</span><span class="p">))</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.bfs-450"><a href="#Expression.bfs-450"><span class="linenos">450</span></a> <span class="k">def</span> <span class="nf">bfs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">prune</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+</span><span id="Expression.bfs-451"><a href="#Expression.bfs-451"><span class="linenos">451</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.bfs-452"><a href="#Expression.bfs-452"><span class="linenos">452</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree in</span>
+</span><span id="Expression.bfs-453"><a href="#Expression.bfs-453"><span class="linenos">453</span></a><span class="sd"> the BFS (Breadth-first) order.</span>
+</span><span id="Expression.bfs-454"><a href="#Expression.bfs-454"><span class="linenos">454</span></a>
+</span><span id="Expression.bfs-455"><a href="#Expression.bfs-455"><span class="linenos">455</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression.bfs-456"><a href="#Expression.bfs-456"><span class="linenos">456</span></a><span class="sd"> The generator object.</span>
+</span><span id="Expression.bfs-457"><a href="#Expression.bfs-457"><span class="linenos">457</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.bfs-458"><a href="#Expression.bfs-458"><span class="linenos">458</span></a> <span class="n">queue</span> <span class="o">=</span> <span class="n">deque</span><span class="p">([(</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="kc">None</span><span class="p">)])</span>
+</span><span id="Expression.bfs-459"><a href="#Expression.bfs-459"><span class="linenos">459</span></a>
+</span><span id="Expression.bfs-460"><a href="#Expression.bfs-460"><span class="linenos">460</span></a> <span class="k">while</span> <span class="n">queue</span><span class="p">:</span>
+</span><span id="Expression.bfs-461"><a href="#Expression.bfs-461"><span class="linenos">461</span></a> <span class="n">item</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span> <span class="o">=</span> <span class="n">queue</span><span class="o">.</span><span class="n">popleft</span><span class="p">()</span>
+</span><span id="Expression.bfs-462"><a href="#Expression.bfs-462"><span class="linenos">462</span></a>
+</span><span id="Expression.bfs-463"><a href="#Expression.bfs-463"><span class="linenos">463</span></a> <span class="k">yield</span> <span class="n">item</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span>
+</span><span id="Expression.bfs-464"><a href="#Expression.bfs-464"><span class="linenos">464</span></a> <span class="k">if</span> <span class="n">prune</span> <span class="ow">and</span> <span class="n">prune</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
+</span><span id="Expression.bfs-465"><a href="#Expression.bfs-465"><span class="linenos">465</span></a> <span class="k">continue</span>
+</span><span id="Expression.bfs-466"><a href="#Expression.bfs-466"><span class="linenos">466</span></a>
+</span><span id="Expression.bfs-467"><a href="#Expression.bfs-467"><span class="linenos">467</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">item</span><span class="o">.</span><span class="n">iter_expressions</span><span class="p">():</span>
+</span><span id="Expression.bfs-468"><a href="#Expression.bfs-468"><span class="linenos">468</span></a> <span class="n">queue</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">v</span><span class="p">,</span> <span class="n">item</span><span class="p">,</span> <span class="n">k</span><span class="p">))</span>
</span></pre></div>
@@ -15105,14 +15693,14 @@ the BFS (Breadth-first) order.</p>
</div>
<a class="headerlink" href="#Expression.unnest"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.unnest-464"><a href="#Expression.unnest-464"><span class="linenos">464</span></a> <span class="k">def</span> <span class="nf">unnest</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Expression.unnest-465"><a href="#Expression.unnest-465"><span class="linenos">465</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.unnest-466"><a href="#Expression.unnest-466"><span class="linenos">466</span></a><span class="sd"> Returns the first non parenthesis child or self.</span>
-</span><span id="Expression.unnest-467"><a href="#Expression.unnest-467"><span class="linenos">467</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.unnest-468"><a href="#Expression.unnest-468"><span class="linenos">468</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
-</span><span id="Expression.unnest-469"><a href="#Expression.unnest-469"><span class="linenos">469</span></a> <span class="k">while</span> <span class="nb">type</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> <span class="ow">is</span> <span class="n">Paren</span><span class="p">:</span>
-</span><span id="Expression.unnest-470"><a href="#Expression.unnest-470"><span class="linenos">470</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span>
-</span><span id="Expression.unnest-471"><a href="#Expression.unnest-471"><span class="linenos">471</span></a> <span class="k">return</span> <span class="n">expression</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.unnest-470"><a href="#Expression.unnest-470"><span class="linenos">470</span></a> <span class="k">def</span> <span class="nf">unnest</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="Expression.unnest-471"><a href="#Expression.unnest-471"><span class="linenos">471</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.unnest-472"><a href="#Expression.unnest-472"><span class="linenos">472</span></a><span class="sd"> Returns the first non parenthesis child or self.</span>
+</span><span id="Expression.unnest-473"><a href="#Expression.unnest-473"><span class="linenos">473</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.unnest-474"><a href="#Expression.unnest-474"><span class="linenos">474</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
+</span><span id="Expression.unnest-475"><a href="#Expression.unnest-475"><span class="linenos">475</span></a> <span class="k">while</span> <span class="nb">type</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> <span class="ow">is</span> <span class="n">Paren</span><span class="p">:</span>
+</span><span id="Expression.unnest-476"><a href="#Expression.unnest-476"><span class="linenos">476</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span>
+</span><span id="Expression.unnest-477"><a href="#Expression.unnest-477"><span class="linenos">477</span></a> <span class="k">return</span> <span class="n">expression</span>
</span></pre></div>
@@ -15132,13 +15720,13 @@ the BFS (Breadth-first) order.</p>
</div>
<a class="headerlink" href="#Expression.unalias"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.unalias-473"><a href="#Expression.unalias-473"><span class="linenos">473</span></a> <span class="k">def</span> <span class="nf">unalias</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Expression.unalias-474"><a href="#Expression.unalias-474"><span class="linenos">474</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.unalias-475"><a href="#Expression.unalias-475"><span class="linenos">475</span></a><span class="sd"> Returns the inner expression if this is an Alias.</span>
-</span><span id="Expression.unalias-476"><a href="#Expression.unalias-476"><span class="linenos">476</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.unalias-477"><a href="#Expression.unalias-477"><span class="linenos">477</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Alias</span><span class="p">):</span>
-</span><span id="Expression.unalias-478"><a href="#Expression.unalias-478"><span class="linenos">478</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span>
-</span><span id="Expression.unalias-479"><a href="#Expression.unalias-479"><span class="linenos">479</span></a> <span class="k">return</span> <span class="bp">self</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.unalias-479"><a href="#Expression.unalias-479"><span class="linenos">479</span></a> <span class="k">def</span> <span class="nf">unalias</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="Expression.unalias-480"><a href="#Expression.unalias-480"><span class="linenos">480</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.unalias-481"><a href="#Expression.unalias-481"><span class="linenos">481</span></a><span class="sd"> Returns the inner expression if this is an Alias.</span>
+</span><span id="Expression.unalias-482"><a href="#Expression.unalias-482"><span class="linenos">482</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.unalias-483"><a href="#Expression.unalias-483"><span class="linenos">483</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Alias</span><span class="p">):</span>
+</span><span id="Expression.unalias-484"><a href="#Expression.unalias-484"><span class="linenos">484</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span>
+</span><span id="Expression.unalias-485"><a href="#Expression.unalias-485"><span class="linenos">485</span></a> <span class="k">return</span> <span class="bp">self</span>
</span></pre></div>
@@ -15158,11 +15746,11 @@ the BFS (Breadth-first) order.</p>
</div>
<a class="headerlink" href="#Expression.unnest_operands"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.unnest_operands-481"><a href="#Expression.unnest_operands-481"><span class="linenos">481</span></a> <span class="k">def</span> <span class="nf">unnest_operands</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Expression.unnest_operands-482"><a href="#Expression.unnest_operands-482"><span class="linenos">482</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.unnest_operands-483"><a href="#Expression.unnest_operands-483"><span class="linenos">483</span></a><span class="sd"> Returns unnested operands as a tuple.</span>
-</span><span id="Expression.unnest_operands-484"><a href="#Expression.unnest_operands-484"><span class="linenos">484</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.unnest_operands-485"><a href="#Expression.unnest_operands-485"><span class="linenos">485</span></a> <span class="k">return</span> <span class="nb">tuple</span><span class="p">(</span><span class="n">arg</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span> <span class="k">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">arg</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">iter_expressions</span><span class="p">())</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.unnest_operands-487"><a href="#Expression.unnest_operands-487"><span class="linenos">487</span></a> <span class="k">def</span> <span class="nf">unnest_operands</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="Expression.unnest_operands-488"><a href="#Expression.unnest_operands-488"><span class="linenos">488</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.unnest_operands-489"><a href="#Expression.unnest_operands-489"><span class="linenos">489</span></a><span class="sd"> Returns unnested operands as a tuple.</span>
+</span><span id="Expression.unnest_operands-490"><a href="#Expression.unnest_operands-490"><span class="linenos">490</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.unnest_operands-491"><a href="#Expression.unnest_operands-491"><span class="linenos">491</span></a> <span class="k">return</span> <span class="nb">tuple</span><span class="p">(</span><span class="n">arg</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span> <span class="k">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">arg</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">iter_expressions</span><span class="p">())</span>
</span></pre></div>
@@ -15182,15 +15770,15 @@ the BFS (Breadth-first) order.</p>
</div>
<a class="headerlink" href="#Expression.flatten"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.flatten-487"><a href="#Expression.flatten-487"><span class="linenos">487</span></a> <span class="k">def</span> <span class="nf">flatten</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">unnest</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
-</span><span id="Expression.flatten-488"><a href="#Expression.flatten-488"><span class="linenos">488</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.flatten-489"><a href="#Expression.flatten-489"><span class="linenos">489</span></a><span class="sd"> Returns a generator which yields child nodes whose parents are the same class.</span>
-</span><span id="Expression.flatten-490"><a href="#Expression.flatten-490"><span class="linenos">490</span></a>
-</span><span id="Expression.flatten-491"><a href="#Expression.flatten-491"><span class="linenos">491</span></a><span class="sd"> A AND B AND C -&gt; [A, B, C]</span>
-</span><span id="Expression.flatten-492"><a href="#Expression.flatten-492"><span class="linenos">492</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.flatten-493"><a href="#Expression.flatten-493"><span class="linenos">493</span></a> <span class="k">for</span> <span class="n">node</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">dfs</span><span class="p">(</span><span class="n">prune</span><span class="o">=</span><span class="k">lambda</span> <span class="n">n</span><span class="p">,</span> <span class="n">p</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span><span class="p">:</span> <span class="n">p</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">type</span><span class="p">(</span><span class="n">n</span><span class="p">)</span> <span class="ow">is</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">):</span>
-</span><span id="Expression.flatten-494"><a href="#Expression.flatten-494"><span class="linenos">494</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">type</span><span class="p">(</span><span class="n">node</span><span class="p">)</span> <span class="ow">is</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">:</span>
-</span><span id="Expression.flatten-495"><a href="#Expression.flatten-495"><span class="linenos">495</span></a> <span class="k">yield</span> <span class="n">node</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span> <span class="k">if</span> <span class="n">unnest</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">Subquery</span><span class="p">)</span> <span class="k">else</span> <span class="n">node</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.flatten-493"><a href="#Expression.flatten-493"><span class="linenos">493</span></a> <span class="k">def</span> <span class="nf">flatten</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">unnest</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
+</span><span id="Expression.flatten-494"><a href="#Expression.flatten-494"><span class="linenos">494</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.flatten-495"><a href="#Expression.flatten-495"><span class="linenos">495</span></a><span class="sd"> Returns a generator which yields child nodes whose parents are the same class.</span>
+</span><span id="Expression.flatten-496"><a href="#Expression.flatten-496"><span class="linenos">496</span></a>
+</span><span id="Expression.flatten-497"><a href="#Expression.flatten-497"><span class="linenos">497</span></a><span class="sd"> A AND B AND C -&gt; [A, B, C]</span>
+</span><span id="Expression.flatten-498"><a href="#Expression.flatten-498"><span class="linenos">498</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.flatten-499"><a href="#Expression.flatten-499"><span class="linenos">499</span></a> <span class="k">for</span> <span class="n">node</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">dfs</span><span class="p">(</span><span class="n">prune</span><span class="o">=</span><span class="k">lambda</span> <span class="n">n</span><span class="p">,</span> <span class="n">p</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span><span class="p">:</span> <span class="n">p</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">type</span><span class="p">(</span><span class="n">n</span><span class="p">)</span> <span class="ow">is</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">):</span>
+</span><span id="Expression.flatten-500"><a href="#Expression.flatten-500"><span class="linenos">500</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">type</span><span class="p">(</span><span class="n">node</span><span class="p">)</span> <span class="ow">is</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">:</span>
+</span><span id="Expression.flatten-501"><a href="#Expression.flatten-501"><span class="linenos">501</span></a> <span class="k">yield</span> <span class="n">node</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span> <span class="k">if</span> <span class="n">unnest</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">Subquery</span><span class="p">)</span> <span class="k">else</span> <span class="n">node</span>
</span></pre></div>
@@ -15201,6 +15789,32 @@ the BFS (Breadth-first) order.</p>
</div>
+ <div id="Expression.to_s" class="classattr">
+ <input id="Expression.to_s-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr function">
+
+ <span class="def">def</span>
+ <span class="name">to_s</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span></span><span class="return-annotation">) -> <span class="nb">str</span>:</span></span>
+
+ <label class="view-source-button" for="Expression.to_s-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#Expression.to_s"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.to_s-509"><a href="#Expression.to_s-509"><span class="linenos">509</span></a> <span class="k">def</span> <span class="nf">to_s</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Expression.to_s-510"><a href="#Expression.to_s-510"><span class="linenos">510</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.to_s-511"><a href="#Expression.to_s-511"><span class="linenos">511</span></a><span class="sd"> Same as __repr__, but includes additional information which can be useful</span>
+</span><span id="Expression.to_s-512"><a href="#Expression.to_s-512"><span class="linenos">512</span></a><span class="sd"> for debugging, like empty or missing args and the AST nodes&#39; object IDs.</span>
+</span><span id="Expression.to_s-513"><a href="#Expression.to_s-513"><span class="linenos">513</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.to_s-514"><a href="#Expression.to_s-514"><span class="linenos">514</span></a> <span class="k">return</span> <span class="n">_to_s</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">verbose</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+</span></pre></div>
+
+
+ <div class="docstring"><p>Same as __repr__, but includes additional information which can be useful
+for debugging, like empty or missing args and the AST nodes' object IDs.</p>
+</div>
+
+
+ </div>
<div id="Expression.sql" class="classattr">
<input id="Expression.sql-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
@@ -15212,20 +15826,20 @@ the BFS (Breadth-first) order.</p>
</div>
<a class="headerlink" href="#Expression.sql"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.sql-503"><a href="#Expression.sql-503"><span class="linenos">503</span></a> <span class="k">def</span> <span class="nf">sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Expression.sql-504"><a href="#Expression.sql-504"><span class="linenos">504</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.sql-505"><a href="#Expression.sql-505"><span class="linenos">505</span></a><span class="sd"> Returns SQL string representation of this tree.</span>
-</span><span id="Expression.sql-506"><a href="#Expression.sql-506"><span class="linenos">506</span></a>
-</span><span id="Expression.sql-507"><a href="#Expression.sql-507"><span class="linenos">507</span></a><span class="sd"> Args:</span>
-</span><span id="Expression.sql-508"><a href="#Expression.sql-508"><span class="linenos">508</span></a><span class="sd"> dialect: the dialect of the output SQL string (eg. &quot;spark&quot;, &quot;hive&quot;, &quot;presto&quot;, &quot;mysql&quot;).</span>
-</span><span id="Expression.sql-509"><a href="#Expression.sql-509"><span class="linenos">509</span></a><span class="sd"> opts: other `sqlglot.generator.Generator` options.</span>
-</span><span id="Expression.sql-510"><a href="#Expression.sql-510"><span class="linenos">510</span></a>
-</span><span id="Expression.sql-511"><a href="#Expression.sql-511"><span class="linenos">511</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression.sql-512"><a href="#Expression.sql-512"><span class="linenos">512</span></a><span class="sd"> The SQL string.</span>
-</span><span id="Expression.sql-513"><a href="#Expression.sql-513"><span class="linenos">513</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.sql-514"><a href="#Expression.sql-514"><span class="linenos">514</span></a> <span class="kn">from</span> <span class="nn">sqlglot.dialects</span> <span class="kn">import</span> <span class="n">Dialect</span>
-</span><span id="Expression.sql-515"><a href="#Expression.sql-515"><span class="linenos">515</span></a>
-</span><span id="Expression.sql-516"><a href="#Expression.sql-516"><span class="linenos">516</span></a> <span class="k">return</span> <span class="n">Dialect</span><span class="o">.</span><span class="n">get_or_raise</span><span class="p">(</span><span class="n">dialect</span><span class="p">)</span><span class="o">.</span><span class="n">generate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.sql-516"><a href="#Expression.sql-516"><span class="linenos">516</span></a> <span class="k">def</span> <span class="nf">sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Expression.sql-517"><a href="#Expression.sql-517"><span class="linenos">517</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.sql-518"><a href="#Expression.sql-518"><span class="linenos">518</span></a><span class="sd"> Returns SQL string representation of this tree.</span>
+</span><span id="Expression.sql-519"><a href="#Expression.sql-519"><span class="linenos">519</span></a>
+</span><span id="Expression.sql-520"><a href="#Expression.sql-520"><span class="linenos">520</span></a><span class="sd"> Args:</span>
+</span><span id="Expression.sql-521"><a href="#Expression.sql-521"><span class="linenos">521</span></a><span class="sd"> dialect: the dialect of the output SQL string (eg. &quot;spark&quot;, &quot;hive&quot;, &quot;presto&quot;, &quot;mysql&quot;).</span>
+</span><span id="Expression.sql-522"><a href="#Expression.sql-522"><span class="linenos">522</span></a><span class="sd"> opts: other `sqlglot.generator.Generator` options.</span>
+</span><span id="Expression.sql-523"><a href="#Expression.sql-523"><span class="linenos">523</span></a>
+</span><span id="Expression.sql-524"><a href="#Expression.sql-524"><span class="linenos">524</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression.sql-525"><a href="#Expression.sql-525"><span class="linenos">525</span></a><span class="sd"> The SQL string.</span>
+</span><span id="Expression.sql-526"><a href="#Expression.sql-526"><span class="linenos">526</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.sql-527"><a href="#Expression.sql-527"><span class="linenos">527</span></a> <span class="kn">from</span> <span class="nn">sqlglot.dialects</span> <span class="kn">import</span> <span class="n">Dialect</span>
+</span><span id="Expression.sql-528"><a href="#Expression.sql-528"><span class="linenos">528</span></a>
+</span><span id="Expression.sql-529"><a href="#Expression.sql-529"><span class="linenos">529</span></a> <span class="k">return</span> <span class="n">Dialect</span><span class="o">.</span><span class="n">get_or_raise</span><span class="p">(</span><span class="n">dialect</span><span class="p">)</span><span class="o">.</span><span class="n">generate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span></pre></div>
@@ -15258,32 +15872,32 @@ the BFS (Breadth-first) order.</p>
</div>
<a class="headerlink" href="#Expression.transform"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.transform-542"><a href="#Expression.transform-542"><span class="linenos">542</span></a> <span class="k">def</span> <span class="nf">transform</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fun</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
-</span><span id="Expression.transform-543"><a href="#Expression.transform-543"><span class="linenos">543</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.transform-544"><a href="#Expression.transform-544"><span class="linenos">544</span></a><span class="sd"> Recursively visits all tree nodes (excluding already transformed ones)</span>
-</span><span id="Expression.transform-545"><a href="#Expression.transform-545"><span class="linenos">545</span></a><span class="sd"> and applies the given transformation function to each node.</span>
-</span><span id="Expression.transform-546"><a href="#Expression.transform-546"><span class="linenos">546</span></a>
-</span><span id="Expression.transform-547"><a href="#Expression.transform-547"><span class="linenos">547</span></a><span class="sd"> Args:</span>
-</span><span id="Expression.transform-548"><a href="#Expression.transform-548"><span class="linenos">548</span></a><span class="sd"> fun (function): a function which takes a node as an argument and returns a</span>
-</span><span id="Expression.transform-549"><a href="#Expression.transform-549"><span class="linenos">549</span></a><span class="sd"> new transformed node or the same node without modifications. If the function</span>
-</span><span id="Expression.transform-550"><a href="#Expression.transform-550"><span class="linenos">550</span></a><span class="sd"> returns None, then the corresponding node will be removed from the syntax tree.</span>
-</span><span id="Expression.transform-551"><a href="#Expression.transform-551"><span class="linenos">551</span></a><span class="sd"> copy (bool): if set to True a new tree instance is constructed, otherwise the tree is</span>
-</span><span id="Expression.transform-552"><a href="#Expression.transform-552"><span class="linenos">552</span></a><span class="sd"> modified in place.</span>
-</span><span id="Expression.transform-553"><a href="#Expression.transform-553"><span class="linenos">553</span></a>
-</span><span id="Expression.transform-554"><a href="#Expression.transform-554"><span class="linenos">554</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression.transform-555"><a href="#Expression.transform-555"><span class="linenos">555</span></a><span class="sd"> The transformed tree.</span>
-</span><span id="Expression.transform-556"><a href="#Expression.transform-556"><span class="linenos">556</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.transform-557"><a href="#Expression.transform-557"><span class="linenos">557</span></a> <span class="n">node</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">copy</span> <span class="k">else</span> <span class="bp">self</span>
-</span><span id="Expression.transform-558"><a href="#Expression.transform-558"><span class="linenos">558</span></a> <span class="n">new_node</span> <span class="o">=</span> <span class="n">fun</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
-</span><span id="Expression.transform-559"><a href="#Expression.transform-559"><span class="linenos">559</span></a>
-</span><span id="Expression.transform-560"><a href="#Expression.transform-560"><span class="linenos">560</span></a> <span class="k">if</span> <span class="n">new_node</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">new_node</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
-</span><span id="Expression.transform-561"><a href="#Expression.transform-561"><span class="linenos">561</span></a> <span class="k">return</span> <span class="n">new_node</span>
-</span><span id="Expression.transform-562"><a href="#Expression.transform-562"><span class="linenos">562</span></a> <span class="k">if</span> <span class="n">new_node</span> <span class="ow">is</span> <span class="ow">not</span> <span class="n">node</span><span class="p">:</span>
-</span><span id="Expression.transform-563"><a href="#Expression.transform-563"><span class="linenos">563</span></a> <span class="n">new_node</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">node</span><span class="o">.</span><span class="n">parent</span>
-</span><span id="Expression.transform-564"><a href="#Expression.transform-564"><span class="linenos">564</span></a> <span class="k">return</span> <span class="n">new_node</span>
-</span><span id="Expression.transform-565"><a href="#Expression.transform-565"><span class="linenos">565</span></a>
-</span><span id="Expression.transform-566"><a href="#Expression.transform-566"><span class="linenos">566</span></a> <span class="n">replace_children</span><span class="p">(</span><span class="n">new_node</span><span class="p">,</span> <span class="k">lambda</span> <span class="n">child</span><span class="p">:</span> <span class="n">child</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">fun</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">))</span>
-</span><span id="Expression.transform-567"><a href="#Expression.transform-567"><span class="linenos">567</span></a> <span class="k">return</span> <span class="n">new_node</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.transform-531"><a href="#Expression.transform-531"><span class="linenos">531</span></a> <span class="k">def</span> <span class="nf">transform</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fun</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
+</span><span id="Expression.transform-532"><a href="#Expression.transform-532"><span class="linenos">532</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.transform-533"><a href="#Expression.transform-533"><span class="linenos">533</span></a><span class="sd"> Recursively visits all tree nodes (excluding already transformed ones)</span>
+</span><span id="Expression.transform-534"><a href="#Expression.transform-534"><span class="linenos">534</span></a><span class="sd"> and applies the given transformation function to each node.</span>
+</span><span id="Expression.transform-535"><a href="#Expression.transform-535"><span class="linenos">535</span></a>
+</span><span id="Expression.transform-536"><a href="#Expression.transform-536"><span class="linenos">536</span></a><span class="sd"> Args:</span>
+</span><span id="Expression.transform-537"><a href="#Expression.transform-537"><span class="linenos">537</span></a><span class="sd"> fun (function): a function which takes a node as an argument and returns a</span>
+</span><span id="Expression.transform-538"><a href="#Expression.transform-538"><span class="linenos">538</span></a><span class="sd"> new transformed node or the same node without modifications. If the function</span>
+</span><span id="Expression.transform-539"><a href="#Expression.transform-539"><span class="linenos">539</span></a><span class="sd"> returns None, then the corresponding node will be removed from the syntax tree.</span>
+</span><span id="Expression.transform-540"><a href="#Expression.transform-540"><span class="linenos">540</span></a><span class="sd"> copy (bool): if set to True a new tree instance is constructed, otherwise the tree is</span>
+</span><span id="Expression.transform-541"><a href="#Expression.transform-541"><span class="linenos">541</span></a><span class="sd"> modified in place.</span>
+</span><span id="Expression.transform-542"><a href="#Expression.transform-542"><span class="linenos">542</span></a>
+</span><span id="Expression.transform-543"><a href="#Expression.transform-543"><span class="linenos">543</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression.transform-544"><a href="#Expression.transform-544"><span class="linenos">544</span></a><span class="sd"> The transformed tree.</span>
+</span><span id="Expression.transform-545"><a href="#Expression.transform-545"><span class="linenos">545</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.transform-546"><a href="#Expression.transform-546"><span class="linenos">546</span></a> <span class="n">node</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">copy</span> <span class="k">else</span> <span class="bp">self</span>
+</span><span id="Expression.transform-547"><a href="#Expression.transform-547"><span class="linenos">547</span></a> <span class="n">new_node</span> <span class="o">=</span> <span class="n">fun</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+</span><span id="Expression.transform-548"><a href="#Expression.transform-548"><span class="linenos">548</span></a>
+</span><span id="Expression.transform-549"><a href="#Expression.transform-549"><span class="linenos">549</span></a> <span class="k">if</span> <span class="n">new_node</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">new_node</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
+</span><span id="Expression.transform-550"><a href="#Expression.transform-550"><span class="linenos">550</span></a> <span class="k">return</span> <span class="n">new_node</span>
+</span><span id="Expression.transform-551"><a href="#Expression.transform-551"><span class="linenos">551</span></a> <span class="k">if</span> <span class="n">new_node</span> <span class="ow">is</span> <span class="ow">not</span> <span class="n">node</span><span class="p">:</span>
+</span><span id="Expression.transform-552"><a href="#Expression.transform-552"><span class="linenos">552</span></a> <span class="n">new_node</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">node</span><span class="o">.</span><span class="n">parent</span>
+</span><span id="Expression.transform-553"><a href="#Expression.transform-553"><span class="linenos">553</span></a> <span class="k">return</span> <span class="n">new_node</span>
+</span><span id="Expression.transform-554"><a href="#Expression.transform-554"><span class="linenos">554</span></a>
+</span><span id="Expression.transform-555"><a href="#Expression.transform-555"><span class="linenos">555</span></a> <span class="n">replace_children</span><span class="p">(</span><span class="n">new_node</span><span class="p">,</span> <span class="k">lambda</span> <span class="n">child</span><span class="p">:</span> <span class="n">child</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">fun</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">))</span>
+</span><span id="Expression.transform-556"><a href="#Expression.transform-556"><span class="linenos">556</span></a> <span class="k">return</span> <span class="n">new_node</span>
</span></pre></div>
@@ -15320,32 +15934,33 @@ modified in place.</li>
</div>
<a class="headerlink" href="#Expression.replace"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.replace-577"><a href="#Expression.replace-577"><span class="linenos">577</span></a> <span class="k">def</span> <span class="nf">replace</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">):</span>
-</span><span id="Expression.replace-578"><a href="#Expression.replace-578"><span class="linenos">578</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.replace-579"><a href="#Expression.replace-579"><span class="linenos">579</span></a><span class="sd"> Swap out this expression with a new expression.</span>
-</span><span id="Expression.replace-580"><a href="#Expression.replace-580"><span class="linenos">580</span></a>
-</span><span id="Expression.replace-581"><a href="#Expression.replace-581"><span class="linenos">581</span></a><span class="sd"> For example::</span>
-</span><span id="Expression.replace-582"><a href="#Expression.replace-582"><span class="linenos">582</span></a>
-</span><span id="Expression.replace-583"><a href="#Expression.replace-583"><span class="linenos">583</span></a><span class="sd"> &gt;&gt;&gt; tree = Select().select(&quot;x&quot;).from_(&quot;tbl&quot;)</span>
-</span><span id="Expression.replace-584"><a href="#Expression.replace-584"><span class="linenos">584</span></a><span class="sd"> &gt;&gt;&gt; tree.find(Column).replace(Column(this=&quot;y&quot;))</span>
-</span><span id="Expression.replace-585"><a href="#Expression.replace-585"><span class="linenos">585</span></a><span class="sd"> (COLUMN this: y)</span>
-</span><span id="Expression.replace-586"><a href="#Expression.replace-586"><span class="linenos">586</span></a><span class="sd"> &gt;&gt;&gt; tree.sql()</span>
-</span><span id="Expression.replace-587"><a href="#Expression.replace-587"><span class="linenos">587</span></a><span class="sd"> &#39;SELECT y FROM tbl&#39;</span>
-</span><span id="Expression.replace-588"><a href="#Expression.replace-588"><span class="linenos">588</span></a>
-</span><span id="Expression.replace-589"><a href="#Expression.replace-589"><span class="linenos">589</span></a><span class="sd"> Args:</span>
-</span><span id="Expression.replace-590"><a href="#Expression.replace-590"><span class="linenos">590</span></a><span class="sd"> expression: new node</span>
-</span><span id="Expression.replace-591"><a href="#Expression.replace-591"><span class="linenos">591</span></a>
-</span><span id="Expression.replace-592"><a href="#Expression.replace-592"><span class="linenos">592</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression.replace-593"><a href="#Expression.replace-593"><span class="linenos">593</span></a><span class="sd"> The new expression or expressions.</span>
-</span><span id="Expression.replace-594"><a href="#Expression.replace-594"><span class="linenos">594</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.replace-595"><a href="#Expression.replace-595"><span class="linenos">595</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">:</span>
-</span><span id="Expression.replace-596"><a href="#Expression.replace-596"><span class="linenos">596</span></a> <span class="k">return</span> <span class="n">expression</span>
-</span><span id="Expression.replace-597"><a href="#Expression.replace-597"><span class="linenos">597</span></a>
-</span><span id="Expression.replace-598"><a href="#Expression.replace-598"><span class="linenos">598</span></a> <span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
-</span><span id="Expression.replace-599"><a href="#Expression.replace-599"><span class="linenos">599</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="kc">None</span>
-</span><span id="Expression.replace-600"><a href="#Expression.replace-600"><span class="linenos">600</span></a>
-</span><span id="Expression.replace-601"><a href="#Expression.replace-601"><span class="linenos">601</span></a> <span class="n">replace_children</span><span class="p">(</span><span class="n">parent</span><span class="p">,</span> <span class="k">lambda</span> <span class="n">child</span><span class="p">:</span> <span class="n">expression</span> <span class="k">if</span> <span class="n">child</span> <span class="ow">is</span> <span class="bp">self</span> <span class="k">else</span> <span class="n">child</span><span class="p">)</span>
-</span><span id="Expression.replace-602"><a href="#Expression.replace-602"><span class="linenos">602</span></a> <span class="k">return</span> <span class="n">expression</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.replace-566"><a href="#Expression.replace-566"><span class="linenos">566</span></a> <span class="k">def</span> <span class="nf">replace</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">):</span>
+</span><span id="Expression.replace-567"><a href="#Expression.replace-567"><span class="linenos">567</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.replace-568"><a href="#Expression.replace-568"><span class="linenos">568</span></a><span class="sd"> Swap out this expression with a new expression.</span>
+</span><span id="Expression.replace-569"><a href="#Expression.replace-569"><span class="linenos">569</span></a>
+</span><span id="Expression.replace-570"><a href="#Expression.replace-570"><span class="linenos">570</span></a><span class="sd"> For example::</span>
+</span><span id="Expression.replace-571"><a href="#Expression.replace-571"><span class="linenos">571</span></a>
+</span><span id="Expression.replace-572"><a href="#Expression.replace-572"><span class="linenos">572</span></a><span class="sd"> &gt;&gt;&gt; tree = Select().select(&quot;x&quot;).from_(&quot;tbl&quot;)</span>
+</span><span id="Expression.replace-573"><a href="#Expression.replace-573"><span class="linenos">573</span></a><span class="sd"> &gt;&gt;&gt; tree.find(Column).replace(column(&quot;y&quot;))</span>
+</span><span id="Expression.replace-574"><a href="#Expression.replace-574"><span class="linenos">574</span></a><span class="sd"> Column(</span>
+</span><span id="Expression.replace-575"><a href="#Expression.replace-575"><span class="linenos">575</span></a><span class="sd"> this=Identifier(this=y, quoted=False))</span>
+</span><span id="Expression.replace-576"><a href="#Expression.replace-576"><span class="linenos">576</span></a><span class="sd"> &gt;&gt;&gt; tree.sql()</span>
+</span><span id="Expression.replace-577"><a href="#Expression.replace-577"><span class="linenos">577</span></a><span class="sd"> &#39;SELECT y FROM tbl&#39;</span>
+</span><span id="Expression.replace-578"><a href="#Expression.replace-578"><span class="linenos">578</span></a>
+</span><span id="Expression.replace-579"><a href="#Expression.replace-579"><span class="linenos">579</span></a><span class="sd"> Args:</span>
+</span><span id="Expression.replace-580"><a href="#Expression.replace-580"><span class="linenos">580</span></a><span class="sd"> expression: new node</span>
+</span><span id="Expression.replace-581"><a href="#Expression.replace-581"><span class="linenos">581</span></a>
+</span><span id="Expression.replace-582"><a href="#Expression.replace-582"><span class="linenos">582</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression.replace-583"><a href="#Expression.replace-583"><span class="linenos">583</span></a><span class="sd"> The new expression or expressions.</span>
+</span><span id="Expression.replace-584"><a href="#Expression.replace-584"><span class="linenos">584</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.replace-585"><a href="#Expression.replace-585"><span class="linenos">585</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">:</span>
+</span><span id="Expression.replace-586"><a href="#Expression.replace-586"><span class="linenos">586</span></a> <span class="k">return</span> <span class="n">expression</span>
+</span><span id="Expression.replace-587"><a href="#Expression.replace-587"><span class="linenos">587</span></a>
+</span><span id="Expression.replace-588"><a href="#Expression.replace-588"><span class="linenos">588</span></a> <span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
+</span><span id="Expression.replace-589"><a href="#Expression.replace-589"><span class="linenos">589</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="kc">None</span>
+</span><span id="Expression.replace-590"><a href="#Expression.replace-590"><span class="linenos">590</span></a>
+</span><span id="Expression.replace-591"><a href="#Expression.replace-591"><span class="linenos">591</span></a> <span class="n">replace_children</span><span class="p">(</span><span class="n">parent</span><span class="p">,</span> <span class="k">lambda</span> <span class="n">child</span><span class="p">:</span> <span class="n">expression</span> <span class="k">if</span> <span class="n">child</span> <span class="ow">is</span> <span class="bp">self</span> <span class="k">else</span> <span class="n">child</span><span class="p">)</span>
+</span><span id="Expression.replace-592"><a href="#Expression.replace-592"><span class="linenos">592</span></a> <span class="k">return</span> <span class="n">expression</span>
</span></pre></div>
@@ -15354,8 +15969,9 @@ modified in place.</li>
<p>For example::</p>
<pre><code>&gt;&gt;&gt; tree = Select().select("x").from_("tbl")
-&gt;&gt;&gt; tree.find(Column).replace(Column(this="y"))
-(COLUMN this: y)
+&gt;&gt;&gt; tree.find(Column).replace(column("y"))
+Column(
+ this=Identifier(this=y, quoted=False))
&gt;&gt;&gt; tree.sql()
'SELECT y FROM tbl'
</code></pre>
@@ -15386,15 +16002,15 @@ modified in place.</li>
</div>
<a class="headerlink" href="#Expression.pop"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.pop-604"><a href="#Expression.pop-604"><span class="linenos">604</span></a> <span class="k">def</span> <span class="nf">pop</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">E</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
-</span><span id="Expression.pop-605"><a href="#Expression.pop-605"><span class="linenos">605</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.pop-606"><a href="#Expression.pop-606"><span class="linenos">606</span></a><span class="sd"> Remove this expression from its AST.</span>
-</span><span id="Expression.pop-607"><a href="#Expression.pop-607"><span class="linenos">607</span></a>
-</span><span id="Expression.pop-608"><a href="#Expression.pop-608"><span class="linenos">608</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression.pop-609"><a href="#Expression.pop-609"><span class="linenos">609</span></a><span class="sd"> The popped expression.</span>
-</span><span id="Expression.pop-610"><a href="#Expression.pop-610"><span class="linenos">610</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.pop-611"><a href="#Expression.pop-611"><span class="linenos">611</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="kc">None</span><span class="p">)</span>
-</span><span id="Expression.pop-612"><a href="#Expression.pop-612"><span class="linenos">612</span></a> <span class="k">return</span> <span class="bp">self</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.pop-594"><a href="#Expression.pop-594"><span class="linenos">594</span></a> <span class="k">def</span> <span class="nf">pop</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">E</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
+</span><span id="Expression.pop-595"><a href="#Expression.pop-595"><span class="linenos">595</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.pop-596"><a href="#Expression.pop-596"><span class="linenos">596</span></a><span class="sd"> Remove this expression from its AST.</span>
+</span><span id="Expression.pop-597"><a href="#Expression.pop-597"><span class="linenos">597</span></a>
+</span><span id="Expression.pop-598"><a href="#Expression.pop-598"><span class="linenos">598</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression.pop-599"><a href="#Expression.pop-599"><span class="linenos">599</span></a><span class="sd"> The popped expression.</span>
+</span><span id="Expression.pop-600"><a href="#Expression.pop-600"><span class="linenos">600</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.pop-601"><a href="#Expression.pop-601"><span class="linenos">601</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="kc">None</span><span class="p">)</span>
+</span><span id="Expression.pop-602"><a href="#Expression.pop-602"><span class="linenos">602</span></a> <span class="k">return</span> <span class="bp">self</span>
</span></pre></div>
@@ -15420,22 +16036,22 @@ modified in place.</li>
</div>
<a class="headerlink" href="#Expression.assert_is"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.assert_is-614"><a href="#Expression.assert_is-614"><span class="linenos">614</span></a> <span class="k">def</span> <span class="nf">assert_is</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type_</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
-</span><span id="Expression.assert_is-615"><a href="#Expression.assert_is-615"><span class="linenos">615</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.assert_is-616"><a href="#Expression.assert_is-616"><span class="linenos">616</span></a><span class="sd"> Assert that this `Expression` is an instance of `type_`.</span>
-</span><span id="Expression.assert_is-617"><a href="#Expression.assert_is-617"><span class="linenos">617</span></a>
-</span><span id="Expression.assert_is-618"><a href="#Expression.assert_is-618"><span class="linenos">618</span></a><span class="sd"> If it is NOT an instance of `type_`, this raises an assertion error.</span>
-</span><span id="Expression.assert_is-619"><a href="#Expression.assert_is-619"><span class="linenos">619</span></a><span class="sd"> Otherwise, this returns this expression.</span>
-</span><span id="Expression.assert_is-620"><a href="#Expression.assert_is-620"><span class="linenos">620</span></a>
-</span><span id="Expression.assert_is-621"><a href="#Expression.assert_is-621"><span class="linenos">621</span></a><span class="sd"> Examples:</span>
-</span><span id="Expression.assert_is-622"><a href="#Expression.assert_is-622"><span class="linenos">622</span></a><span class="sd"> This is useful for type security in chained expressions:</span>
-</span><span id="Expression.assert_is-623"><a href="#Expression.assert_is-623"><span class="linenos">623</span></a>
-</span><span id="Expression.assert_is-624"><a href="#Expression.assert_is-624"><span class="linenos">624</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="Expression.assert_is-625"><a href="#Expression.assert_is-625"><span class="linenos">625</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;SELECT x from y&quot;).assert_is(Select).select(&quot;z&quot;).sql()</span>
-</span><span id="Expression.assert_is-626"><a href="#Expression.assert_is-626"><span class="linenos">626</span></a><span class="sd"> &#39;SELECT x, z FROM y&#39;</span>
-</span><span id="Expression.assert_is-627"><a href="#Expression.assert_is-627"><span class="linenos">627</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.assert_is-628"><a href="#Expression.assert_is-628"><span class="linenos">628</span></a> <span class="k">assert</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type_</span><span class="p">)</span>
-</span><span id="Expression.assert_is-629"><a href="#Expression.assert_is-629"><span class="linenos">629</span></a> <span class="k">return</span> <span class="bp">self</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.assert_is-604"><a href="#Expression.assert_is-604"><span class="linenos">604</span></a> <span class="k">def</span> <span class="nf">assert_is</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type_</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
+</span><span id="Expression.assert_is-605"><a href="#Expression.assert_is-605"><span class="linenos">605</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.assert_is-606"><a href="#Expression.assert_is-606"><span class="linenos">606</span></a><span class="sd"> Assert that this `Expression` is an instance of `type_`.</span>
+</span><span id="Expression.assert_is-607"><a href="#Expression.assert_is-607"><span class="linenos">607</span></a>
+</span><span id="Expression.assert_is-608"><a href="#Expression.assert_is-608"><span class="linenos">608</span></a><span class="sd"> If it is NOT an instance of `type_`, this raises an assertion error.</span>
+</span><span id="Expression.assert_is-609"><a href="#Expression.assert_is-609"><span class="linenos">609</span></a><span class="sd"> Otherwise, this returns this expression.</span>
+</span><span id="Expression.assert_is-610"><a href="#Expression.assert_is-610"><span class="linenos">610</span></a>
+</span><span id="Expression.assert_is-611"><a href="#Expression.assert_is-611"><span class="linenos">611</span></a><span class="sd"> Examples:</span>
+</span><span id="Expression.assert_is-612"><a href="#Expression.assert_is-612"><span class="linenos">612</span></a><span class="sd"> This is useful for type security in chained expressions:</span>
+</span><span id="Expression.assert_is-613"><a href="#Expression.assert_is-613"><span class="linenos">613</span></a>
+</span><span id="Expression.assert_is-614"><a href="#Expression.assert_is-614"><span class="linenos">614</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="Expression.assert_is-615"><a href="#Expression.assert_is-615"><span class="linenos">615</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;SELECT x from y&quot;).assert_is(Select).select(&quot;z&quot;).sql()</span>
+</span><span id="Expression.assert_is-616"><a href="#Expression.assert_is-616"><span class="linenos">616</span></a><span class="sd"> &#39;SELECT x, z FROM y&#39;</span>
+</span><span id="Expression.assert_is-617"><a href="#Expression.assert_is-617"><span class="linenos">617</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.assert_is-618"><a href="#Expression.assert_is-618"><span class="linenos">618</span></a> <span class="k">assert</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type_</span><span class="p">)</span>
+</span><span id="Expression.assert_is-619"><a href="#Expression.assert_is-619"><span class="linenos">619</span></a> <span class="k">return</span> <span class="bp">self</span>
</span></pre></div>
@@ -15471,39 +16087,39 @@ Otherwise, this returns this expression.</p>
</div>
<a class="headerlink" href="#Expression.error_messages"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.error_messages-631"><a href="#Expression.error_messages-631"><span class="linenos">631</span></a> <span class="k">def</span> <span class="nf">error_messages</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
-</span><span id="Expression.error_messages-632"><a href="#Expression.error_messages-632"><span class="linenos">632</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.error_messages-633"><a href="#Expression.error_messages-633"><span class="linenos">633</span></a><span class="sd"> Checks if this expression is valid (e.g. all mandatory args are set).</span>
-</span><span id="Expression.error_messages-634"><a href="#Expression.error_messages-634"><span class="linenos">634</span></a>
-</span><span id="Expression.error_messages-635"><a href="#Expression.error_messages-635"><span class="linenos">635</span></a><span class="sd"> Args:</span>
-</span><span id="Expression.error_messages-636"><a href="#Expression.error_messages-636"><span class="linenos">636</span></a><span class="sd"> args: a sequence of values that were used to instantiate a Func expression. This is used</span>
-</span><span id="Expression.error_messages-637"><a href="#Expression.error_messages-637"><span class="linenos">637</span></a><span class="sd"> to check that the provided arguments don&#39;t exceed the function argument limit.</span>
-</span><span id="Expression.error_messages-638"><a href="#Expression.error_messages-638"><span class="linenos">638</span></a>
-</span><span id="Expression.error_messages-639"><a href="#Expression.error_messages-639"><span class="linenos">639</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression.error_messages-640"><a href="#Expression.error_messages-640"><span class="linenos">640</span></a><span class="sd"> A list of error messages for all possible errors that were found.</span>
-</span><span id="Expression.error_messages-641"><a href="#Expression.error_messages-641"><span class="linenos">641</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.error_messages-642"><a href="#Expression.error_messages-642"><span class="linenos">642</span></a> <span class="n">errors</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
-</span><span id="Expression.error_messages-643"><a href="#Expression.error_messages-643"><span class="linenos">643</span></a>
-</span><span id="Expression.error_messages-644"><a href="#Expression.error_messages-644"><span class="linenos">644</span></a> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">:</span>
-</span><span id="Expression.error_messages-645"><a href="#Expression.error_messages-645"><span class="linenos">645</span></a> <span class="k">if</span> <span class="n">k</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">:</span>
-</span><span id="Expression.error_messages-646"><a href="#Expression.error_messages-646"><span class="linenos">646</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Unexpected keyword: &#39;</span><span class="si">{</span><span class="n">k</span><span class="si">}</span><span class="s2">&#39; for </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
-</span><span id="Expression.error_messages-647"><a href="#Expression.error_messages-647"><span class="linenos">647</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">mandatory</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
-</span><span id="Expression.error_messages-648"><a href="#Expression.error_messages-648"><span class="linenos">648</span></a> <span class="n">v</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">k</span><span class="p">)</span>
-</span><span id="Expression.error_messages-649"><a href="#Expression.error_messages-649"><span class="linenos">649</span></a> <span class="k">if</span> <span class="n">mandatory</span> <span class="ow">and</span> <span class="p">(</span><span class="n">v</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="nb">list</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">v</span><span class="p">)):</span>
-</span><span id="Expression.error_messages-650"><a href="#Expression.error_messages-650"><span class="linenos">650</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Required keyword: &#39;</span><span class="si">{</span><span class="n">k</span><span class="si">}</span><span class="s2">&#39; missing for </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
-</span><span id="Expression.error_messages-651"><a href="#Expression.error_messages-651"><span class="linenos">651</span></a>
-</span><span id="Expression.error_messages-652"><a href="#Expression.error_messages-652"><span class="linenos">652</span></a> <span class="k">if</span> <span class="p">(</span>
-</span><span id="Expression.error_messages-653"><a href="#Expression.error_messages-653"><span class="linenos">653</span></a> <span class="n">args</span>
-</span><span id="Expression.error_messages-654"><a href="#Expression.error_messages-654"><span class="linenos">654</span></a> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Func</span><span class="p">)</span>
-</span><span id="Expression.error_messages-655"><a href="#Expression.error_messages-655"><span class="linenos">655</span></a> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="o">&gt;</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span>
-</span><span id="Expression.error_messages-656"><a href="#Expression.error_messages-656"><span class="linenos">656</span></a> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_var_len_args</span>
-</span><span id="Expression.error_messages-657"><a href="#Expression.error_messages-657"><span class="linenos">657</span></a> <span class="p">):</span>
-</span><span id="Expression.error_messages-658"><a href="#Expression.error_messages-658"><span class="linenos">658</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
-</span><span id="Expression.error_messages-659"><a href="#Expression.error_messages-659"><span class="linenos">659</span></a> <span class="sa">f</span><span class="s2">&quot;The number of provided arguments (</span><span class="si">{</span><span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span><span class="si">}</span><span class="s2">) is greater than &quot;</span>
-</span><span id="Expression.error_messages-660"><a href="#Expression.error_messages-660"><span class="linenos">660</span></a> <span class="sa">f</span><span class="s2">&quot;the maximum number of supported arguments (</span><span class="si">{</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span><span class="si">}</span><span class="s2">)&quot;</span>
-</span><span id="Expression.error_messages-661"><a href="#Expression.error_messages-661"><span class="linenos">661</span></a> <span class="p">)</span>
-</span><span id="Expression.error_messages-662"><a href="#Expression.error_messages-662"><span class="linenos">662</span></a>
-</span><span id="Expression.error_messages-663"><a href="#Expression.error_messages-663"><span class="linenos">663</span></a> <span class="k">return</span> <span class="n">errors</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.error_messages-621"><a href="#Expression.error_messages-621"><span class="linenos">621</span></a> <span class="k">def</span> <span class="nf">error_messages</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
+</span><span id="Expression.error_messages-622"><a href="#Expression.error_messages-622"><span class="linenos">622</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.error_messages-623"><a href="#Expression.error_messages-623"><span class="linenos">623</span></a><span class="sd"> Checks if this expression is valid (e.g. all mandatory args are set).</span>
+</span><span id="Expression.error_messages-624"><a href="#Expression.error_messages-624"><span class="linenos">624</span></a>
+</span><span id="Expression.error_messages-625"><a href="#Expression.error_messages-625"><span class="linenos">625</span></a><span class="sd"> Args:</span>
+</span><span id="Expression.error_messages-626"><a href="#Expression.error_messages-626"><span class="linenos">626</span></a><span class="sd"> args: a sequence of values that were used to instantiate a Func expression. This is used</span>
+</span><span id="Expression.error_messages-627"><a href="#Expression.error_messages-627"><span class="linenos">627</span></a><span class="sd"> to check that the provided arguments don&#39;t exceed the function argument limit.</span>
+</span><span id="Expression.error_messages-628"><a href="#Expression.error_messages-628"><span class="linenos">628</span></a>
+</span><span id="Expression.error_messages-629"><a href="#Expression.error_messages-629"><span class="linenos">629</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression.error_messages-630"><a href="#Expression.error_messages-630"><span class="linenos">630</span></a><span class="sd"> A list of error messages for all possible errors that were found.</span>
+</span><span id="Expression.error_messages-631"><a href="#Expression.error_messages-631"><span class="linenos">631</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.error_messages-632"><a href="#Expression.error_messages-632"><span class="linenos">632</span></a> <span class="n">errors</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="Expression.error_messages-633"><a href="#Expression.error_messages-633"><span class="linenos">633</span></a>
+</span><span id="Expression.error_messages-634"><a href="#Expression.error_messages-634"><span class="linenos">634</span></a> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">:</span>
+</span><span id="Expression.error_messages-635"><a href="#Expression.error_messages-635"><span class="linenos">635</span></a> <span class="k">if</span> <span class="n">k</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">:</span>
+</span><span id="Expression.error_messages-636"><a href="#Expression.error_messages-636"><span class="linenos">636</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Unexpected keyword: &#39;</span><span class="si">{</span><span class="n">k</span><span class="si">}</span><span class="s2">&#39; for </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
+</span><span id="Expression.error_messages-637"><a href="#Expression.error_messages-637"><span class="linenos">637</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">mandatory</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+</span><span id="Expression.error_messages-638"><a href="#Expression.error_messages-638"><span class="linenos">638</span></a> <span class="n">v</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">k</span><span class="p">)</span>
+</span><span id="Expression.error_messages-639"><a href="#Expression.error_messages-639"><span class="linenos">639</span></a> <span class="k">if</span> <span class="n">mandatory</span> <span class="ow">and</span> <span class="p">(</span><span class="n">v</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="nb">list</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">v</span><span class="p">)):</span>
+</span><span id="Expression.error_messages-640"><a href="#Expression.error_messages-640"><span class="linenos">640</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Required keyword: &#39;</span><span class="si">{</span><span class="n">k</span><span class="si">}</span><span class="s2">&#39; missing for </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
+</span><span id="Expression.error_messages-641"><a href="#Expression.error_messages-641"><span class="linenos">641</span></a>
+</span><span id="Expression.error_messages-642"><a href="#Expression.error_messages-642"><span class="linenos">642</span></a> <span class="k">if</span> <span class="p">(</span>
+</span><span id="Expression.error_messages-643"><a href="#Expression.error_messages-643"><span class="linenos">643</span></a> <span class="n">args</span>
+</span><span id="Expression.error_messages-644"><a href="#Expression.error_messages-644"><span class="linenos">644</span></a> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Func</span><span class="p">)</span>
+</span><span id="Expression.error_messages-645"><a href="#Expression.error_messages-645"><span class="linenos">645</span></a> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="o">&gt;</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span>
+</span><span id="Expression.error_messages-646"><a href="#Expression.error_messages-646"><span class="linenos">646</span></a> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_var_len_args</span>
+</span><span id="Expression.error_messages-647"><a href="#Expression.error_messages-647"><span class="linenos">647</span></a> <span class="p">):</span>
+</span><span id="Expression.error_messages-648"><a href="#Expression.error_messages-648"><span class="linenos">648</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
+</span><span id="Expression.error_messages-649"><a href="#Expression.error_messages-649"><span class="linenos">649</span></a> <span class="sa">f</span><span class="s2">&quot;The number of provided arguments (</span><span class="si">{</span><span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span><span class="si">}</span><span class="s2">) is greater than &quot;</span>
+</span><span id="Expression.error_messages-650"><a href="#Expression.error_messages-650"><span class="linenos">650</span></a> <span class="sa">f</span><span class="s2">&quot;the maximum number of supported arguments (</span><span class="si">{</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span><span class="si">}</span><span class="s2">)&quot;</span>
+</span><span id="Expression.error_messages-651"><a href="#Expression.error_messages-651"><span class="linenos">651</span></a> <span class="p">)</span>
+</span><span id="Expression.error_messages-652"><a href="#Expression.error_messages-652"><span class="linenos">652</span></a>
+</span><span id="Expression.error_messages-653"><a href="#Expression.error_messages-653"><span class="linenos">653</span></a> <span class="k">return</span> <span class="n">errors</span>
</span></pre></div>
@@ -15536,13 +16152,13 @@ to check that the provided arguments don't exceed the function argument limit.</
</div>
<a class="headerlink" href="#Expression.dump"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.dump-665"><a href="#Expression.dump-665"><span class="linenos">665</span></a> <span class="k">def</span> <span class="nf">dump</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Expression.dump-666"><a href="#Expression.dump-666"><span class="linenos">666</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.dump-667"><a href="#Expression.dump-667"><span class="linenos">667</span></a><span class="sd"> Dump this Expression to a JSON-serializable dict.</span>
-</span><span id="Expression.dump-668"><a href="#Expression.dump-668"><span class="linenos">668</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.dump-669"><a href="#Expression.dump-669"><span class="linenos">669</span></a> <span class="kn">from</span> <span class="nn">sqlglot.serde</span> <span class="kn">import</span> <span class="n">dump</span>
-</span><span id="Expression.dump-670"><a href="#Expression.dump-670"><span class="linenos">670</span></a>
-</span><span id="Expression.dump-671"><a href="#Expression.dump-671"><span class="linenos">671</span></a> <span class="k">return</span> <span class="n">dump</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.dump-655"><a href="#Expression.dump-655"><span class="linenos">655</span></a> <span class="k">def</span> <span class="nf">dump</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="Expression.dump-656"><a href="#Expression.dump-656"><span class="linenos">656</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.dump-657"><a href="#Expression.dump-657"><span class="linenos">657</span></a><span class="sd"> Dump this Expression to a JSON-serializable dict.</span>
+</span><span id="Expression.dump-658"><a href="#Expression.dump-658"><span class="linenos">658</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.dump-659"><a href="#Expression.dump-659"><span class="linenos">659</span></a> <span class="kn">from</span> <span class="nn">sqlglot.serde</span> <span class="kn">import</span> <span class="n">dump</span>
+</span><span id="Expression.dump-660"><a href="#Expression.dump-660"><span class="linenos">660</span></a>
+</span><span id="Expression.dump-661"><a href="#Expression.dump-661"><span class="linenos">661</span></a> <span class="k">return</span> <span class="n">dump</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
</span></pre></div>
@@ -15563,14 +16179,14 @@ to check that the provided arguments don't exceed the function argument limit.</
</div>
<a class="headerlink" href="#Expression.load"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.load-673"><a href="#Expression.load-673"><span class="linenos">673</span></a> <span class="nd">@classmethod</span>
-</span><span id="Expression.load-674"><a href="#Expression.load-674"><span class="linenos">674</span></a> <span class="k">def</span> <span class="nf">load</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">obj</span><span class="p">):</span>
-</span><span id="Expression.load-675"><a href="#Expression.load-675"><span class="linenos">675</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.load-676"><a href="#Expression.load-676"><span class="linenos">676</span></a><span class="sd"> Load a dict (as returned by `Expression.dump`) into an Expression instance.</span>
-</span><span id="Expression.load-677"><a href="#Expression.load-677"><span class="linenos">677</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.load-678"><a href="#Expression.load-678"><span class="linenos">678</span></a> <span class="kn">from</span> <span class="nn">sqlglot.serde</span> <span class="kn">import</span> <span class="n">load</span>
-</span><span id="Expression.load-679"><a href="#Expression.load-679"><span class="linenos">679</span></a>
-</span><span id="Expression.load-680"><a href="#Expression.load-680"><span class="linenos">680</span></a> <span class="k">return</span> <span class="n">load</span><span class="p">(</span><span class="n">obj</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.load-663"><a href="#Expression.load-663"><span class="linenos">663</span></a> <span class="nd">@classmethod</span>
+</span><span id="Expression.load-664"><a href="#Expression.load-664"><span class="linenos">664</span></a> <span class="k">def</span> <span class="nf">load</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">obj</span><span class="p">):</span>
+</span><span id="Expression.load-665"><a href="#Expression.load-665"><span class="linenos">665</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.load-666"><a href="#Expression.load-666"><span class="linenos">666</span></a><span class="sd"> Load a dict (as returned by `Expression.dump`) into an Expression instance.</span>
+</span><span id="Expression.load-667"><a href="#Expression.load-667"><span class="linenos">667</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.load-668"><a href="#Expression.load-668"><span class="linenos">668</span></a> <span class="kn">from</span> <span class="nn">sqlglot.serde</span> <span class="kn">import</span> <span class="n">load</span>
+</span><span id="Expression.load-669"><a href="#Expression.load-669"><span class="linenos">669</span></a>
+</span><span id="Expression.load-670"><a href="#Expression.load-670"><span class="linenos">670</span></a> <span class="k">return</span> <span class="n">load</span><span class="p">(</span><span class="n">obj</span><span class="p">)</span>
</span></pre></div>
@@ -15590,31 +16206,31 @@ to check that the provided arguments don't exceed the function argument limit.</
</div>
<a class="headerlink" href="#Expression.and_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.and_-682"><a href="#Expression.and_-682"><span class="linenos">682</span></a> <span class="k">def</span> <span class="nf">and_</span><span class="p">(</span>
-</span><span id="Expression.and_-683"><a href="#Expression.and_-683"><span class="linenos">683</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Expression.and_-684"><a href="#Expression.and_-684"><span class="linenos">684</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Expression.and_-685"><a href="#Expression.and_-685"><span class="linenos">685</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Expression.and_-686"><a href="#Expression.and_-686"><span class="linenos">686</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="Expression.and_-687"><a href="#Expression.and_-687"><span class="linenos">687</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Expression.and_-688"><a href="#Expression.and_-688"><span class="linenos">688</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
-</span><span id="Expression.and_-689"><a href="#Expression.and_-689"><span class="linenos">689</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.and_-690"><a href="#Expression.and_-690"><span class="linenos">690</span></a><span class="sd"> AND this condition with one or multiple expressions.</span>
-</span><span id="Expression.and_-691"><a href="#Expression.and_-691"><span class="linenos">691</span></a>
-</span><span id="Expression.and_-692"><a href="#Expression.and_-692"><span class="linenos">692</span></a><span class="sd"> Example:</span>
-</span><span id="Expression.and_-693"><a href="#Expression.and_-693"><span class="linenos">693</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).and_(&quot;y=1&quot;).sql()</span>
-</span><span id="Expression.and_-694"><a href="#Expression.and_-694"><span class="linenos">694</span></a><span class="sd"> &#39;x = 1 AND y = 1&#39;</span>
-</span><span id="Expression.and_-695"><a href="#Expression.and_-695"><span class="linenos">695</span></a>
-</span><span id="Expression.and_-696"><a href="#Expression.and_-696"><span class="linenos">696</span></a><span class="sd"> Args:</span>
-</span><span id="Expression.and_-697"><a href="#Expression.and_-697"><span class="linenos">697</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Expression.and_-698"><a href="#Expression.and_-698"><span class="linenos">698</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Expression.and_-699"><a href="#Expression.and_-699"><span class="linenos">699</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="Expression.and_-700"><a href="#Expression.and_-700"><span class="linenos">700</span></a><span class="sd"> copy: whether or not to copy the involved expressions (only applies to Expressions).</span>
-</span><span id="Expression.and_-701"><a href="#Expression.and_-701"><span class="linenos">701</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Expression.and_-702"><a href="#Expression.and_-702"><span class="linenos">702</span></a>
-</span><span id="Expression.and_-703"><a href="#Expression.and_-703"><span class="linenos">703</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression.and_-704"><a href="#Expression.and_-704"><span class="linenos">704</span></a><span class="sd"> The new And condition.</span>
-</span><span id="Expression.and_-705"><a href="#Expression.and_-705"><span class="linenos">705</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.and_-706"><a href="#Expression.and_-706"><span class="linenos">706</span></a> <span class="k">return</span> <span class="n">and_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.and_-672"><a href="#Expression.and_-672"><span class="linenos">672</span></a> <span class="k">def</span> <span class="nf">and_</span><span class="p">(</span>
+</span><span id="Expression.and_-673"><a href="#Expression.and_-673"><span class="linenos">673</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Expression.and_-674"><a href="#Expression.and_-674"><span class="linenos">674</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Expression.and_-675"><a href="#Expression.and_-675"><span class="linenos">675</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Expression.and_-676"><a href="#Expression.and_-676"><span class="linenos">676</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="Expression.and_-677"><a href="#Expression.and_-677"><span class="linenos">677</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Expression.and_-678"><a href="#Expression.and_-678"><span class="linenos">678</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
+</span><span id="Expression.and_-679"><a href="#Expression.and_-679"><span class="linenos">679</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.and_-680"><a href="#Expression.and_-680"><span class="linenos">680</span></a><span class="sd"> AND this condition with one or multiple expressions.</span>
+</span><span id="Expression.and_-681"><a href="#Expression.and_-681"><span class="linenos">681</span></a>
+</span><span id="Expression.and_-682"><a href="#Expression.and_-682"><span class="linenos">682</span></a><span class="sd"> Example:</span>
+</span><span id="Expression.and_-683"><a href="#Expression.and_-683"><span class="linenos">683</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).and_(&quot;y=1&quot;).sql()</span>
+</span><span id="Expression.and_-684"><a href="#Expression.and_-684"><span class="linenos">684</span></a><span class="sd"> &#39;x = 1 AND y = 1&#39;</span>
+</span><span id="Expression.and_-685"><a href="#Expression.and_-685"><span class="linenos">685</span></a>
+</span><span id="Expression.and_-686"><a href="#Expression.and_-686"><span class="linenos">686</span></a><span class="sd"> Args:</span>
+</span><span id="Expression.and_-687"><a href="#Expression.and_-687"><span class="linenos">687</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Expression.and_-688"><a href="#Expression.and_-688"><span class="linenos">688</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Expression.and_-689"><a href="#Expression.and_-689"><span class="linenos">689</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Expression.and_-690"><a href="#Expression.and_-690"><span class="linenos">690</span></a><span class="sd"> copy: whether or not to copy the involved expressions (only applies to Expressions).</span>
+</span><span id="Expression.and_-691"><a href="#Expression.and_-691"><span class="linenos">691</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Expression.and_-692"><a href="#Expression.and_-692"><span class="linenos">692</span></a>
+</span><span id="Expression.and_-693"><a href="#Expression.and_-693"><span class="linenos">693</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression.and_-694"><a href="#Expression.and_-694"><span class="linenos">694</span></a><span class="sd"> The new And condition.</span>
+</span><span id="Expression.and_-695"><a href="#Expression.and_-695"><span class="linenos">695</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.and_-696"><a href="#Expression.and_-696"><span class="linenos">696</span></a> <span class="k">return</span> <span class="n">and_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span></pre></div>
@@ -15660,31 +16276,31 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Expression.or_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.or_-708"><a href="#Expression.or_-708"><span class="linenos">708</span></a> <span class="k">def</span> <span class="nf">or_</span><span class="p">(</span>
-</span><span id="Expression.or_-709"><a href="#Expression.or_-709"><span class="linenos">709</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Expression.or_-710"><a href="#Expression.or_-710"><span class="linenos">710</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Expression.or_-711"><a href="#Expression.or_-711"><span class="linenos">711</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Expression.or_-712"><a href="#Expression.or_-712"><span class="linenos">712</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="Expression.or_-713"><a href="#Expression.or_-713"><span class="linenos">713</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Expression.or_-714"><a href="#Expression.or_-714"><span class="linenos">714</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
-</span><span id="Expression.or_-715"><a href="#Expression.or_-715"><span class="linenos">715</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.or_-716"><a href="#Expression.or_-716"><span class="linenos">716</span></a><span class="sd"> OR this condition with one or multiple expressions.</span>
-</span><span id="Expression.or_-717"><a href="#Expression.or_-717"><span class="linenos">717</span></a>
-</span><span id="Expression.or_-718"><a href="#Expression.or_-718"><span class="linenos">718</span></a><span class="sd"> Example:</span>
-</span><span id="Expression.or_-719"><a href="#Expression.or_-719"><span class="linenos">719</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).or_(&quot;y=1&quot;).sql()</span>
-</span><span id="Expression.or_-720"><a href="#Expression.or_-720"><span class="linenos">720</span></a><span class="sd"> &#39;x = 1 OR y = 1&#39;</span>
-</span><span id="Expression.or_-721"><a href="#Expression.or_-721"><span class="linenos">721</span></a>
-</span><span id="Expression.or_-722"><a href="#Expression.or_-722"><span class="linenos">722</span></a><span class="sd"> Args:</span>
-</span><span id="Expression.or_-723"><a href="#Expression.or_-723"><span class="linenos">723</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Expression.or_-724"><a href="#Expression.or_-724"><span class="linenos">724</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Expression.or_-725"><a href="#Expression.or_-725"><span class="linenos">725</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="Expression.or_-726"><a href="#Expression.or_-726"><span class="linenos">726</span></a><span class="sd"> copy: whether or not to copy the involved expressions (only applies to Expressions).</span>
-</span><span id="Expression.or_-727"><a href="#Expression.or_-727"><span class="linenos">727</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Expression.or_-728"><a href="#Expression.or_-728"><span class="linenos">728</span></a>
-</span><span id="Expression.or_-729"><a href="#Expression.or_-729"><span class="linenos">729</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression.or_-730"><a href="#Expression.or_-730"><span class="linenos">730</span></a><span class="sd"> The new Or condition.</span>
-</span><span id="Expression.or_-731"><a href="#Expression.or_-731"><span class="linenos">731</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.or_-732"><a href="#Expression.or_-732"><span class="linenos">732</span></a> <span class="k">return</span> <span class="n">or_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.or_-698"><a href="#Expression.or_-698"><span class="linenos">698</span></a> <span class="k">def</span> <span class="nf">or_</span><span class="p">(</span>
+</span><span id="Expression.or_-699"><a href="#Expression.or_-699"><span class="linenos">699</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Expression.or_-700"><a href="#Expression.or_-700"><span class="linenos">700</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Expression.or_-701"><a href="#Expression.or_-701"><span class="linenos">701</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Expression.or_-702"><a href="#Expression.or_-702"><span class="linenos">702</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="Expression.or_-703"><a href="#Expression.or_-703"><span class="linenos">703</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Expression.or_-704"><a href="#Expression.or_-704"><span class="linenos">704</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
+</span><span id="Expression.or_-705"><a href="#Expression.or_-705"><span class="linenos">705</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.or_-706"><a href="#Expression.or_-706"><span class="linenos">706</span></a><span class="sd"> OR this condition with one or multiple expressions.</span>
+</span><span id="Expression.or_-707"><a href="#Expression.or_-707"><span class="linenos">707</span></a>
+</span><span id="Expression.or_-708"><a href="#Expression.or_-708"><span class="linenos">708</span></a><span class="sd"> Example:</span>
+</span><span id="Expression.or_-709"><a href="#Expression.or_-709"><span class="linenos">709</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).or_(&quot;y=1&quot;).sql()</span>
+</span><span id="Expression.or_-710"><a href="#Expression.or_-710"><span class="linenos">710</span></a><span class="sd"> &#39;x = 1 OR y = 1&#39;</span>
+</span><span id="Expression.or_-711"><a href="#Expression.or_-711"><span class="linenos">711</span></a>
+</span><span id="Expression.or_-712"><a href="#Expression.or_-712"><span class="linenos">712</span></a><span class="sd"> Args:</span>
+</span><span id="Expression.or_-713"><a href="#Expression.or_-713"><span class="linenos">713</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Expression.or_-714"><a href="#Expression.or_-714"><span class="linenos">714</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Expression.or_-715"><a href="#Expression.or_-715"><span class="linenos">715</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Expression.or_-716"><a href="#Expression.or_-716"><span class="linenos">716</span></a><span class="sd"> copy: whether or not to copy the involved expressions (only applies to Expressions).</span>
+</span><span id="Expression.or_-717"><a href="#Expression.or_-717"><span class="linenos">717</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Expression.or_-718"><a href="#Expression.or_-718"><span class="linenos">718</span></a>
+</span><span id="Expression.or_-719"><a href="#Expression.or_-719"><span class="linenos">719</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression.or_-720"><a href="#Expression.or_-720"><span class="linenos">720</span></a><span class="sd"> The new Or condition.</span>
+</span><span id="Expression.or_-721"><a href="#Expression.or_-721"><span class="linenos">721</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.or_-722"><a href="#Expression.or_-722"><span class="linenos">722</span></a> <span class="k">return</span> <span class="n">or_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span></pre></div>
@@ -15730,21 +16346,21 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Expression.not_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.not_-734"><a href="#Expression.not_-734"><span class="linenos">734</span></a> <span class="k">def</span> <span class="nf">not_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">):</span>
-</span><span id="Expression.not_-735"><a href="#Expression.not_-735"><span class="linenos">735</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.not_-736"><a href="#Expression.not_-736"><span class="linenos">736</span></a><span class="sd"> Wrap this condition with NOT.</span>
-</span><span id="Expression.not_-737"><a href="#Expression.not_-737"><span class="linenos">737</span></a>
-</span><span id="Expression.not_-738"><a href="#Expression.not_-738"><span class="linenos">738</span></a><span class="sd"> Example:</span>
-</span><span id="Expression.not_-739"><a href="#Expression.not_-739"><span class="linenos">739</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).not_().sql()</span>
-</span><span id="Expression.not_-740"><a href="#Expression.not_-740"><span class="linenos">740</span></a><span class="sd"> &#39;NOT x = 1&#39;</span>
-</span><span id="Expression.not_-741"><a href="#Expression.not_-741"><span class="linenos">741</span></a>
-</span><span id="Expression.not_-742"><a href="#Expression.not_-742"><span class="linenos">742</span></a><span class="sd"> Args:</span>
-</span><span id="Expression.not_-743"><a href="#Expression.not_-743"><span class="linenos">743</span></a><span class="sd"> copy: whether or not to copy this object.</span>
-</span><span id="Expression.not_-744"><a href="#Expression.not_-744"><span class="linenos">744</span></a>
-</span><span id="Expression.not_-745"><a href="#Expression.not_-745"><span class="linenos">745</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression.not_-746"><a href="#Expression.not_-746"><span class="linenos">746</span></a><span class="sd"> The new Not instance.</span>
-</span><span id="Expression.not_-747"><a href="#Expression.not_-747"><span class="linenos">747</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.not_-748"><a href="#Expression.not_-748"><span class="linenos">748</span></a> <span class="k">return</span> <span class="n">not_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.not_-724"><a href="#Expression.not_-724"><span class="linenos">724</span></a> <span class="k">def</span> <span class="nf">not_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">):</span>
+</span><span id="Expression.not_-725"><a href="#Expression.not_-725"><span class="linenos">725</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.not_-726"><a href="#Expression.not_-726"><span class="linenos">726</span></a><span class="sd"> Wrap this condition with NOT.</span>
+</span><span id="Expression.not_-727"><a href="#Expression.not_-727"><span class="linenos">727</span></a>
+</span><span id="Expression.not_-728"><a href="#Expression.not_-728"><span class="linenos">728</span></a><span class="sd"> Example:</span>
+</span><span id="Expression.not_-729"><a href="#Expression.not_-729"><span class="linenos">729</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).not_().sql()</span>
+</span><span id="Expression.not_-730"><a href="#Expression.not_-730"><span class="linenos">730</span></a><span class="sd"> &#39;NOT x = 1&#39;</span>
+</span><span id="Expression.not_-731"><a href="#Expression.not_-731"><span class="linenos">731</span></a>
+</span><span id="Expression.not_-732"><a href="#Expression.not_-732"><span class="linenos">732</span></a><span class="sd"> Args:</span>
+</span><span id="Expression.not_-733"><a href="#Expression.not_-733"><span class="linenos">733</span></a><span class="sd"> copy: whether or not to copy this object.</span>
+</span><span id="Expression.not_-734"><a href="#Expression.not_-734"><span class="linenos">734</span></a>
+</span><span id="Expression.not_-735"><a href="#Expression.not_-735"><span class="linenos">735</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression.not_-736"><a href="#Expression.not_-736"><span class="linenos">736</span></a><span class="sd"> The new Not instance.</span>
+</span><span id="Expression.not_-737"><a href="#Expression.not_-737"><span class="linenos">737</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.not_-738"><a href="#Expression.not_-738"><span class="linenos">738</span></a> <span class="k">return</span> <span class="n">not_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span>
</span></pre></div>
@@ -15786,15 +16402,15 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Expression.as_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.as_-750"><a href="#Expression.as_-750"><span class="linenos">750</span></a> <span class="k">def</span> <span class="nf">as_</span><span class="p">(</span>
-</span><span id="Expression.as_-751"><a href="#Expression.as_-751"><span class="linenos">751</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Expression.as_-752"><a href="#Expression.as_-752"><span class="linenos">752</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="Expression.as_-753"><a href="#Expression.as_-753"><span class="linenos">753</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="Expression.as_-754"><a href="#Expression.as_-754"><span class="linenos">754</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Expression.as_-755"><a href="#Expression.as_-755"><span class="linenos">755</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="Expression.as_-756"><a href="#Expression.as_-756"><span class="linenos">756</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Expression.as_-757"><a href="#Expression.as_-757"><span class="linenos">757</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Alias</span><span class="p">:</span>
-</span><span id="Expression.as_-758"><a href="#Expression.as_-758"><span class="linenos">758</span></a> <span class="k">return</span> <span class="n">alias_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.as_-740"><a href="#Expression.as_-740"><span class="linenos">740</span></a> <span class="k">def</span> <span class="nf">as_</span><span class="p">(</span>
+</span><span id="Expression.as_-741"><a href="#Expression.as_-741"><span class="linenos">741</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Expression.as_-742"><a href="#Expression.as_-742"><span class="linenos">742</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="Expression.as_-743"><a href="#Expression.as_-743"><span class="linenos">743</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="Expression.as_-744"><a href="#Expression.as_-744"><span class="linenos">744</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Expression.as_-745"><a href="#Expression.as_-745"><span class="linenos">745</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="Expression.as_-746"><a href="#Expression.as_-746"><span class="linenos">746</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Expression.as_-747"><a href="#Expression.as_-747"><span class="linenos">747</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Alias</span><span class="p">:</span>
+</span><span id="Expression.as_-748"><a href="#Expression.as_-748"><span class="linenos">748</span></a> <span class="k">return</span> <span class="n">alias_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span></pre></div>
@@ -15812,26 +16428,26 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Expression.isin"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.isin-783"><a href="#Expression.isin-783"><span class="linenos">783</span></a> <span class="k">def</span> <span class="nf">isin</span><span class="p">(</span>
-</span><span id="Expression.isin-784"><a href="#Expression.isin-784"><span class="linenos">784</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Expression.isin-785"><a href="#Expression.isin-785"><span class="linenos">785</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span>
-</span><span id="Expression.isin-786"><a href="#Expression.isin-786"><span class="linenos">786</span></a> <span class="n">query</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Expression.isin-787"><a href="#Expression.isin-787"><span class="linenos">787</span></a> <span class="n">unnest</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Collection</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Expression.isin-788"><a href="#Expression.isin-788"><span class="linenos">788</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="Expression.isin-789"><a href="#Expression.isin-789"><span class="linenos">789</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Expression.isin-790"><a href="#Expression.isin-790"><span class="linenos">790</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">In</span><span class="p">:</span>
-</span><span id="Expression.isin-791"><a href="#Expression.isin-791"><span class="linenos">791</span></a> <span class="k">return</span> <span class="n">In</span><span class="p">(</span>
-</span><span id="Expression.isin-792"><a href="#Expression.isin-792"><span class="linenos">792</span></a> <span class="n">this</span><span class="o">=</span><span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">),</span>
-</span><span id="Expression.isin-793"><a href="#Expression.isin-793"><span class="linenos">793</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">],</span>
-</span><span id="Expression.isin-794"><a href="#Expression.isin-794"><span class="linenos">794</span></a> <span class="n">query</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">query</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="k">if</span> <span class="n">query</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Expression.isin-795"><a href="#Expression.isin-795"><span class="linenos">795</span></a> <span class="n">unnest</span><span class="o">=</span><span class="n">Unnest</span><span class="p">(</span>
-</span><span id="Expression.isin-796"><a href="#Expression.isin-796"><span class="linenos">796</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span>
-</span><span id="Expression.isin-797"><a href="#Expression.isin-797"><span class="linenos">797</span></a> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">e</span><span class="p">),</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">ensure_list</span><span class="p">(</span><span class="n">unnest</span><span class="p">)</span>
-</span><span id="Expression.isin-798"><a href="#Expression.isin-798"><span class="linenos">798</span></a> <span class="p">]</span>
-</span><span id="Expression.isin-799"><a href="#Expression.isin-799"><span class="linenos">799</span></a> <span class="p">)</span>
-</span><span id="Expression.isin-800"><a href="#Expression.isin-800"><span class="linenos">800</span></a> <span class="k">if</span> <span class="n">unnest</span>
-</span><span id="Expression.isin-801"><a href="#Expression.isin-801"><span class="linenos">801</span></a> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Expression.isin-802"><a href="#Expression.isin-802"><span class="linenos">802</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.isin-773"><a href="#Expression.isin-773"><span class="linenos">773</span></a> <span class="k">def</span> <span class="nf">isin</span><span class="p">(</span>
+</span><span id="Expression.isin-774"><a href="#Expression.isin-774"><span class="linenos">774</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Expression.isin-775"><a href="#Expression.isin-775"><span class="linenos">775</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span>
+</span><span id="Expression.isin-776"><a href="#Expression.isin-776"><span class="linenos">776</span></a> <span class="n">query</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Expression.isin-777"><a href="#Expression.isin-777"><span class="linenos">777</span></a> <span class="n">unnest</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Collection</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Expression.isin-778"><a href="#Expression.isin-778"><span class="linenos">778</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="Expression.isin-779"><a href="#Expression.isin-779"><span class="linenos">779</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Expression.isin-780"><a href="#Expression.isin-780"><span class="linenos">780</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">In</span><span class="p">:</span>
+</span><span id="Expression.isin-781"><a href="#Expression.isin-781"><span class="linenos">781</span></a> <span class="k">return</span> <span class="n">In</span><span class="p">(</span>
+</span><span id="Expression.isin-782"><a href="#Expression.isin-782"><span class="linenos">782</span></a> <span class="n">this</span><span class="o">=</span><span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">),</span>
+</span><span id="Expression.isin-783"><a href="#Expression.isin-783"><span class="linenos">783</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">],</span>
+</span><span id="Expression.isin-784"><a href="#Expression.isin-784"><span class="linenos">784</span></a> <span class="n">query</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">query</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="k">if</span> <span class="n">query</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Expression.isin-785"><a href="#Expression.isin-785"><span class="linenos">785</span></a> <span class="n">unnest</span><span class="o">=</span><span class="n">Unnest</span><span class="p">(</span>
+</span><span id="Expression.isin-786"><a href="#Expression.isin-786"><span class="linenos">786</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span>
+</span><span id="Expression.isin-787"><a href="#Expression.isin-787"><span class="linenos">787</span></a> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">e</span><span class="p">),</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">ensure_list</span><span class="p">(</span><span class="n">unnest</span><span class="p">)</span>
+</span><span id="Expression.isin-788"><a href="#Expression.isin-788"><span class="linenos">788</span></a> <span class="p">]</span>
+</span><span id="Expression.isin-789"><a href="#Expression.isin-789"><span class="linenos">789</span></a> <span class="p">)</span>
+</span><span id="Expression.isin-790"><a href="#Expression.isin-790"><span class="linenos">790</span></a> <span class="k">if</span> <span class="n">unnest</span>
+</span><span id="Expression.isin-791"><a href="#Expression.isin-791"><span class="linenos">791</span></a> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Expression.isin-792"><a href="#Expression.isin-792"><span class="linenos">792</span></a> <span class="p">)</span>
</span></pre></div>
@@ -15849,12 +16465,12 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Expression.between"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.between-804"><a href="#Expression.between-804"><span class="linenos">804</span></a> <span class="k">def</span> <span class="nf">between</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">low</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">high</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Between</span><span class="p">:</span>
-</span><span id="Expression.between-805"><a href="#Expression.between-805"><span class="linenos">805</span></a> <span class="k">return</span> <span class="n">Between</span><span class="p">(</span>
-</span><span id="Expression.between-806"><a href="#Expression.between-806"><span class="linenos">806</span></a> <span class="n">this</span><span class="o">=</span><span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">),</span>
-</span><span id="Expression.between-807"><a href="#Expression.between-807"><span class="linenos">807</span></a> <span class="n">low</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">low</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
-</span><span id="Expression.between-808"><a href="#Expression.between-808"><span class="linenos">808</span></a> <span class="n">high</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">high</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
-</span><span id="Expression.between-809"><a href="#Expression.between-809"><span class="linenos">809</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.between-794"><a href="#Expression.between-794"><span class="linenos">794</span></a> <span class="k">def</span> <span class="nf">between</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">low</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">high</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Between</span><span class="p">:</span>
+</span><span id="Expression.between-795"><a href="#Expression.between-795"><span class="linenos">795</span></a> <span class="k">return</span> <span class="n">Between</span><span class="p">(</span>
+</span><span id="Expression.between-796"><a href="#Expression.between-796"><span class="linenos">796</span></a> <span class="n">this</span><span class="o">=</span><span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">),</span>
+</span><span id="Expression.between-797"><a href="#Expression.between-797"><span class="linenos">797</span></a> <span class="n">low</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">low</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
+</span><span id="Expression.between-798"><a href="#Expression.between-798"><span class="linenos">798</span></a> <span class="n">high</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">high</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
+</span><span id="Expression.between-799"><a href="#Expression.between-799"><span class="linenos">799</span></a> <span class="p">)</span>
</span></pre></div>
@@ -15872,8 +16488,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Expression.is_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.is_-811"><a href="#Expression.is_-811"><span class="linenos">811</span></a> <span class="k">def</span> <span class="nf">is_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Is</span><span class="p">:</span>
-</span><span id="Expression.is_-812"><a href="#Expression.is_-812"><span class="linenos">812</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Is</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.is_-801"><a href="#Expression.is_-801"><span class="linenos">801</span></a> <span class="k">def</span> <span class="nf">is_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Is</span><span class="p">:</span>
+</span><span id="Expression.is_-802"><a href="#Expression.is_-802"><span class="linenos">802</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Is</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span></pre></div>
@@ -15891,8 +16507,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Expression.like"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.like-814"><a href="#Expression.like-814"><span class="linenos">814</span></a> <span class="k">def</span> <span class="nf">like</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Like</span><span class="p">:</span>
-</span><span id="Expression.like-815"><a href="#Expression.like-815"><span class="linenos">815</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Like</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.like-804"><a href="#Expression.like-804"><span class="linenos">804</span></a> <span class="k">def</span> <span class="nf">like</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Like</span><span class="p">:</span>
+</span><span id="Expression.like-805"><a href="#Expression.like-805"><span class="linenos">805</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Like</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span></pre></div>
@@ -15910,8 +16526,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Expression.ilike"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.ilike-817"><a href="#Expression.ilike-817"><span class="linenos">817</span></a> <span class="k">def</span> <span class="nf">ilike</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">ILike</span><span class="p">:</span>
-</span><span id="Expression.ilike-818"><a href="#Expression.ilike-818"><span class="linenos">818</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">ILike</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.ilike-807"><a href="#Expression.ilike-807"><span class="linenos">807</span></a> <span class="k">def</span> <span class="nf">ilike</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">ILike</span><span class="p">:</span>
+</span><span id="Expression.ilike-808"><a href="#Expression.ilike-808"><span class="linenos">808</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">ILike</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span></pre></div>
@@ -15929,8 +16545,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Expression.eq"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.eq-820"><a href="#Expression.eq-820"><span class="linenos">820</span></a> <span class="k">def</span> <span class="nf">eq</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">EQ</span><span class="p">:</span>
-</span><span id="Expression.eq-821"><a href="#Expression.eq-821"><span class="linenos">821</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">EQ</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.eq-810"><a href="#Expression.eq-810"><span class="linenos">810</span></a> <span class="k">def</span> <span class="nf">eq</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">EQ</span><span class="p">:</span>
+</span><span id="Expression.eq-811"><a href="#Expression.eq-811"><span class="linenos">811</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">EQ</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span></pre></div>
@@ -15948,8 +16564,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Expression.neq"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.neq-823"><a href="#Expression.neq-823"><span class="linenos">823</span></a> <span class="k">def</span> <span class="nf">neq</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">NEQ</span><span class="p">:</span>
-</span><span id="Expression.neq-824"><a href="#Expression.neq-824"><span class="linenos">824</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">NEQ</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.neq-813"><a href="#Expression.neq-813"><span class="linenos">813</span></a> <span class="k">def</span> <span class="nf">neq</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">NEQ</span><span class="p">:</span>
+</span><span id="Expression.neq-814"><a href="#Expression.neq-814"><span class="linenos">814</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">NEQ</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span></pre></div>
@@ -15967,8 +16583,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Expression.rlike"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.rlike-826"><a href="#Expression.rlike-826"><span class="linenos">826</span></a> <span class="k">def</span> <span class="nf">rlike</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">RegexpLike</span><span class="p">:</span>
-</span><span id="Expression.rlike-827"><a href="#Expression.rlike-827"><span class="linenos">827</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">RegexpLike</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.rlike-816"><a href="#Expression.rlike-816"><span class="linenos">816</span></a> <span class="k">def</span> <span class="nf">rlike</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">RegexpLike</span><span class="p">:</span>
+</span><span id="Expression.rlike-817"><a href="#Expression.rlike-817"><span class="linenos">817</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">RegexpLike</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span></pre></div>
@@ -15986,11 +16602,30 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Expression.div"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.div-829"><a href="#Expression.div-829"><span class="linenos">829</span></a> <span class="k">def</span> <span class="nf">div</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">typed</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span> <span class="n">safe</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Div</span><span class="p">:</span>
-</span><span id="Expression.div-830"><a href="#Expression.div-830"><span class="linenos">830</span></a> <span class="n">div</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Div</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="Expression.div-831"><a href="#Expression.div-831"><span class="linenos">831</span></a> <span class="n">div</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;typed&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">typed</span>
-</span><span id="Expression.div-832"><a href="#Expression.div-832"><span class="linenos">832</span></a> <span class="n">div</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;safe&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">safe</span>
-</span><span id="Expression.div-833"><a href="#Expression.div-833"><span class="linenos">833</span></a> <span class="k">return</span> <span class="n">div</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.div-819"><a href="#Expression.div-819"><span class="linenos">819</span></a> <span class="k">def</span> <span class="nf">div</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">typed</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span> <span class="n">safe</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Div</span><span class="p">:</span>
+</span><span id="Expression.div-820"><a href="#Expression.div-820"><span class="linenos">820</span></a> <span class="n">div</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Div</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="Expression.div-821"><a href="#Expression.div-821"><span class="linenos">821</span></a> <span class="n">div</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;typed&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">typed</span>
+</span><span id="Expression.div-822"><a href="#Expression.div-822"><span class="linenos">822</span></a> <span class="n">div</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;safe&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">safe</span>
+</span><span id="Expression.div-823"><a href="#Expression.div-823"><span class="linenos">823</span></a> <span class="k">return</span> <span class="n">div</span>
+</span></pre></div>
+
+
+
+
+ </div>
+ <div id="Expression.desc" class="classattr">
+ <input id="Expression.desc-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr function">
+
+ <span class="def">def</span>
+ <span class="name">desc</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">nulls_first</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span></span><span class="return-annotation">) -> <span class="n"><a href="#Ordered">Ordered</a></span>:</span></span>
+
+ <label class="view-source-button" for="Expression.desc-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#Expression.desc"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.desc-825"><a href="#Expression.desc-825"><span class="linenos">825</span></a> <span class="k">def</span> <span class="nf">desc</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">nulls_first</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Ordered</span><span class="p">:</span>
+</span><span id="Expression.desc-826"><a href="#Expression.desc-826"><span class="linenos">826</span></a> <span class="k">return</span> <span class="n">Ordered</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span> <span class="n">desc</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">nulls_first</span><span class="o">=</span><span class="n">nulls_first</span><span class="p">)</span>
</span></pre></div>
@@ -16034,8 +16669,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Condition"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Condition-916"><a href="#Condition-916"><span class="linenos">916</span></a><span class="k">class</span> <span class="nc">Condition</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Condition-917"><a href="#Condition-917"><span class="linenos">917</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Logical conditions like x AND y, or simply x&quot;&quot;&quot;</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Condition-909"><a href="#Condition-909"><span class="linenos">909</span></a><span class="k">class</span> <span class="nc">Condition</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Condition-910"><a href="#Condition-910"><span class="linenos">910</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Logical conditions like x AND y, or simply x&quot;&quot;&quot;</span>
</span></pre></div>
@@ -16081,6 +16716,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Condition.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Condition.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Condition.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Condition.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Condition.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Condition.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Condition.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -16101,6 +16737,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Condition.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Condition.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Condition.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Condition.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Condition.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Condition.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Condition.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -16122,6 +16759,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Condition.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Condition.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Condition.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Condition.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -16138,8 +16776,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Predicate"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Predicate-920"><a href="#Predicate-920"><span class="linenos">920</span></a><span class="k">class</span> <span class="nc">Predicate</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
-</span><span id="Predicate-921"><a href="#Predicate-921"><span class="linenos">921</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Relationships like x = y, x &gt; 1, x &gt;= y.&quot;&quot;&quot;</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Predicate-913"><a href="#Predicate-913"><span class="linenos">913</span></a><span class="k">class</span> <span class="nc">Predicate</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
+</span><span id="Predicate-914"><a href="#Predicate-914"><span class="linenos">914</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Relationships like x = y, x &gt; 1, x &gt;= y.&quot;&quot;&quot;</span>
</span></pre></div>
@@ -16185,6 +16823,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Predicate.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Predicate.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Predicate.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Predicate.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Predicate.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Predicate.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Predicate.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -16205,6 +16844,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Predicate.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Predicate.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Predicate.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Predicate.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Predicate.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Predicate.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Predicate.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -16226,6 +16866,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Predicate.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Predicate.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Predicate.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Predicate.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -16242,38 +16883,52 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#DerivedTable"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DerivedTable-924"><a href="#DerivedTable-924"><span class="linenos">924</span></a><span class="k">class</span> <span class="nc">DerivedTable</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="DerivedTable-925"><a href="#DerivedTable-925"><span class="linenos">925</span></a> <span class="nd">@property</span>
-</span><span id="DerivedTable-926"><a href="#DerivedTable-926"><span class="linenos">926</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
-</span><span id="DerivedTable-927"><a href="#DerivedTable-927"><span class="linenos">927</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">selects</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">Subqueryable</span><span class="p">)</span> <span class="k">else</span> <span class="p">[]</span>
-</span><span id="DerivedTable-928"><a href="#DerivedTable-928"><span class="linenos">928</span></a>
-</span><span id="DerivedTable-929"><a href="#DerivedTable-929"><span class="linenos">929</span></a> <span class="nd">@property</span>
-</span><span id="DerivedTable-930"><a href="#DerivedTable-930"><span class="linenos">930</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="DerivedTable-931"><a href="#DerivedTable-931"><span class="linenos">931</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">select</span><span class="o">.</span><span class="n">output_name</span> <span class="k">for</span> <span class="n">select</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">selects</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DerivedTable-917"><a href="#DerivedTable-917"><span class="linenos">917</span></a><span class="k">class</span> <span class="nc">DerivedTable</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="DerivedTable-918"><a href="#DerivedTable-918"><span class="linenos">918</span></a> <span class="nd">@property</span>
+</span><span id="DerivedTable-919"><a href="#DerivedTable-919"><span class="linenos">919</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="DerivedTable-920"><a href="#DerivedTable-920"><span class="linenos">920</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">selects</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">Subqueryable</span><span class="p">)</span> <span class="k">else</span> <span class="p">[]</span>
+</span><span id="DerivedTable-921"><a href="#DerivedTable-921"><span class="linenos">921</span></a>
+</span><span id="DerivedTable-922"><a href="#DerivedTable-922"><span class="linenos">922</span></a> <span class="nd">@property</span>
+</span><span id="DerivedTable-923"><a href="#DerivedTable-923"><span class="linenos">923</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="DerivedTable-924"><a href="#DerivedTable-924"><span class="linenos">924</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">select</span><span class="o">.</span><span class="n">output_name</span> <span class="k">for</span> <span class="n">select</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">selects</span><span class="p">]</span>
</span></pre></div>
<div id="DerivedTable.selects" class="classattr">
- <div class="attr variable">
+ <input id="DerivedTable.selects-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">selects</span><span class="annotation">: List[<a href="#Expression">Expression</a>]</span>
-
+ <label class="view-source-button" for="DerivedTable.selects-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#DerivedTable.selects"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DerivedTable.selects-918"><a href="#DerivedTable.selects-918"><span class="linenos">918</span></a> <span class="nd">@property</span>
+</span><span id="DerivedTable.selects-919"><a href="#DerivedTable.selects-919"><span class="linenos">919</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="DerivedTable.selects-920"><a href="#DerivedTable.selects-920"><span class="linenos">920</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">selects</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">Subqueryable</span><span class="p">)</span> <span class="k">else</span> <span class="p">[]</span>
+</span></pre></div>
+
+
</div>
<div id="DerivedTable.named_selects" class="classattr">
- <div class="attr variable">
+ <input id="DerivedTable.named_selects-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">named_selects</span><span class="annotation">: List[str]</span>
-
+ <label class="view-source-button" for="DerivedTable.named_selects-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#DerivedTable.named_selects"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DerivedTable.named_selects-922"><a href="#DerivedTable.named_selects-922"><span class="linenos">922</span></a> <span class="nd">@property</span>
+</span><span id="DerivedTable.named_selects-923"><a href="#DerivedTable.named_selects-923"><span class="linenos">923</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="DerivedTable.named_selects-924"><a href="#DerivedTable.named_selects-924"><span class="linenos">924</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">select</span><span class="o">.</span><span class="n">output_name</span> <span class="k">for</span> <span class="n">select</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">selects</span><span class="p">]</span>
+</span></pre></div>
+
+
</div>
@@ -16315,6 +16970,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="DerivedTable.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DerivedTable.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="DerivedTable.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="DerivedTable.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="DerivedTable.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="DerivedTable.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DerivedTable.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -16335,6 +16991,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="DerivedTable.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DerivedTable.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DerivedTable.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="DerivedTable.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="DerivedTable.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DerivedTable.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DerivedTable.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -16356,6 +17013,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="DerivedTable.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="DerivedTable.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="DerivedTable.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="DerivedTable.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -16372,75 +17030,75 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Unionable"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Unionable-934"><a href="#Unionable-934"><span class="linenos"> 934</span></a><span class="k">class</span> <span class="nc">Unionable</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Unionable-935"><a href="#Unionable-935"><span class="linenos"> 935</span></a> <span class="k">def</span> <span class="nf">union</span><span class="p">(</span>
-</span><span id="Unionable-936"><a href="#Unionable-936"><span class="linenos"> 936</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="Unionable-937"><a href="#Unionable-937"><span class="linenos"> 937</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Unionable</span><span class="p">:</span>
-</span><span id="Unionable-938"><a href="#Unionable-938"><span class="linenos"> 938</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Unionable-939"><a href="#Unionable-939"><span class="linenos"> 939</span></a><span class="sd"> Builds a UNION expression.</span>
-</span><span id="Unionable-940"><a href="#Unionable-940"><span class="linenos"> 940</span></a>
-</span><span id="Unionable-941"><a href="#Unionable-941"><span class="linenos"> 941</span></a><span class="sd"> Example:</span>
-</span><span id="Unionable-942"><a href="#Unionable-942"><span class="linenos"> 942</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="Unionable-943"><a href="#Unionable-943"><span class="linenos"> 943</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;SELECT * FROM foo&quot;).union(&quot;SELECT * FROM bla&quot;).sql()</span>
-</span><span id="Unionable-944"><a href="#Unionable-944"><span class="linenos"> 944</span></a><span class="sd"> &#39;SELECT * FROM foo UNION SELECT * FROM bla&#39;</span>
-</span><span id="Unionable-945"><a href="#Unionable-945"><span class="linenos"> 945</span></a>
-</span><span id="Unionable-946"><a href="#Unionable-946"><span class="linenos"> 946</span></a><span class="sd"> Args:</span>
-</span><span id="Unionable-947"><a href="#Unionable-947"><span class="linenos"> 947</span></a><span class="sd"> expression: the SQL code string.</span>
-</span><span id="Unionable-948"><a href="#Unionable-948"><span class="linenos"> 948</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Unionable-949"><a href="#Unionable-949"><span class="linenos"> 949</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
-</span><span id="Unionable-950"><a href="#Unionable-950"><span class="linenos"> 950</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="Unionable-951"><a href="#Unionable-951"><span class="linenos"> 951</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Unionable-952"><a href="#Unionable-952"><span class="linenos"> 952</span></a>
-</span><span id="Unionable-953"><a href="#Unionable-953"><span class="linenos"> 953</span></a><span class="sd"> Returns:</span>
-</span><span id="Unionable-954"><a href="#Unionable-954"><span class="linenos"> 954</span></a><span class="sd"> The new Union expression.</span>
-</span><span id="Unionable-955"><a href="#Unionable-955"><span class="linenos"> 955</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Unionable-956"><a href="#Unionable-956"><span class="linenos"> 956</span></a> <span class="k">return</span> <span class="n">union</span><span class="p">(</span><span class="n">left</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">right</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><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="Unionable-957"><a href="#Unionable-957"><span class="linenos"> 957</span></a>
-</span><span id="Unionable-958"><a href="#Unionable-958"><span class="linenos"> 958</span></a> <span class="k">def</span> <span class="nf">intersect</span><span class="p">(</span>
-</span><span id="Unionable-959"><a href="#Unionable-959"><span class="linenos"> 959</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="Unionable-960"><a href="#Unionable-960"><span class="linenos"> 960</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Unionable</span><span class="p">:</span>
-</span><span id="Unionable-961"><a href="#Unionable-961"><span class="linenos"> 961</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Unionable-962"><a href="#Unionable-962"><span class="linenos"> 962</span></a><span class="sd"> Builds an INTERSECT expression.</span>
-</span><span id="Unionable-963"><a href="#Unionable-963"><span class="linenos"> 963</span></a>
-</span><span id="Unionable-964"><a href="#Unionable-964"><span class="linenos"> 964</span></a><span class="sd"> Example:</span>
-</span><span id="Unionable-965"><a href="#Unionable-965"><span class="linenos"> 965</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="Unionable-966"><a href="#Unionable-966"><span class="linenos"> 966</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;SELECT * FROM foo&quot;).intersect(&quot;SELECT * FROM bla&quot;).sql()</span>
-</span><span id="Unionable-967"><a href="#Unionable-967"><span class="linenos"> 967</span></a><span class="sd"> &#39;SELECT * FROM foo INTERSECT SELECT * FROM bla&#39;</span>
-</span><span id="Unionable-968"><a href="#Unionable-968"><span class="linenos"> 968</span></a>
-</span><span id="Unionable-969"><a href="#Unionable-969"><span class="linenos"> 969</span></a><span class="sd"> Args:</span>
-</span><span id="Unionable-970"><a href="#Unionable-970"><span class="linenos"> 970</span></a><span class="sd"> expression: the SQL code string.</span>
-</span><span id="Unionable-971"><a href="#Unionable-971"><span class="linenos"> 971</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Unionable-972"><a href="#Unionable-972"><span class="linenos"> 972</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
-</span><span id="Unionable-973"><a href="#Unionable-973"><span class="linenos"> 973</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="Unionable-974"><a href="#Unionable-974"><span class="linenos"> 974</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Unionable-975"><a href="#Unionable-975"><span class="linenos"> 975</span></a>
-</span><span id="Unionable-976"><a href="#Unionable-976"><span class="linenos"> 976</span></a><span class="sd"> Returns:</span>
-</span><span id="Unionable-977"><a href="#Unionable-977"><span class="linenos"> 977</span></a><span class="sd"> The new Intersect expression.</span>
-</span><span id="Unionable-978"><a href="#Unionable-978"><span class="linenos"> 978</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Unionable-979"><a href="#Unionable-979"><span class="linenos"> 979</span></a> <span class="k">return</span> <span class="n">intersect</span><span class="p">(</span><span class="n">left</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">right</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><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="Unionable-980"><a href="#Unionable-980"><span class="linenos"> 980</span></a>
-</span><span id="Unionable-981"><a href="#Unionable-981"><span class="linenos"> 981</span></a> <span class="k">def</span> <span class="nf">except_</span><span class="p">(</span>
-</span><span id="Unionable-982"><a href="#Unionable-982"><span class="linenos"> 982</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="Unionable-983"><a href="#Unionable-983"><span class="linenos"> 983</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Unionable</span><span class="p">:</span>
-</span><span id="Unionable-984"><a href="#Unionable-984"><span class="linenos"> 984</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Unionable-985"><a href="#Unionable-985"><span class="linenos"> 985</span></a><span class="sd"> Builds an EXCEPT expression.</span>
-</span><span id="Unionable-986"><a href="#Unionable-986"><span class="linenos"> 986</span></a>
-</span><span id="Unionable-987"><a href="#Unionable-987"><span class="linenos"> 987</span></a><span class="sd"> Example:</span>
-</span><span id="Unionable-988"><a href="#Unionable-988"><span class="linenos"> 988</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="Unionable-989"><a href="#Unionable-989"><span class="linenos"> 989</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;SELECT * FROM foo&quot;).except_(&quot;SELECT * FROM bla&quot;).sql()</span>
-</span><span id="Unionable-990"><a href="#Unionable-990"><span class="linenos"> 990</span></a><span class="sd"> &#39;SELECT * FROM foo EXCEPT SELECT * FROM bla&#39;</span>
-</span><span id="Unionable-991"><a href="#Unionable-991"><span class="linenos"> 991</span></a>
-</span><span id="Unionable-992"><a href="#Unionable-992"><span class="linenos"> 992</span></a><span class="sd"> Args:</span>
-</span><span id="Unionable-993"><a href="#Unionable-993"><span class="linenos"> 993</span></a><span class="sd"> expression: the SQL code string.</span>
-</span><span id="Unionable-994"><a href="#Unionable-994"><span class="linenos"> 994</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Unionable-995"><a href="#Unionable-995"><span class="linenos"> 995</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
-</span><span id="Unionable-996"><a href="#Unionable-996"><span class="linenos"> 996</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="Unionable-997"><a href="#Unionable-997"><span class="linenos"> 997</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Unionable-998"><a href="#Unionable-998"><span class="linenos"> 998</span></a>
-</span><span id="Unionable-999"><a href="#Unionable-999"><span class="linenos"> 999</span></a><span class="sd"> Returns:</span>
-</span><span id="Unionable-1000"><a href="#Unionable-1000"><span class="linenos">1000</span></a><span class="sd"> The new Except expression.</span>
-</span><span id="Unionable-1001"><a href="#Unionable-1001"><span class="linenos">1001</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Unionable-1002"><a href="#Unionable-1002"><span class="linenos">1002</span></a> <span class="k">return</span> <span class="n">except_</span><span class="p">(</span><span class="n">left</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">right</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><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="Unionable-927"><a href="#Unionable-927"><span class="linenos">927</span></a><span class="k">class</span> <span class="nc">Unionable</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Unionable-928"><a href="#Unionable-928"><span class="linenos">928</span></a> <span class="k">def</span> <span class="nf">union</span><span class="p">(</span>
+</span><span id="Unionable-929"><a href="#Unionable-929"><span class="linenos">929</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="Unionable-930"><a href="#Unionable-930"><span class="linenos">930</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Unionable</span><span class="p">:</span>
+</span><span id="Unionable-931"><a href="#Unionable-931"><span class="linenos">931</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Unionable-932"><a href="#Unionable-932"><span class="linenos">932</span></a><span class="sd"> Builds a UNION expression.</span>
+</span><span id="Unionable-933"><a href="#Unionable-933"><span class="linenos">933</span></a>
+</span><span id="Unionable-934"><a href="#Unionable-934"><span class="linenos">934</span></a><span class="sd"> Example:</span>
+</span><span id="Unionable-935"><a href="#Unionable-935"><span class="linenos">935</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="Unionable-936"><a href="#Unionable-936"><span class="linenos">936</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;SELECT * FROM foo&quot;).union(&quot;SELECT * FROM bla&quot;).sql()</span>
+</span><span id="Unionable-937"><a href="#Unionable-937"><span class="linenos">937</span></a><span class="sd"> &#39;SELECT * FROM foo UNION SELECT * FROM bla&#39;</span>
+</span><span id="Unionable-938"><a href="#Unionable-938"><span class="linenos">938</span></a>
+</span><span id="Unionable-939"><a href="#Unionable-939"><span class="linenos">939</span></a><span class="sd"> Args:</span>
+</span><span id="Unionable-940"><a href="#Unionable-940"><span class="linenos">940</span></a><span class="sd"> expression: the SQL code string.</span>
+</span><span id="Unionable-941"><a href="#Unionable-941"><span class="linenos">941</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Unionable-942"><a href="#Unionable-942"><span class="linenos">942</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
+</span><span id="Unionable-943"><a href="#Unionable-943"><span class="linenos">943</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Unionable-944"><a href="#Unionable-944"><span class="linenos">944</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Unionable-945"><a href="#Unionable-945"><span class="linenos">945</span></a>
+</span><span id="Unionable-946"><a href="#Unionable-946"><span class="linenos">946</span></a><span class="sd"> Returns:</span>
+</span><span id="Unionable-947"><a href="#Unionable-947"><span class="linenos">947</span></a><span class="sd"> The new Union expression.</span>
+</span><span id="Unionable-948"><a href="#Unionable-948"><span class="linenos">948</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Unionable-949"><a href="#Unionable-949"><span class="linenos">949</span></a> <span class="k">return</span> <span class="n">union</span><span class="p">(</span><span class="n">left</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">right</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><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="Unionable-950"><a href="#Unionable-950"><span class="linenos">950</span></a>
+</span><span id="Unionable-951"><a href="#Unionable-951"><span class="linenos">951</span></a> <span class="k">def</span> <span class="nf">intersect</span><span class="p">(</span>
+</span><span id="Unionable-952"><a href="#Unionable-952"><span class="linenos">952</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="Unionable-953"><a href="#Unionable-953"><span class="linenos">953</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Unionable</span><span class="p">:</span>
+</span><span id="Unionable-954"><a href="#Unionable-954"><span class="linenos">954</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Unionable-955"><a href="#Unionable-955"><span class="linenos">955</span></a><span class="sd"> Builds an INTERSECT expression.</span>
+</span><span id="Unionable-956"><a href="#Unionable-956"><span class="linenos">956</span></a>
+</span><span id="Unionable-957"><a href="#Unionable-957"><span class="linenos">957</span></a><span class="sd"> Example:</span>
+</span><span id="Unionable-958"><a href="#Unionable-958"><span class="linenos">958</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="Unionable-959"><a href="#Unionable-959"><span class="linenos">959</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;SELECT * FROM foo&quot;).intersect(&quot;SELECT * FROM bla&quot;).sql()</span>
+</span><span id="Unionable-960"><a href="#Unionable-960"><span class="linenos">960</span></a><span class="sd"> &#39;SELECT * FROM foo INTERSECT SELECT * FROM bla&#39;</span>
+</span><span id="Unionable-961"><a href="#Unionable-961"><span class="linenos">961</span></a>
+</span><span id="Unionable-962"><a href="#Unionable-962"><span class="linenos">962</span></a><span class="sd"> Args:</span>
+</span><span id="Unionable-963"><a href="#Unionable-963"><span class="linenos">963</span></a><span class="sd"> expression: the SQL code string.</span>
+</span><span id="Unionable-964"><a href="#Unionable-964"><span class="linenos">964</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Unionable-965"><a href="#Unionable-965"><span class="linenos">965</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
+</span><span id="Unionable-966"><a href="#Unionable-966"><span class="linenos">966</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Unionable-967"><a href="#Unionable-967"><span class="linenos">967</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Unionable-968"><a href="#Unionable-968"><span class="linenos">968</span></a>
+</span><span id="Unionable-969"><a href="#Unionable-969"><span class="linenos">969</span></a><span class="sd"> Returns:</span>
+</span><span id="Unionable-970"><a href="#Unionable-970"><span class="linenos">970</span></a><span class="sd"> The new Intersect expression.</span>
+</span><span id="Unionable-971"><a href="#Unionable-971"><span class="linenos">971</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Unionable-972"><a href="#Unionable-972"><span class="linenos">972</span></a> <span class="k">return</span> <span class="n">intersect</span><span class="p">(</span><span class="n">left</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">right</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><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="Unionable-973"><a href="#Unionable-973"><span class="linenos">973</span></a>
+</span><span id="Unionable-974"><a href="#Unionable-974"><span class="linenos">974</span></a> <span class="k">def</span> <span class="nf">except_</span><span class="p">(</span>
+</span><span id="Unionable-975"><a href="#Unionable-975"><span class="linenos">975</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="Unionable-976"><a href="#Unionable-976"><span class="linenos">976</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Unionable</span><span class="p">:</span>
+</span><span id="Unionable-977"><a href="#Unionable-977"><span class="linenos">977</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Unionable-978"><a href="#Unionable-978"><span class="linenos">978</span></a><span class="sd"> Builds an EXCEPT expression.</span>
+</span><span id="Unionable-979"><a href="#Unionable-979"><span class="linenos">979</span></a>
+</span><span id="Unionable-980"><a href="#Unionable-980"><span class="linenos">980</span></a><span class="sd"> Example:</span>
+</span><span id="Unionable-981"><a href="#Unionable-981"><span class="linenos">981</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="Unionable-982"><a href="#Unionable-982"><span class="linenos">982</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;SELECT * FROM foo&quot;).except_(&quot;SELECT * FROM bla&quot;).sql()</span>
+</span><span id="Unionable-983"><a href="#Unionable-983"><span class="linenos">983</span></a><span class="sd"> &#39;SELECT * FROM foo EXCEPT SELECT * FROM bla&#39;</span>
+</span><span id="Unionable-984"><a href="#Unionable-984"><span class="linenos">984</span></a>
+</span><span id="Unionable-985"><a href="#Unionable-985"><span class="linenos">985</span></a><span class="sd"> Args:</span>
+</span><span id="Unionable-986"><a href="#Unionable-986"><span class="linenos">986</span></a><span class="sd"> expression: the SQL code string.</span>
+</span><span id="Unionable-987"><a href="#Unionable-987"><span class="linenos">987</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Unionable-988"><a href="#Unionable-988"><span class="linenos">988</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
+</span><span id="Unionable-989"><a href="#Unionable-989"><span class="linenos">989</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Unionable-990"><a href="#Unionable-990"><span class="linenos">990</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Unionable-991"><a href="#Unionable-991"><span class="linenos">991</span></a>
+</span><span id="Unionable-992"><a href="#Unionable-992"><span class="linenos">992</span></a><span class="sd"> Returns:</span>
+</span><span id="Unionable-993"><a href="#Unionable-993"><span class="linenos">993</span></a><span class="sd"> The new Except expression.</span>
+</span><span id="Unionable-994"><a href="#Unionable-994"><span class="linenos">994</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Unionable-995"><a href="#Unionable-995"><span class="linenos">995</span></a> <span class="k">return</span> <span class="n">except_</span><span class="p">(</span><span class="n">left</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">right</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><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>
@@ -16457,28 +17115,28 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Unionable.union"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Unionable.union-935"><a href="#Unionable.union-935"><span class="linenos">935</span></a> <span class="k">def</span> <span class="nf">union</span><span class="p">(</span>
-</span><span id="Unionable.union-936"><a href="#Unionable.union-936"><span class="linenos">936</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="Unionable.union-937"><a href="#Unionable.union-937"><span class="linenos">937</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Unionable</span><span class="p">:</span>
-</span><span id="Unionable.union-938"><a href="#Unionable.union-938"><span class="linenos">938</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Unionable.union-939"><a href="#Unionable.union-939"><span class="linenos">939</span></a><span class="sd"> Builds a UNION expression.</span>
-</span><span id="Unionable.union-940"><a href="#Unionable.union-940"><span class="linenos">940</span></a>
-</span><span id="Unionable.union-941"><a href="#Unionable.union-941"><span class="linenos">941</span></a><span class="sd"> Example:</span>
-</span><span id="Unionable.union-942"><a href="#Unionable.union-942"><span class="linenos">942</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="Unionable.union-943"><a href="#Unionable.union-943"><span class="linenos">943</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;SELECT * FROM foo&quot;).union(&quot;SELECT * FROM bla&quot;).sql()</span>
-</span><span id="Unionable.union-944"><a href="#Unionable.union-944"><span class="linenos">944</span></a><span class="sd"> &#39;SELECT * FROM foo UNION SELECT * FROM bla&#39;</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Unionable.union-928"><a href="#Unionable.union-928"><span class="linenos">928</span></a> <span class="k">def</span> <span class="nf">union</span><span class="p">(</span>
+</span><span id="Unionable.union-929"><a href="#Unionable.union-929"><span class="linenos">929</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="Unionable.union-930"><a href="#Unionable.union-930"><span class="linenos">930</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Unionable</span><span class="p">:</span>
+</span><span id="Unionable.union-931"><a href="#Unionable.union-931"><span class="linenos">931</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Unionable.union-932"><a href="#Unionable.union-932"><span class="linenos">932</span></a><span class="sd"> Builds a UNION expression.</span>
+</span><span id="Unionable.union-933"><a href="#Unionable.union-933"><span class="linenos">933</span></a>
+</span><span id="Unionable.union-934"><a href="#Unionable.union-934"><span class="linenos">934</span></a><span class="sd"> Example:</span>
+</span><span id="Unionable.union-935"><a href="#Unionable.union-935"><span class="linenos">935</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="Unionable.union-936"><a href="#Unionable.union-936"><span class="linenos">936</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;SELECT * FROM foo&quot;).union(&quot;SELECT * FROM bla&quot;).sql()</span>
+</span><span id="Unionable.union-937"><a href="#Unionable.union-937"><span class="linenos">937</span></a><span class="sd"> &#39;SELECT * FROM foo UNION SELECT * FROM bla&#39;</span>
+</span><span id="Unionable.union-938"><a href="#Unionable.union-938"><span class="linenos">938</span></a>
+</span><span id="Unionable.union-939"><a href="#Unionable.union-939"><span class="linenos">939</span></a><span class="sd"> Args:</span>
+</span><span id="Unionable.union-940"><a href="#Unionable.union-940"><span class="linenos">940</span></a><span class="sd"> expression: the SQL code string.</span>
+</span><span id="Unionable.union-941"><a href="#Unionable.union-941"><span class="linenos">941</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Unionable.union-942"><a href="#Unionable.union-942"><span class="linenos">942</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
+</span><span id="Unionable.union-943"><a href="#Unionable.union-943"><span class="linenos">943</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Unionable.union-944"><a href="#Unionable.union-944"><span class="linenos">944</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Unionable.union-945"><a href="#Unionable.union-945"><span class="linenos">945</span></a>
-</span><span id="Unionable.union-946"><a href="#Unionable.union-946"><span class="linenos">946</span></a><span class="sd"> Args:</span>
-</span><span id="Unionable.union-947"><a href="#Unionable.union-947"><span class="linenos">947</span></a><span class="sd"> expression: the SQL code string.</span>
-</span><span id="Unionable.union-948"><a href="#Unionable.union-948"><span class="linenos">948</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Unionable.union-949"><a href="#Unionable.union-949"><span class="linenos">949</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
-</span><span id="Unionable.union-950"><a href="#Unionable.union-950"><span class="linenos">950</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="Unionable.union-951"><a href="#Unionable.union-951"><span class="linenos">951</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Unionable.union-952"><a href="#Unionable.union-952"><span class="linenos">952</span></a>
-</span><span id="Unionable.union-953"><a href="#Unionable.union-953"><span class="linenos">953</span></a><span class="sd"> Returns:</span>
-</span><span id="Unionable.union-954"><a href="#Unionable.union-954"><span class="linenos">954</span></a><span class="sd"> The new Union expression.</span>
-</span><span id="Unionable.union-955"><a href="#Unionable.union-955"><span class="linenos">955</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Unionable.union-956"><a href="#Unionable.union-956"><span class="linenos">956</span></a> <span class="k">return</span> <span class="n">union</span><span class="p">(</span><span class="n">left</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">right</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><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="Unionable.union-946"><a href="#Unionable.union-946"><span class="linenos">946</span></a><span class="sd"> Returns:</span>
+</span><span id="Unionable.union-947"><a href="#Unionable.union-947"><span class="linenos">947</span></a><span class="sd"> The new Union expression.</span>
+</span><span id="Unionable.union-948"><a href="#Unionable.union-948"><span class="linenos">948</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Unionable.union-949"><a href="#Unionable.union-949"><span class="linenos">949</span></a> <span class="k">return</span> <span class="n">union</span><span class="p">(</span><span class="n">left</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">right</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><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>
@@ -16525,28 +17183,28 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Unionable.intersect"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Unionable.intersect-958"><a href="#Unionable.intersect-958"><span class="linenos">958</span></a> <span class="k">def</span> <span class="nf">intersect</span><span class="p">(</span>
-</span><span id="Unionable.intersect-959"><a href="#Unionable.intersect-959"><span class="linenos">959</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="Unionable.intersect-960"><a href="#Unionable.intersect-960"><span class="linenos">960</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Unionable</span><span class="p">:</span>
-</span><span id="Unionable.intersect-961"><a href="#Unionable.intersect-961"><span class="linenos">961</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Unionable.intersect-962"><a href="#Unionable.intersect-962"><span class="linenos">962</span></a><span class="sd"> Builds an INTERSECT expression.</span>
-</span><span id="Unionable.intersect-963"><a href="#Unionable.intersect-963"><span class="linenos">963</span></a>
-</span><span id="Unionable.intersect-964"><a href="#Unionable.intersect-964"><span class="linenos">964</span></a><span class="sd"> Example:</span>
-</span><span id="Unionable.intersect-965"><a href="#Unionable.intersect-965"><span class="linenos">965</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="Unionable.intersect-966"><a href="#Unionable.intersect-966"><span class="linenos">966</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;SELECT * FROM foo&quot;).intersect(&quot;SELECT * FROM bla&quot;).sql()</span>
-</span><span id="Unionable.intersect-967"><a href="#Unionable.intersect-967"><span class="linenos">967</span></a><span class="sd"> &#39;SELECT * FROM foo INTERSECT SELECT * FROM bla&#39;</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Unionable.intersect-951"><a href="#Unionable.intersect-951"><span class="linenos">951</span></a> <span class="k">def</span> <span class="nf">intersect</span><span class="p">(</span>
+</span><span id="Unionable.intersect-952"><a href="#Unionable.intersect-952"><span class="linenos">952</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="Unionable.intersect-953"><a href="#Unionable.intersect-953"><span class="linenos">953</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Unionable</span><span class="p">:</span>
+</span><span id="Unionable.intersect-954"><a href="#Unionable.intersect-954"><span class="linenos">954</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Unionable.intersect-955"><a href="#Unionable.intersect-955"><span class="linenos">955</span></a><span class="sd"> Builds an INTERSECT expression.</span>
+</span><span id="Unionable.intersect-956"><a href="#Unionable.intersect-956"><span class="linenos">956</span></a>
+</span><span id="Unionable.intersect-957"><a href="#Unionable.intersect-957"><span class="linenos">957</span></a><span class="sd"> Example:</span>
+</span><span id="Unionable.intersect-958"><a href="#Unionable.intersect-958"><span class="linenos">958</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="Unionable.intersect-959"><a href="#Unionable.intersect-959"><span class="linenos">959</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;SELECT * FROM foo&quot;).intersect(&quot;SELECT * FROM bla&quot;).sql()</span>
+</span><span id="Unionable.intersect-960"><a href="#Unionable.intersect-960"><span class="linenos">960</span></a><span class="sd"> &#39;SELECT * FROM foo INTERSECT SELECT * FROM bla&#39;</span>
+</span><span id="Unionable.intersect-961"><a href="#Unionable.intersect-961"><span class="linenos">961</span></a>
+</span><span id="Unionable.intersect-962"><a href="#Unionable.intersect-962"><span class="linenos">962</span></a><span class="sd"> Args:</span>
+</span><span id="Unionable.intersect-963"><a href="#Unionable.intersect-963"><span class="linenos">963</span></a><span class="sd"> expression: the SQL code string.</span>
+</span><span id="Unionable.intersect-964"><a href="#Unionable.intersect-964"><span class="linenos">964</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Unionable.intersect-965"><a href="#Unionable.intersect-965"><span class="linenos">965</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
+</span><span id="Unionable.intersect-966"><a href="#Unionable.intersect-966"><span class="linenos">966</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Unionable.intersect-967"><a href="#Unionable.intersect-967"><span class="linenos">967</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Unionable.intersect-968"><a href="#Unionable.intersect-968"><span class="linenos">968</span></a>
-</span><span id="Unionable.intersect-969"><a href="#Unionable.intersect-969"><span class="linenos">969</span></a><span class="sd"> Args:</span>
-</span><span id="Unionable.intersect-970"><a href="#Unionable.intersect-970"><span class="linenos">970</span></a><span class="sd"> expression: the SQL code string.</span>
-</span><span id="Unionable.intersect-971"><a href="#Unionable.intersect-971"><span class="linenos">971</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Unionable.intersect-972"><a href="#Unionable.intersect-972"><span class="linenos">972</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
-</span><span id="Unionable.intersect-973"><a href="#Unionable.intersect-973"><span class="linenos">973</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="Unionable.intersect-974"><a href="#Unionable.intersect-974"><span class="linenos">974</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Unionable.intersect-975"><a href="#Unionable.intersect-975"><span class="linenos">975</span></a>
-</span><span id="Unionable.intersect-976"><a href="#Unionable.intersect-976"><span class="linenos">976</span></a><span class="sd"> Returns:</span>
-</span><span id="Unionable.intersect-977"><a href="#Unionable.intersect-977"><span class="linenos">977</span></a><span class="sd"> The new Intersect expression.</span>
-</span><span id="Unionable.intersect-978"><a href="#Unionable.intersect-978"><span class="linenos">978</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Unionable.intersect-979"><a href="#Unionable.intersect-979"><span class="linenos">979</span></a> <span class="k">return</span> <span class="n">intersect</span><span class="p">(</span><span class="n">left</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">right</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><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="Unionable.intersect-969"><a href="#Unionable.intersect-969"><span class="linenos">969</span></a><span class="sd"> Returns:</span>
+</span><span id="Unionable.intersect-970"><a href="#Unionable.intersect-970"><span class="linenos">970</span></a><span class="sd"> The new Intersect expression.</span>
+</span><span id="Unionable.intersect-971"><a href="#Unionable.intersect-971"><span class="linenos">971</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Unionable.intersect-972"><a href="#Unionable.intersect-972"><span class="linenos">972</span></a> <span class="k">return</span> <span class="n">intersect</span><span class="p">(</span><span class="n">left</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">right</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><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>
@@ -16593,28 +17251,28 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Unionable.except_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Unionable.except_-981"><a href="#Unionable.except_-981"><span class="linenos"> 981</span></a> <span class="k">def</span> <span class="nf">except_</span><span class="p">(</span>
-</span><span id="Unionable.except_-982"><a href="#Unionable.except_-982"><span class="linenos"> 982</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="Unionable.except_-983"><a href="#Unionable.except_-983"><span class="linenos"> 983</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Unionable</span><span class="p">:</span>
-</span><span id="Unionable.except_-984"><a href="#Unionable.except_-984"><span class="linenos"> 984</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Unionable.except_-985"><a href="#Unionable.except_-985"><span class="linenos"> 985</span></a><span class="sd"> Builds an EXCEPT expression.</span>
-</span><span id="Unionable.except_-986"><a href="#Unionable.except_-986"><span class="linenos"> 986</span></a>
-</span><span id="Unionable.except_-987"><a href="#Unionable.except_-987"><span class="linenos"> 987</span></a><span class="sd"> Example:</span>
-</span><span id="Unionable.except_-988"><a href="#Unionable.except_-988"><span class="linenos"> 988</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="Unionable.except_-989"><a href="#Unionable.except_-989"><span class="linenos"> 989</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;SELECT * FROM foo&quot;).except_(&quot;SELECT * FROM bla&quot;).sql()</span>
-</span><span id="Unionable.except_-990"><a href="#Unionable.except_-990"><span class="linenos"> 990</span></a><span class="sd"> &#39;SELECT * FROM foo EXCEPT SELECT * FROM bla&#39;</span>
-</span><span id="Unionable.except_-991"><a href="#Unionable.except_-991"><span class="linenos"> 991</span></a>
-</span><span id="Unionable.except_-992"><a href="#Unionable.except_-992"><span class="linenos"> 992</span></a><span class="sd"> Args:</span>
-</span><span id="Unionable.except_-993"><a href="#Unionable.except_-993"><span class="linenos"> 993</span></a><span class="sd"> expression: the SQL code string.</span>
-</span><span id="Unionable.except_-994"><a href="#Unionable.except_-994"><span class="linenos"> 994</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Unionable.except_-995"><a href="#Unionable.except_-995"><span class="linenos"> 995</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
-</span><span id="Unionable.except_-996"><a href="#Unionable.except_-996"><span class="linenos"> 996</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="Unionable.except_-997"><a href="#Unionable.except_-997"><span class="linenos"> 997</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Unionable.except_-998"><a href="#Unionable.except_-998"><span class="linenos"> 998</span></a>
-</span><span id="Unionable.except_-999"><a href="#Unionable.except_-999"><span class="linenos"> 999</span></a><span class="sd"> Returns:</span>
-</span><span id="Unionable.except_-1000"><a href="#Unionable.except_-1000"><span class="linenos">1000</span></a><span class="sd"> The new Except expression.</span>
-</span><span id="Unionable.except_-1001"><a href="#Unionable.except_-1001"><span class="linenos">1001</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Unionable.except_-1002"><a href="#Unionable.except_-1002"><span class="linenos">1002</span></a> <span class="k">return</span> <span class="n">except_</span><span class="p">(</span><span class="n">left</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">right</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><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="Unionable.except_-974"><a href="#Unionable.except_-974"><span class="linenos">974</span></a> <span class="k">def</span> <span class="nf">except_</span><span class="p">(</span>
+</span><span id="Unionable.except_-975"><a href="#Unionable.except_-975"><span class="linenos">975</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="Unionable.except_-976"><a href="#Unionable.except_-976"><span class="linenos">976</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Unionable</span><span class="p">:</span>
+</span><span id="Unionable.except_-977"><a href="#Unionable.except_-977"><span class="linenos">977</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Unionable.except_-978"><a href="#Unionable.except_-978"><span class="linenos">978</span></a><span class="sd"> Builds an EXCEPT expression.</span>
+</span><span id="Unionable.except_-979"><a href="#Unionable.except_-979"><span class="linenos">979</span></a>
+</span><span id="Unionable.except_-980"><a href="#Unionable.except_-980"><span class="linenos">980</span></a><span class="sd"> Example:</span>
+</span><span id="Unionable.except_-981"><a href="#Unionable.except_-981"><span class="linenos">981</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="Unionable.except_-982"><a href="#Unionable.except_-982"><span class="linenos">982</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;SELECT * FROM foo&quot;).except_(&quot;SELECT * FROM bla&quot;).sql()</span>
+</span><span id="Unionable.except_-983"><a href="#Unionable.except_-983"><span class="linenos">983</span></a><span class="sd"> &#39;SELECT * FROM foo EXCEPT SELECT * FROM bla&#39;</span>
+</span><span id="Unionable.except_-984"><a href="#Unionable.except_-984"><span class="linenos">984</span></a>
+</span><span id="Unionable.except_-985"><a href="#Unionable.except_-985"><span class="linenos">985</span></a><span class="sd"> Args:</span>
+</span><span id="Unionable.except_-986"><a href="#Unionable.except_-986"><span class="linenos">986</span></a><span class="sd"> expression: the SQL code string.</span>
+</span><span id="Unionable.except_-987"><a href="#Unionable.except_-987"><span class="linenos">987</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Unionable.except_-988"><a href="#Unionable.except_-988"><span class="linenos">988</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
+</span><span id="Unionable.except_-989"><a href="#Unionable.except_-989"><span class="linenos">989</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Unionable.except_-990"><a href="#Unionable.except_-990"><span class="linenos">990</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Unionable.except_-991"><a href="#Unionable.except_-991"><span class="linenos">991</span></a>
+</span><span id="Unionable.except_-992"><a href="#Unionable.except_-992"><span class="linenos">992</span></a><span class="sd"> Returns:</span>
+</span><span id="Unionable.except_-993"><a href="#Unionable.except_-993"><span class="linenos">993</span></a><span class="sd"> The new Except expression.</span>
+</span><span id="Unionable.except_-994"><a href="#Unionable.except_-994"><span class="linenos">994</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Unionable.except_-995"><a href="#Unionable.except_-995"><span class="linenos">995</span></a> <span class="k">return</span> <span class="n">except_</span><span class="p">(</span><span class="n">left</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">right</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><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>
@@ -16688,6 +17346,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Unionable.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Unionable.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Unionable.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Unionable.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Unionable.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Unionable.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Unionable.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -16708,6 +17367,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Unionable.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Unionable.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Unionable.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Unionable.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Unionable.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Unionable.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Unionable.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -16729,6 +17389,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Unionable.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Unionable.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Unionable.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Unionable.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -16745,24 +17406,32 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#UDTF"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="UDTF-1005"><a href="#UDTF-1005"><span class="linenos">1005</span></a><span class="k">class</span> <span class="nc">UDTF</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="UDTF-1006"><a href="#UDTF-1006"><span class="linenos">1006</span></a> <span class="nd">@property</span>
-</span><span id="UDTF-1007"><a href="#UDTF-1007"><span class="linenos">1007</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="UDTF-1008"><a href="#UDTF-1008"><span class="linenos">1008</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;alias&quot;</span><span class="p">)</span>
-</span><span id="UDTF-1009"><a href="#UDTF-1009"><span class="linenos">1009</span></a> <span class="k">return</span> <span class="n">alias</span><span class="o">.</span><span class="n">columns</span> <span class="k">if</span> <span class="n">alias</span> <span class="k">else</span> <span class="p">[]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="UDTF-998"><a href="#UDTF-998"><span class="linenos"> 998</span></a><span class="k">class</span> <span class="nc">UDTF</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="UDTF-999"><a href="#UDTF-999"><span class="linenos"> 999</span></a> <span class="nd">@property</span>
+</span><span id="UDTF-1000"><a href="#UDTF-1000"><span class="linenos">1000</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="UDTF-1001"><a href="#UDTF-1001"><span class="linenos">1001</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;alias&quot;</span><span class="p">)</span>
+</span><span id="UDTF-1002"><a href="#UDTF-1002"><span class="linenos">1002</span></a> <span class="k">return</span> <span class="n">alias</span><span class="o">.</span><span class="n">columns</span> <span class="k">if</span> <span class="n">alias</span> <span class="k">else</span> <span class="p">[]</span>
</span></pre></div>
<div id="UDTF.selects" class="classattr">
- <div class="attr variable">
+ <input id="UDTF.selects-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">selects</span><span class="annotation">: List[<a href="#Expression">Expression</a>]</span>
-
+ <label class="view-source-button" for="UDTF.selects-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#UDTF.selects"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="UDTF.selects-999"><a href="#UDTF.selects-999"><span class="linenos"> 999</span></a> <span class="nd">@property</span>
+</span><span id="UDTF.selects-1000"><a href="#UDTF.selects-1000"><span class="linenos">1000</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="UDTF.selects-1001"><a href="#UDTF.selects-1001"><span class="linenos">1001</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;alias&quot;</span><span class="p">)</span>
+</span><span id="UDTF.selects-1002"><a href="#UDTF.selects-1002"><span class="linenos">1002</span></a> <span class="k">return</span> <span class="n">alias</span><span class="o">.</span><span class="n">columns</span> <span class="k">if</span> <span class="n">alias</span> <span class="k">else</span> <span class="p">[]</span>
+</span></pre></div>
+
+
</div>
@@ -16804,6 +17473,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="UDTF.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="UDTF.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="UDTF.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="UDTF.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="UDTF.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="UDTF.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="UDTF.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -16824,6 +17494,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="UDTF.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="UDTF.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="UDTF.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="UDTF.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="UDTF.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="UDTF.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="UDTF.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -16845,6 +17516,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="UDTF.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="UDTF.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="UDTF.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="UDTF.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#DerivedTable">DerivedTable</a></dt>
@@ -16871,13 +17543,13 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Cache"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Cache-1012"><a href="#Cache-1012"><span class="linenos">1012</span></a><span class="k">class</span> <span class="nc">Cache</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Cache-1013"><a href="#Cache-1013"><span class="linenos">1013</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Cache-1014"><a href="#Cache-1014"><span class="linenos">1014</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="Cache-1015"><a href="#Cache-1015"><span class="linenos">1015</span></a> <span class="s2">&quot;lazy&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Cache-1016"><a href="#Cache-1016"><span class="linenos">1016</span></a> <span class="s2">&quot;options&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Cache-1017"><a href="#Cache-1017"><span class="linenos">1017</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="Cache-1018"><a href="#Cache-1018"><span class="linenos">1018</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Cache-1005"><a href="#Cache-1005"><span class="linenos">1005</span></a><span class="k">class</span> <span class="nc">Cache</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Cache-1006"><a href="#Cache-1006"><span class="linenos">1006</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Cache-1007"><a href="#Cache-1007"><span class="linenos">1007</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="Cache-1008"><a href="#Cache-1008"><span class="linenos">1008</span></a> <span class="s2">&quot;lazy&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Cache-1009"><a href="#Cache-1009"><span class="linenos">1009</span></a> <span class="s2">&quot;options&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Cache-1010"><a href="#Cache-1010"><span class="linenos">1010</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="Cache-1011"><a href="#Cache-1011"><span class="linenos">1011</span></a> <span class="p">}</span>
</span></pre></div>
@@ -16932,6 +17604,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Cache.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Cache.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Cache.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Cache.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Cache.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Cache.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Cache.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -16952,6 +17625,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Cache.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Cache.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Cache.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Cache.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Cache.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Cache.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Cache.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -16973,6 +17647,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Cache.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Cache.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Cache.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Cache.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -16989,8 +17664,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Uncache"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Uncache-1021"><a href="#Uncache-1021"><span class="linenos">1021</span></a><span class="k">class</span> <span class="nc">Uncache</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Uncache-1022"><a href="#Uncache-1022"><span class="linenos">1022</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&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="Uncache-1014"><a href="#Uncache-1014"><span class="linenos">1014</span></a><span class="k">class</span> <span class="nc">Uncache</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Uncache-1015"><a href="#Uncache-1015"><span class="linenos">1015</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&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>
@@ -17045,6 +17720,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Uncache.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Uncache.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Uncache.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Uncache.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Uncache.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Uncache.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Uncache.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -17065,6 +17741,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Uncache.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Uncache.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Uncache.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Uncache.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Uncache.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Uncache.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Uncache.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -17086,6 +17763,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Uncache.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Uncache.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Uncache.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Uncache.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -17102,8 +17780,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Refresh"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Refresh-1025"><a href="#Refresh-1025"><span class="linenos">1025</span></a><span class="k">class</span> <span class="nc">Refresh</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Refresh-1026"><a href="#Refresh-1026"><span class="linenos">1026</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Refresh-1018"><a href="#Refresh-1018"><span class="linenos">1018</span></a><span class="k">class</span> <span class="nc">Refresh</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Refresh-1019"><a href="#Refresh-1019"><span class="linenos">1019</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -17147,6 +17825,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Refresh.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Refresh.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Refresh.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Refresh.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Refresh.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Refresh.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Refresh.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -17167,6 +17846,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Refresh.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Refresh.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Refresh.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Refresh.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Refresh.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Refresh.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Refresh.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -17188,6 +17868,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Refresh.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Refresh.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Refresh.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Refresh.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -17204,60 +17885,88 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#DDL"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DDL-1029"><a href="#DDL-1029"><span class="linenos">1029</span></a><span class="k">class</span> <span class="nc">DDL</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DDL-1022"><a href="#DDL-1022"><span class="linenos">1022</span></a><span class="k">class</span> <span class="nc">DDL</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="DDL-1023"><a href="#DDL-1023"><span class="linenos">1023</span></a> <span class="nd">@property</span>
+</span><span id="DDL-1024"><a href="#DDL-1024"><span class="linenos">1024</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="DDL-1025"><a href="#DDL-1025"><span class="linenos">1025</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="DDL-1026"><a href="#DDL-1026"><span class="linenos">1026</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">with_</span><span class="p">:</span>
+</span><span id="DDL-1027"><a href="#DDL-1027"><span class="linenos">1027</span></a> <span class="k">return</span> <span class="p">[]</span>
+</span><span id="DDL-1028"><a href="#DDL-1028"><span class="linenos">1028</span></a> <span class="k">return</span> <span class="n">with_</span><span class="o">.</span><span class="n">expressions</span>
+</span><span id="DDL-1029"><a href="#DDL-1029"><span class="linenos">1029</span></a>
</span><span id="DDL-1030"><a href="#DDL-1030"><span class="linenos">1030</span></a> <span class="nd">@property</span>
-</span><span id="DDL-1031"><a href="#DDL-1031"><span class="linenos">1031</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="DDL-1032"><a href="#DDL-1032"><span class="linenos">1032</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="DDL-1033"><a href="#DDL-1033"><span class="linenos">1033</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">with_</span><span class="p">:</span>
-</span><span id="DDL-1034"><a href="#DDL-1034"><span class="linenos">1034</span></a> <span class="k">return</span> <span class="p">[]</span>
-</span><span id="DDL-1035"><a href="#DDL-1035"><span class="linenos">1035</span></a> <span class="k">return</span> <span class="n">with_</span><span class="o">.</span><span class="n">expressions</span>
-</span><span id="DDL-1036"><a href="#DDL-1036"><span class="linenos">1036</span></a>
-</span><span id="DDL-1037"><a href="#DDL-1037"><span class="linenos">1037</span></a> <span class="nd">@property</span>
-</span><span id="DDL-1038"><a href="#DDL-1038"><span class="linenos">1038</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="DDL-1039"><a href="#DDL-1039"><span class="linenos">1039</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">,</span> <span class="n">Subqueryable</span><span class="p">):</span>
-</span><span id="DDL-1040"><a href="#DDL-1040"><span class="linenos">1040</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">named_selects</span>
-</span><span id="DDL-1041"><a href="#DDL-1041"><span class="linenos">1041</span></a> <span class="k">return</span> <span class="p">[]</span>
-</span><span id="DDL-1042"><a href="#DDL-1042"><span class="linenos">1042</span></a>
-</span><span id="DDL-1043"><a href="#DDL-1043"><span class="linenos">1043</span></a> <span class="nd">@property</span>
-</span><span id="DDL-1044"><a href="#DDL-1044"><span class="linenos">1044</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="DDL-1045"><a href="#DDL-1045"><span class="linenos">1045</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">,</span> <span class="n">Subqueryable</span><span class="p">):</span>
-</span><span id="DDL-1046"><a href="#DDL-1046"><span class="linenos">1046</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">selects</span>
-</span><span id="DDL-1047"><a href="#DDL-1047"><span class="linenos">1047</span></a> <span class="k">return</span> <span class="p">[]</span>
+</span><span id="DDL-1031"><a href="#DDL-1031"><span class="linenos">1031</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="DDL-1032"><a href="#DDL-1032"><span class="linenos">1032</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">,</span> <span class="n">Subqueryable</span><span class="p">):</span>
+</span><span id="DDL-1033"><a href="#DDL-1033"><span class="linenos">1033</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">named_selects</span>
+</span><span id="DDL-1034"><a href="#DDL-1034"><span class="linenos">1034</span></a> <span class="k">return</span> <span class="p">[]</span>
+</span><span id="DDL-1035"><a href="#DDL-1035"><span class="linenos">1035</span></a>
+</span><span id="DDL-1036"><a href="#DDL-1036"><span class="linenos">1036</span></a> <span class="nd">@property</span>
+</span><span id="DDL-1037"><a href="#DDL-1037"><span class="linenos">1037</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="DDL-1038"><a href="#DDL-1038"><span class="linenos">1038</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">,</span> <span class="n">Subqueryable</span><span class="p">):</span>
+</span><span id="DDL-1039"><a href="#DDL-1039"><span class="linenos">1039</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">selects</span>
+</span><span id="DDL-1040"><a href="#DDL-1040"><span class="linenos">1040</span></a> <span class="k">return</span> <span class="p">[]</span>
</span></pre></div>
<div id="DDL.ctes" class="classattr">
- <div class="attr variable">
+ <input id="DDL.ctes-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">ctes</span>
-
+ <label class="view-source-button" for="DDL.ctes-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#DDL.ctes"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DDL.ctes-1023"><a href="#DDL.ctes-1023"><span class="linenos">1023</span></a> <span class="nd">@property</span>
+</span><span id="DDL.ctes-1024"><a href="#DDL.ctes-1024"><span class="linenos">1024</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="DDL.ctes-1025"><a href="#DDL.ctes-1025"><span class="linenos">1025</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="DDL.ctes-1026"><a href="#DDL.ctes-1026"><span class="linenos">1026</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">with_</span><span class="p">:</span>
+</span><span id="DDL.ctes-1027"><a href="#DDL.ctes-1027"><span class="linenos">1027</span></a> <span class="k">return</span> <span class="p">[]</span>
+</span><span id="DDL.ctes-1028"><a href="#DDL.ctes-1028"><span class="linenos">1028</span></a> <span class="k">return</span> <span class="n">with_</span><span class="o">.</span><span class="n">expressions</span>
+</span></pre></div>
+
+
</div>
<div id="DDL.named_selects" class="classattr">
- <div class="attr variable">
+ <input id="DDL.named_selects-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">named_selects</span><span class="annotation">: List[str]</span>
-
+ <label class="view-source-button" for="DDL.named_selects-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#DDL.named_selects"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DDL.named_selects-1030"><a href="#DDL.named_selects-1030"><span class="linenos">1030</span></a> <span class="nd">@property</span>
+</span><span id="DDL.named_selects-1031"><a href="#DDL.named_selects-1031"><span class="linenos">1031</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="DDL.named_selects-1032"><a href="#DDL.named_selects-1032"><span class="linenos">1032</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">,</span> <span class="n">Subqueryable</span><span class="p">):</span>
+</span><span id="DDL.named_selects-1033"><a href="#DDL.named_selects-1033"><span class="linenos">1033</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">named_selects</span>
+</span><span id="DDL.named_selects-1034"><a href="#DDL.named_selects-1034"><span class="linenos">1034</span></a> <span class="k">return</span> <span class="p">[]</span>
+</span></pre></div>
+
+
</div>
<div id="DDL.selects" class="classattr">
- <div class="attr variable">
+ <input id="DDL.selects-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">selects</span><span class="annotation">: List[<a href="#Expression">Expression</a>]</span>
-
+ <label class="view-source-button" for="DDL.selects-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#DDL.selects"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DDL.selects-1036"><a href="#DDL.selects-1036"><span class="linenos">1036</span></a> <span class="nd">@property</span>
+</span><span id="DDL.selects-1037"><a href="#DDL.selects-1037"><span class="linenos">1037</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="DDL.selects-1038"><a href="#DDL.selects-1038"><span class="linenos">1038</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">,</span> <span class="n">Subqueryable</span><span class="p">):</span>
+</span><span id="DDL.selects-1039"><a href="#DDL.selects-1039"><span class="linenos">1039</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">selects</span>
+</span><span id="DDL.selects-1040"><a href="#DDL.selects-1040"><span class="linenos">1040</span></a> <span class="k">return</span> <span class="p">[]</span>
+</span></pre></div>
+
+
</div>
@@ -17299,6 +18008,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="DDL.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DDL.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="DDL.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="DDL.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="DDL.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="DDL.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DDL.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -17319,6 +18029,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="DDL.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DDL.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DDL.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="DDL.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="DDL.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DDL.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DDL.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -17340,6 +18051,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="DDL.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="DDL.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="DDL.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="DDL.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -17356,41 +18068,41 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#DML"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DML-1050"><a href="#DML-1050"><span class="linenos">1050</span></a><span class="k">class</span> <span class="nc">DML</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="DML-1051"><a href="#DML-1051"><span class="linenos">1051</span></a> <span class="k">def</span> <span class="nf">returning</span><span class="p">(</span>
-</span><span id="DML-1052"><a href="#DML-1052"><span class="linenos">1052</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="DML-1053"><a href="#DML-1053"><span class="linenos">1053</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="DML-1054"><a href="#DML-1054"><span class="linenos">1054</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="DML-1055"><a href="#DML-1055"><span class="linenos">1055</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="DML-1056"><a href="#DML-1056"><span class="linenos">1056</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="DML-1057"><a href="#DML-1057"><span class="linenos">1057</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DML</span><span class="p">:</span>
-</span><span id="DML-1058"><a href="#DML-1058"><span class="linenos">1058</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="DML-1059"><a href="#DML-1059"><span class="linenos">1059</span></a><span class="sd"> Set the RETURNING expression. Not supported by all dialects.</span>
-</span><span id="DML-1060"><a href="#DML-1060"><span class="linenos">1060</span></a>
-</span><span id="DML-1061"><a href="#DML-1061"><span class="linenos">1061</span></a><span class="sd"> Example:</span>
-</span><span id="DML-1062"><a href="#DML-1062"><span class="linenos">1062</span></a><span class="sd"> &gt;&gt;&gt; delete(&quot;tbl&quot;).returning(&quot;*&quot;, dialect=&quot;postgres&quot;).sql()</span>
-</span><span id="DML-1063"><a href="#DML-1063"><span class="linenos">1063</span></a><span class="sd"> &#39;DELETE FROM tbl RETURNING *&#39;</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DML-1043"><a href="#DML-1043"><span class="linenos">1043</span></a><span class="k">class</span> <span class="nc">DML</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="DML-1044"><a href="#DML-1044"><span class="linenos">1044</span></a> <span class="k">def</span> <span class="nf">returning</span><span class="p">(</span>
+</span><span id="DML-1045"><a href="#DML-1045"><span class="linenos">1045</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="DML-1046"><a href="#DML-1046"><span class="linenos">1046</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="DML-1047"><a href="#DML-1047"><span class="linenos">1047</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="DML-1048"><a href="#DML-1048"><span class="linenos">1048</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="DML-1049"><a href="#DML-1049"><span class="linenos">1049</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="DML-1050"><a href="#DML-1050"><span class="linenos">1050</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DML</span><span class="p">:</span>
+</span><span id="DML-1051"><a href="#DML-1051"><span class="linenos">1051</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="DML-1052"><a href="#DML-1052"><span class="linenos">1052</span></a><span class="sd"> Set the RETURNING expression. Not supported by all dialects.</span>
+</span><span id="DML-1053"><a href="#DML-1053"><span class="linenos">1053</span></a>
+</span><span id="DML-1054"><a href="#DML-1054"><span class="linenos">1054</span></a><span class="sd"> Example:</span>
+</span><span id="DML-1055"><a href="#DML-1055"><span class="linenos">1055</span></a><span class="sd"> &gt;&gt;&gt; delete(&quot;tbl&quot;).returning(&quot;*&quot;, dialect=&quot;postgres&quot;).sql()</span>
+</span><span id="DML-1056"><a href="#DML-1056"><span class="linenos">1056</span></a><span class="sd"> &#39;DELETE FROM tbl RETURNING *&#39;</span>
+</span><span id="DML-1057"><a href="#DML-1057"><span class="linenos">1057</span></a>
+</span><span id="DML-1058"><a href="#DML-1058"><span class="linenos">1058</span></a><span class="sd"> Args:</span>
+</span><span id="DML-1059"><a href="#DML-1059"><span class="linenos">1059</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
+</span><span id="DML-1060"><a href="#DML-1060"><span class="linenos">1060</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="DML-1061"><a href="#DML-1061"><span class="linenos">1061</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="DML-1062"><a href="#DML-1062"><span class="linenos">1062</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="DML-1063"><a href="#DML-1063"><span class="linenos">1063</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="DML-1064"><a href="#DML-1064"><span class="linenos">1064</span></a>
-</span><span id="DML-1065"><a href="#DML-1065"><span class="linenos">1065</span></a><span class="sd"> Args:</span>
-</span><span id="DML-1066"><a href="#DML-1066"><span class="linenos">1066</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
-</span><span id="DML-1067"><a href="#DML-1067"><span class="linenos">1067</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="DML-1068"><a href="#DML-1068"><span class="linenos">1068</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="DML-1069"><a href="#DML-1069"><span class="linenos">1069</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="DML-1070"><a href="#DML-1070"><span class="linenos">1070</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="DML-1071"><a href="#DML-1071"><span class="linenos">1071</span></a>
-</span><span id="DML-1072"><a href="#DML-1072"><span class="linenos">1072</span></a><span class="sd"> Returns:</span>
-</span><span id="DML-1073"><a href="#DML-1073"><span class="linenos">1073</span></a><span class="sd"> Delete: the modified expression.</span>
-</span><span id="DML-1074"><a href="#DML-1074"><span class="linenos">1074</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="DML-1075"><a href="#DML-1075"><span class="linenos">1075</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
-</span><span id="DML-1076"><a href="#DML-1076"><span class="linenos">1076</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
-</span><span id="DML-1077"><a href="#DML-1077"><span class="linenos">1077</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="DML-1078"><a href="#DML-1078"><span class="linenos">1078</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="DML-1079"><a href="#DML-1079"><span class="linenos">1079</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="DML-1080"><a href="#DML-1080"><span class="linenos">1080</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="DML-1081"><a href="#DML-1081"><span class="linenos">1081</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="DML-1082"><a href="#DML-1082"><span class="linenos">1082</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Returning</span><span class="p">,</span>
-</span><span id="DML-1083"><a href="#DML-1083"><span class="linenos">1083</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="DML-1084"><a href="#DML-1084"><span class="linenos">1084</span></a> <span class="p">)</span>
+</span><span id="DML-1065"><a href="#DML-1065"><span class="linenos">1065</span></a><span class="sd"> Returns:</span>
+</span><span id="DML-1066"><a href="#DML-1066"><span class="linenos">1066</span></a><span class="sd"> Delete: the modified expression.</span>
+</span><span id="DML-1067"><a href="#DML-1067"><span class="linenos">1067</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="DML-1068"><a href="#DML-1068"><span class="linenos">1068</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
+</span><span id="DML-1069"><a href="#DML-1069"><span class="linenos">1069</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
+</span><span id="DML-1070"><a href="#DML-1070"><span class="linenos">1070</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="DML-1071"><a href="#DML-1071"><span class="linenos">1071</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="DML-1072"><a href="#DML-1072"><span class="linenos">1072</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="DML-1073"><a href="#DML-1073"><span class="linenos">1073</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="DML-1074"><a href="#DML-1074"><span class="linenos">1074</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="DML-1075"><a href="#DML-1075"><span class="linenos">1075</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Returning</span><span class="p">,</span>
+</span><span id="DML-1076"><a href="#DML-1076"><span class="linenos">1076</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="DML-1077"><a href="#DML-1077"><span class="linenos">1077</span></a> <span class="p">)</span>
</span></pre></div>
@@ -17407,40 +18119,40 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#DML.returning"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DML.returning-1051"><a href="#DML.returning-1051"><span class="linenos">1051</span></a> <span class="k">def</span> <span class="nf">returning</span><span class="p">(</span>
-</span><span id="DML.returning-1052"><a href="#DML.returning-1052"><span class="linenos">1052</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="DML.returning-1053"><a href="#DML.returning-1053"><span class="linenos">1053</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="DML.returning-1054"><a href="#DML.returning-1054"><span class="linenos">1054</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="DML.returning-1055"><a href="#DML.returning-1055"><span class="linenos">1055</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="DML.returning-1056"><a href="#DML.returning-1056"><span class="linenos">1056</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="DML.returning-1057"><a href="#DML.returning-1057"><span class="linenos">1057</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DML</span><span class="p">:</span>
-</span><span id="DML.returning-1058"><a href="#DML.returning-1058"><span class="linenos">1058</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="DML.returning-1059"><a href="#DML.returning-1059"><span class="linenos">1059</span></a><span class="sd"> Set the RETURNING expression. Not supported by all dialects.</span>
-</span><span id="DML.returning-1060"><a href="#DML.returning-1060"><span class="linenos">1060</span></a>
-</span><span id="DML.returning-1061"><a href="#DML.returning-1061"><span class="linenos">1061</span></a><span class="sd"> Example:</span>
-</span><span id="DML.returning-1062"><a href="#DML.returning-1062"><span class="linenos">1062</span></a><span class="sd"> &gt;&gt;&gt; delete(&quot;tbl&quot;).returning(&quot;*&quot;, dialect=&quot;postgres&quot;).sql()</span>
-</span><span id="DML.returning-1063"><a href="#DML.returning-1063"><span class="linenos">1063</span></a><span class="sd"> &#39;DELETE FROM tbl RETURNING *&#39;</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DML.returning-1044"><a href="#DML.returning-1044"><span class="linenos">1044</span></a> <span class="k">def</span> <span class="nf">returning</span><span class="p">(</span>
+</span><span id="DML.returning-1045"><a href="#DML.returning-1045"><span class="linenos">1045</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="DML.returning-1046"><a href="#DML.returning-1046"><span class="linenos">1046</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="DML.returning-1047"><a href="#DML.returning-1047"><span class="linenos">1047</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="DML.returning-1048"><a href="#DML.returning-1048"><span class="linenos">1048</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="DML.returning-1049"><a href="#DML.returning-1049"><span class="linenos">1049</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="DML.returning-1050"><a href="#DML.returning-1050"><span class="linenos">1050</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DML</span><span class="p">:</span>
+</span><span id="DML.returning-1051"><a href="#DML.returning-1051"><span class="linenos">1051</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="DML.returning-1052"><a href="#DML.returning-1052"><span class="linenos">1052</span></a><span class="sd"> Set the RETURNING expression. Not supported by all dialects.</span>
+</span><span id="DML.returning-1053"><a href="#DML.returning-1053"><span class="linenos">1053</span></a>
+</span><span id="DML.returning-1054"><a href="#DML.returning-1054"><span class="linenos">1054</span></a><span class="sd"> Example:</span>
+</span><span id="DML.returning-1055"><a href="#DML.returning-1055"><span class="linenos">1055</span></a><span class="sd"> &gt;&gt;&gt; delete(&quot;tbl&quot;).returning(&quot;*&quot;, dialect=&quot;postgres&quot;).sql()</span>
+</span><span id="DML.returning-1056"><a href="#DML.returning-1056"><span class="linenos">1056</span></a><span class="sd"> &#39;DELETE FROM tbl RETURNING *&#39;</span>
+</span><span id="DML.returning-1057"><a href="#DML.returning-1057"><span class="linenos">1057</span></a>
+</span><span id="DML.returning-1058"><a href="#DML.returning-1058"><span class="linenos">1058</span></a><span class="sd"> Args:</span>
+</span><span id="DML.returning-1059"><a href="#DML.returning-1059"><span class="linenos">1059</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
+</span><span id="DML.returning-1060"><a href="#DML.returning-1060"><span class="linenos">1060</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="DML.returning-1061"><a href="#DML.returning-1061"><span class="linenos">1061</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="DML.returning-1062"><a href="#DML.returning-1062"><span class="linenos">1062</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="DML.returning-1063"><a href="#DML.returning-1063"><span class="linenos">1063</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="DML.returning-1064"><a href="#DML.returning-1064"><span class="linenos">1064</span></a>
-</span><span id="DML.returning-1065"><a href="#DML.returning-1065"><span class="linenos">1065</span></a><span class="sd"> Args:</span>
-</span><span id="DML.returning-1066"><a href="#DML.returning-1066"><span class="linenos">1066</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
-</span><span id="DML.returning-1067"><a href="#DML.returning-1067"><span class="linenos">1067</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="DML.returning-1068"><a href="#DML.returning-1068"><span class="linenos">1068</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="DML.returning-1069"><a href="#DML.returning-1069"><span class="linenos">1069</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="DML.returning-1070"><a href="#DML.returning-1070"><span class="linenos">1070</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="DML.returning-1071"><a href="#DML.returning-1071"><span class="linenos">1071</span></a>
-</span><span id="DML.returning-1072"><a href="#DML.returning-1072"><span class="linenos">1072</span></a><span class="sd"> Returns:</span>
-</span><span id="DML.returning-1073"><a href="#DML.returning-1073"><span class="linenos">1073</span></a><span class="sd"> Delete: the modified expression.</span>
-</span><span id="DML.returning-1074"><a href="#DML.returning-1074"><span class="linenos">1074</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="DML.returning-1075"><a href="#DML.returning-1075"><span class="linenos">1075</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
-</span><span id="DML.returning-1076"><a href="#DML.returning-1076"><span class="linenos">1076</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
-</span><span id="DML.returning-1077"><a href="#DML.returning-1077"><span class="linenos">1077</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="DML.returning-1078"><a href="#DML.returning-1078"><span class="linenos">1078</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="DML.returning-1079"><a href="#DML.returning-1079"><span class="linenos">1079</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="DML.returning-1080"><a href="#DML.returning-1080"><span class="linenos">1080</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="DML.returning-1081"><a href="#DML.returning-1081"><span class="linenos">1081</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="DML.returning-1082"><a href="#DML.returning-1082"><span class="linenos">1082</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Returning</span><span class="p">,</span>
-</span><span id="DML.returning-1083"><a href="#DML.returning-1083"><span class="linenos">1083</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="DML.returning-1084"><a href="#DML.returning-1084"><span class="linenos">1084</span></a> <span class="p">)</span>
+</span><span id="DML.returning-1065"><a href="#DML.returning-1065"><span class="linenos">1065</span></a><span class="sd"> Returns:</span>
+</span><span id="DML.returning-1066"><a href="#DML.returning-1066"><span class="linenos">1066</span></a><span class="sd"> Delete: the modified expression.</span>
+</span><span id="DML.returning-1067"><a href="#DML.returning-1067"><span class="linenos">1067</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="DML.returning-1068"><a href="#DML.returning-1068"><span class="linenos">1068</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
+</span><span id="DML.returning-1069"><a href="#DML.returning-1069"><span class="linenos">1069</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
+</span><span id="DML.returning-1070"><a href="#DML.returning-1070"><span class="linenos">1070</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="DML.returning-1071"><a href="#DML.returning-1071"><span class="linenos">1071</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="DML.returning-1072"><a href="#DML.returning-1072"><span class="linenos">1072</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="DML.returning-1073"><a href="#DML.returning-1073"><span class="linenos">1073</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="DML.returning-1074"><a href="#DML.returning-1074"><span class="linenos">1074</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="DML.returning-1075"><a href="#DML.returning-1075"><span class="linenos">1075</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Returning</span><span class="p">,</span>
+</span><span id="DML.returning-1076"><a href="#DML.returning-1076"><span class="linenos">1076</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="DML.returning-1077"><a href="#DML.returning-1077"><span class="linenos">1077</span></a> <span class="p">)</span>
</span></pre></div>
@@ -17513,6 +18225,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="DML.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DML.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="DML.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="DML.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="DML.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="DML.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DML.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -17533,6 +18246,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="DML.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DML.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DML.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="DML.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="DML.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DML.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DML.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -17554,6 +18268,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="DML.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="DML.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="DML.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="DML.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -17570,22 +18285,22 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Create"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Create-1087"><a href="#Create-1087"><span class="linenos">1087</span></a><span class="k">class</span> <span class="nc">Create</span><span class="p">(</span><span class="n">DDL</span><span class="p">):</span>
-</span><span id="Create-1088"><a href="#Create-1088"><span class="linenos">1088</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Create-1089"><a href="#Create-1089"><span class="linenos">1089</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="Create-1090"><a href="#Create-1090"><span class="linenos">1090</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="Create-1091"><a href="#Create-1091"><span class="linenos">1091</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="Create-1092"><a href="#Create-1092"><span class="linenos">1092</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="Create-1093"><a href="#Create-1093"><span class="linenos">1093</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="Create-1094"><a href="#Create-1094"><span class="linenos">1094</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-1095"><a href="#Create-1095"><span class="linenos">1095</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-1096"><a href="#Create-1096"><span class="linenos">1096</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-1097"><a href="#Create-1097"><span class="linenos">1097</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-1098"><a href="#Create-1098"><span class="linenos">1098</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-1099"><a href="#Create-1099"><span class="linenos">1099</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-1100"><a href="#Create-1100"><span class="linenos">1100</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="Create-1101"><a href="#Create-1101"><span class="linenos">1101</span></a> <span class="s2">&quot;clone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Create-1102"><a href="#Create-1102"><span class="linenos">1102</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Create-1080"><a href="#Create-1080"><span class="linenos">1080</span></a><span class="k">class</span> <span class="nc">Create</span><span class="p">(</span><span class="n">DDL</span><span class="p">):</span>
+</span><span id="Create-1081"><a href="#Create-1081"><span class="linenos">1081</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Create-1082"><a href="#Create-1082"><span class="linenos">1082</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="Create-1083"><a href="#Create-1083"><span class="linenos">1083</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="Create-1084"><a href="#Create-1084"><span class="linenos">1084</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="Create-1085"><a href="#Create-1085"><span class="linenos">1085</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="Create-1086"><a href="#Create-1086"><span class="linenos">1086</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="Create-1087"><a href="#Create-1087"><span class="linenos">1087</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-1088"><a href="#Create-1088"><span class="linenos">1088</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-1089"><a href="#Create-1089"><span class="linenos">1089</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-1090"><a href="#Create-1090"><span class="linenos">1090</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-1091"><a href="#Create-1091"><span class="linenos">1091</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-1092"><a href="#Create-1092"><span class="linenos">1092</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-1093"><a href="#Create-1093"><span class="linenos">1093</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="Create-1094"><a href="#Create-1094"><span class="linenos">1094</span></a> <span class="s2">&quot;clone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Create-1095"><a href="#Create-1095"><span class="linenos">1095</span></a> <span class="p">}</span>
</span></pre></div>
@@ -17641,6 +18356,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Create.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Create.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Create.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Create.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Create.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Create.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Create.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -17661,6 +18377,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Create.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Create.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Create.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Create.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Create.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Create.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Create.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -17682,6 +18399,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Create.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Create.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Create.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Create.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#DDL">DDL</a></dt>
@@ -17704,8 +18422,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Clone"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Clone-1108"><a href="#Clone-1108"><span class="linenos">1108</span></a><span class="k">class</span> <span class="nc">Clone</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Clone-1109"><a href="#Clone-1109"><span class="linenos">1109</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;shallow&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;copy&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Clone-1101"><a href="#Clone-1101"><span class="linenos">1101</span></a><span class="k">class</span> <span class="nc">Clone</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Clone-1102"><a href="#Clone-1102"><span class="linenos">1102</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;shallow&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;copy&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -17760,6 +18478,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Clone.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Clone.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Clone.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Clone.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Clone.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Clone.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Clone.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -17780,6 +18499,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Clone.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Clone.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Clone.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Clone.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Clone.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Clone.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Clone.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -17801,6 +18521,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Clone.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Clone.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Clone.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Clone.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -17817,8 +18538,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-1112"><a href="#Describe-1112"><span class="linenos">1112</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-1113"><a href="#Describe-1113"><span class="linenos">1113</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;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="Describe-1105"><a href="#Describe-1105"><span class="linenos">1105</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-1106"><a href="#Describe-1106"><span class="linenos">1106</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -17873,6 +18594,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Describe.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Describe.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Describe.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Describe.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Describe.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Describe.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Describe.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -17893,6 +18615,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Describe.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Describe.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Describe.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Describe.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Describe.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Describe.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Describe.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -17914,6 +18637,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Describe.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Describe.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Describe.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Describe.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -17930,8 +18654,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Kill"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Kill-1116"><a href="#Kill-1116"><span class="linenos">1116</span></a><span class="k">class</span> <span class="nc">Kill</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Kill-1117"><a href="#Kill-1117"><span class="linenos">1117</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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="Kill-1109"><a href="#Kill-1109"><span class="linenos">1109</span></a><span class="k">class</span> <span class="nc">Kill</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Kill-1110"><a href="#Kill-1110"><span class="linenos">1110</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -17986,6 +18710,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Kill.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Kill.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Kill.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Kill.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Kill.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Kill.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Kill.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -18006,6 +18731,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Kill.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Kill.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Kill.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Kill.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Kill.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Kill.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Kill.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -18027,6 +18753,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Kill.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Kill.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Kill.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Kill.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -18043,8 +18770,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-1120"><a href="#Pragma-1120"><span class="linenos">1120</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-1121"><a href="#Pragma-1121"><span class="linenos">1121</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Pragma-1113"><a href="#Pragma-1113"><span class="linenos">1113</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-1114"><a href="#Pragma-1114"><span class="linenos">1114</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -18088,6 +18815,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Pragma.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Pragma.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Pragma.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Pragma.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Pragma.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Pragma.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Pragma.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -18108,6 +18836,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Pragma.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Pragma.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Pragma.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Pragma.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Pragma.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Pragma.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Pragma.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -18129,6 +18858,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Pragma.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Pragma.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Pragma.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Pragma.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -18145,8 +18875,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-1124"><a href="#Set-1124"><span class="linenos">1124</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-1125"><a href="#Set-1125"><span class="linenos">1125</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;unset&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;tag&quot;</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-1117"><a href="#Set-1117"><span class="linenos">1117</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-1118"><a href="#Set-1118"><span class="linenos">1118</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;unset&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;tag&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -18201,6 +18931,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Set.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Set.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Set.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Set.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Set.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Set.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Set.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -18221,6 +18952,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Set.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Set.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Set.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Set.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Set.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Set.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Set.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -18242,6 +18974,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Set.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Set.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Set.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Set.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -18258,14 +18991,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-1128"><a href="#SetItem-1128"><span class="linenos">1128</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-1129"><a href="#SetItem-1129"><span class="linenos">1129</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="SetItem-1130"><a href="#SetItem-1130"><span class="linenos">1130</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-1131"><a href="#SetItem-1131"><span class="linenos">1131</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-1132"><a href="#SetItem-1132"><span class="linenos">1132</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-1133"><a href="#SetItem-1133"><span class="linenos">1133</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-1134"><a href="#SetItem-1134"><span class="linenos">1134</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-1135"><a href="#SetItem-1135"><span class="linenos">1135</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="SetItem-1121"><a href="#SetItem-1121"><span class="linenos">1121</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-1122"><a href="#SetItem-1122"><span class="linenos">1122</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="SetItem-1123"><a href="#SetItem-1123"><span class="linenos">1123</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-1124"><a href="#SetItem-1124"><span class="linenos">1124</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-1125"><a href="#SetItem-1125"><span class="linenos">1125</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-1126"><a href="#SetItem-1126"><span class="linenos">1126</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-1127"><a href="#SetItem-1127"><span class="linenos">1127</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-1128"><a href="#SetItem-1128"><span class="linenos">1128</span></a> <span class="p">}</span>
</span></pre></div>
@@ -18320,6 +19053,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="SetItem.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="SetItem.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="SetItem.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="SetItem.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="SetItem.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="SetItem.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="SetItem.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -18340,6 +19074,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="SetItem.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="SetItem.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="SetItem.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="SetItem.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="SetItem.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="SetItem.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="SetItem.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -18361,6 +19096,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="SetItem.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="SetItem.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="SetItem.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="SetItem.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -18377,26 +19113,26 @@ 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-1138"><a href="#Show-1138"><span class="linenos">1138</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-1139"><a href="#Show-1139"><span class="linenos">1139</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Show-1140"><a href="#Show-1140"><span class="linenos">1140</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-1141"><a href="#Show-1141"><span class="linenos">1141</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-1142"><a href="#Show-1142"><span class="linenos">1142</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-1143"><a href="#Show-1143"><span class="linenos">1143</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-1144"><a href="#Show-1144"><span class="linenos">1144</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-1145"><a href="#Show-1145"><span class="linenos">1145</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-1146"><a href="#Show-1146"><span class="linenos">1146</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-1147"><a href="#Show-1147"><span class="linenos">1147</span></a> <span class="s2">&quot;scope&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Show-1148"><a href="#Show-1148"><span class="linenos">1148</span></a> <span class="s2">&quot;scope_kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Show-1149"><a href="#Show-1149"><span class="linenos">1149</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-1150"><a href="#Show-1150"><span class="linenos">1150</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-1151"><a href="#Show-1151"><span class="linenos">1151</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-1152"><a href="#Show-1152"><span class="linenos">1152</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-1153"><a href="#Show-1153"><span class="linenos">1153</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-1154"><a href="#Show-1154"><span class="linenos">1154</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-1155"><a href="#Show-1155"><span class="linenos">1155</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-1156"><a href="#Show-1156"><span class="linenos">1156</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-1157"><a href="#Show-1157"><span class="linenos">1157</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Show-1131"><a href="#Show-1131"><span class="linenos">1131</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-1132"><a href="#Show-1132"><span class="linenos">1132</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Show-1133"><a href="#Show-1133"><span class="linenos">1133</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-1134"><a href="#Show-1134"><span class="linenos">1134</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-1135"><a href="#Show-1135"><span class="linenos">1135</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-1136"><a href="#Show-1136"><span class="linenos">1136</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-1137"><a href="#Show-1137"><span class="linenos">1137</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-1138"><a href="#Show-1138"><span class="linenos">1138</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-1139"><a href="#Show-1139"><span class="linenos">1139</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-1140"><a href="#Show-1140"><span class="linenos">1140</span></a> <span class="s2">&quot;scope&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Show-1141"><a href="#Show-1141"><span class="linenos">1141</span></a> <span class="s2">&quot;scope_kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Show-1142"><a href="#Show-1142"><span class="linenos">1142</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-1143"><a href="#Show-1143"><span class="linenos">1143</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-1144"><a href="#Show-1144"><span class="linenos">1144</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-1145"><a href="#Show-1145"><span class="linenos">1145</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-1146"><a href="#Show-1146"><span class="linenos">1146</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-1147"><a href="#Show-1147"><span class="linenos">1147</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-1148"><a href="#Show-1148"><span class="linenos">1148</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-1149"><a href="#Show-1149"><span class="linenos">1149</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-1150"><a href="#Show-1150"><span class="linenos">1150</span></a> <span class="p">}</span>
</span></pre></div>
@@ -18452,6 +19188,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Show.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Show.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Show.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Show.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Show.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Show.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Show.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -18472,6 +19209,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Show.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Show.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Show.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Show.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Show.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Show.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Show.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -18493,6 +19231,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Show.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Show.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Show.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Show.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -18509,8 +19248,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-1160"><a href="#UserDefinedFunction-1160"><span class="linenos">1160</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-1161"><a href="#UserDefinedFunction-1161"><span class="linenos">1161</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1153"><a href="#UserDefinedFunction-1153"><span class="linenos">1153</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-1154"><a href="#UserDefinedFunction-1154"><span class="linenos">1154</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -18565,6 +19304,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="UserDefinedFunction.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="UserDefinedFunction.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="UserDefinedFunction.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="UserDefinedFunction.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="UserDefinedFunction.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="UserDefinedFunction.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="UserDefinedFunction.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -18585,6 +19325,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="UserDefinedFunction.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="UserDefinedFunction.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="UserDefinedFunction.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="UserDefinedFunction.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="UserDefinedFunction.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="UserDefinedFunction.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="UserDefinedFunction.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -18606,6 +19347,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="UserDefinedFunction.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="UserDefinedFunction.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="UserDefinedFunction.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="UserDefinedFunction.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -18622,8 +19364,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-1164"><a href="#CharacterSet-1164"><span class="linenos">1164</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-1165"><a href="#CharacterSet-1165"><span class="linenos">1165</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1157"><a href="#CharacterSet-1157"><span class="linenos">1157</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-1158"><a href="#CharacterSet-1158"><span class="linenos">1158</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -18678,6 +19420,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="CharacterSet.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="CharacterSet.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="CharacterSet.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="CharacterSet.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="CharacterSet.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="CharacterSet.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="CharacterSet.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -18698,6 +19441,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="CharacterSet.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="CharacterSet.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="CharacterSet.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="CharacterSet.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="CharacterSet.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="CharacterSet.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="CharacterSet.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -18719,6 +19463,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="CharacterSet.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="CharacterSet.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="CharacterSet.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="CharacterSet.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -18735,12 +19480,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-1168"><a href="#With-1168"><span class="linenos">1168</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-1169"><a href="#With-1169"><span class="linenos">1169</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-1170"><a href="#With-1170"><span class="linenos">1170</span></a>
-</span><span id="With-1171"><a href="#With-1171"><span class="linenos">1171</span></a> <span class="nd">@property</span>
-</span><span id="With-1172"><a href="#With-1172"><span class="linenos">1172</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-1173"><a href="#With-1173"><span class="linenos">1173</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-1161"><a href="#With-1161"><span class="linenos">1161</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-1162"><a href="#With-1162"><span class="linenos">1162</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-1163"><a href="#With-1163"><span class="linenos">1163</span></a>
+</span><span id="With-1164"><a href="#With-1164"><span class="linenos">1164</span></a> <span class="nd">@property</span>
+</span><span id="With-1165"><a href="#With-1165"><span class="linenos">1165</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-1166"><a href="#With-1166"><span class="linenos">1166</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>
@@ -18759,13 +19504,20 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<div id="With.recursive" class="classattr">
- <div class="attr variable">
+ <input id="With.recursive-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">recursive</span><span class="annotation">: bool</span>
-
+ <label class="view-source-button" for="With.recursive-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#With.recursive"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="With.recursive-1164"><a href="#With.recursive-1164"><span class="linenos">1164</span></a> <span class="nd">@property</span>
+</span><span id="With.recursive-1165"><a href="#With.recursive-1165"><span class="linenos">1165</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.recursive-1166"><a href="#With.recursive-1166"><span class="linenos">1166</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>
+
+
</div>
@@ -18806,6 +19558,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="With.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="With.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="With.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="With.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="With.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="With.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="With.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -18826,6 +19579,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="With.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="With.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="With.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="With.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="With.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="With.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="With.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -18847,6 +19601,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="With.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="With.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="With.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="With.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -18863,8 +19618,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-1176"><a href="#WithinGroup-1176"><span class="linenos">1176</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-1177"><a href="#WithinGroup-1177"><span class="linenos">1177</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-1169"><a href="#WithinGroup-1169"><span class="linenos">1169</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-1170"><a href="#WithinGroup-1170"><span class="linenos">1170</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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>
@@ -18919,6 +19674,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="WithinGroup.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="WithinGroup.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="WithinGroup.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="WithinGroup.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="WithinGroup.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="WithinGroup.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="WithinGroup.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -18939,6 +19695,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="WithinGroup.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="WithinGroup.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="WithinGroup.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="WithinGroup.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="WithinGroup.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="WithinGroup.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="WithinGroup.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -18960,6 +19717,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="WithinGroup.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="WithinGroup.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="WithinGroup.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="WithinGroup.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -18976,8 +19734,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-1182"><a href="#CTE-1182"><span class="linenos">1182</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-1183"><a href="#CTE-1183"><span class="linenos">1183</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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 class="s2">&quot;scalar&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="CTE-1175"><a href="#CTE-1175"><span class="linenos">1175</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-1176"><a href="#CTE-1176"><span class="linenos">1176</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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 class="s2">&quot;scalar&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -19032,6 +19790,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="CTE.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="CTE.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="CTE.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="CTE.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="CTE.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="CTE.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="CTE.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -19052,6 +19811,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="CTE.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="CTE.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="CTE.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="CTE.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="CTE.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="CTE.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="CTE.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -19073,6 +19833,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="CTE.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="CTE.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="CTE.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="CTE.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#DerivedTable">DerivedTable</a></dt>
@@ -19094,12 +19855,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-1186"><a href="#TableAlias-1186"><span class="linenos">1186</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-1187"><a href="#TableAlias-1187"><span class="linenos">1187</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1188"><a href="#TableAlias-1188"><span class="linenos">1188</span></a>
-</span><span id="TableAlias-1189"><a href="#TableAlias-1189"><span class="linenos">1189</span></a> <span class="nd">@property</span>
-</span><span id="TableAlias-1190"><a href="#TableAlias-1190"><span class="linenos">1190</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-1191"><a href="#TableAlias-1191"><span class="linenos">1191</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-1179"><a href="#TableAlias-1179"><span class="linenos">1179</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-1180"><a href="#TableAlias-1180"><span class="linenos">1180</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1181"><a href="#TableAlias-1181"><span class="linenos">1181</span></a>
+</span><span id="TableAlias-1182"><a href="#TableAlias-1182"><span class="linenos">1182</span></a> <span class="nd">@property</span>
+</span><span id="TableAlias-1183"><a href="#TableAlias-1183"><span class="linenos">1183</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-1184"><a href="#TableAlias-1184"><span class="linenos">1184</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>
@@ -19118,13 +19879,20 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<div id="TableAlias.columns" class="classattr">
- <div class="attr variable">
+ <input id="TableAlias.columns-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">columns</span>
-
+ <label class="view-source-button" for="TableAlias.columns-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#TableAlias.columns"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TableAlias.columns-1182"><a href="#TableAlias.columns-1182"><span class="linenos">1182</span></a> <span class="nd">@property</span>
+</span><span id="TableAlias.columns-1183"><a href="#TableAlias.columns-1183"><span class="linenos">1183</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.columns-1184"><a href="#TableAlias.columns-1184"><span class="linenos">1184</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>
+
+
</div>
@@ -19165,6 +19933,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="TableAlias.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="TableAlias.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="TableAlias.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="TableAlias.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="TableAlias.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="TableAlias.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="TableAlias.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -19185,6 +19954,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="TableAlias.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="TableAlias.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="TableAlias.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="TableAlias.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="TableAlias.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="TableAlias.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="TableAlias.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -19206,6 +19976,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="TableAlias.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="TableAlias.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="TableAlias.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="TableAlias.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -19222,8 +19993,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-1194"><a href="#BitString-1194"><span class="linenos">1194</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-1195"><a href="#BitString-1195"><span class="linenos">1195</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="BitString-1187"><a href="#BitString-1187"><span class="linenos">1187</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-1188"><a href="#BitString-1188"><span class="linenos">1188</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -19267,6 +20038,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="BitString.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="BitString.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="BitString.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="BitString.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="BitString.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="BitString.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="BitString.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -19287,6 +20059,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="BitString.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="BitString.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="BitString.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="BitString.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="BitString.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="BitString.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="BitString.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -19308,6 +20081,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="BitString.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="BitString.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="BitString.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="BitString.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -19324,8 +20098,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-1198"><a href="#HexString-1198"><span class="linenos">1198</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-1199"><a href="#HexString-1199"><span class="linenos">1199</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="HexString-1191"><a href="#HexString-1191"><span class="linenos">1191</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-1192"><a href="#HexString-1192"><span class="linenos">1192</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -19369,6 +20143,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="HexString.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="HexString.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="HexString.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="HexString.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="HexString.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="HexString.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="HexString.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -19389,6 +20164,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="HexString.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="HexString.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="HexString.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="HexString.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="HexString.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="HexString.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="HexString.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -19410,6 +20186,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="HexString.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="HexString.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="HexString.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="HexString.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -19426,8 +20203,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-1202"><a href="#ByteString-1202"><span class="linenos">1202</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-1203"><a href="#ByteString-1203"><span class="linenos">1203</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ByteString-1195"><a href="#ByteString-1195"><span class="linenos">1195</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-1196"><a href="#ByteString-1196"><span class="linenos">1196</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -19471,6 +20248,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="ByteString.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ByteString.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="ByteString.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="ByteString.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="ByteString.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="ByteString.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ByteString.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -19491,6 +20269,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="ByteString.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ByteString.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ByteString.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="ByteString.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="ByteString.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ByteString.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ByteString.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -19512,6 +20291,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="ByteString.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="ByteString.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="ByteString.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="ByteString.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -19528,8 +20308,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#RawString"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="RawString-1206"><a href="#RawString-1206"><span class="linenos">1206</span></a><span class="k">class</span> <span class="nc">RawString</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
-</span><span id="RawString-1207"><a href="#RawString-1207"><span class="linenos">1207</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="RawString-1199"><a href="#RawString-1199"><span class="linenos">1199</span></a><span class="k">class</span> <span class="nc">RawString</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
+</span><span id="RawString-1200"><a href="#RawString-1200"><span class="linenos">1200</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -19573,6 +20353,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="RawString.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="RawString.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="RawString.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="RawString.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="RawString.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="RawString.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="RawString.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -19593,6 +20374,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="RawString.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="RawString.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="RawString.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="RawString.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="RawString.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="RawString.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="RawString.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -19614,6 +20396,123 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="RawString.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="RawString.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="RawString.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="RawString.desc" class="function"><a href="#Expression.desc">desc</a></dd>
+
+ </div>
+ </dl>
+ </div>
+ </section>
+ <section id="UnicodeString">
+ <input id="UnicodeString-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">UnicodeString</span><wbr>(<span class="base"><a href="#Condition">Condition</a></span>):
+
+ <label class="view-source-button" for="UnicodeString-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#UnicodeString"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="UnicodeString-1203"><a href="#UnicodeString-1203"><span class="linenos">1203</span></a><span class="k">class</span> <span class="nc">UnicodeString</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
+</span><span id="UnicodeString-1204"><a href="#UnicodeString-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;escape&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span></pre></div>
+
+
+
+
+ <div id="UnicodeString.arg_types" class="classattr">
+ <div class="attr variable">
+ <span class="name">arg_types</span> =
+<span class="default_value">{&#39;this&#39;: True, &#39;escape&#39;: False}</span>
+
+
+ </div>
+ <a class="headerlink" href="#UnicodeString.arg_types"></a>
+
+
+
+ </div>
+ <div id="UnicodeString.key" class="classattr">
+ <div class="attr variable">
+ <span class="name">key</span> =
+<span class="default_value">&#39;unicodestring&#39;</span>
+
+
+ </div>
+ <a class="headerlink" href="#UnicodeString.key"></a>
+
+
+
+ </div>
+ <div class="inherited">
+ <h5>Inherited Members</h5>
+ <dl>
+ <div><dt><a href="#Expression">Expression</a></dt>
+ <dd id="UnicodeString.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
+ <dd id="UnicodeString.args" class="variable"><a href="#Expression.args">args</a></dd>
+ <dd id="UnicodeString.parent" class="variable"><a href="#Expression.parent">parent</a></dd>
+ <dd id="UnicodeString.arg_key" class="variable"><a href="#Expression.arg_key">arg_key</a></dd>
+ <dd id="UnicodeString.comments" class="variable"><a href="#Expression.comments">comments</a></dd>
+ <dd id="UnicodeString.hashable_args" class="variable"><a href="#Expression.hashable_args">hashable_args</a></dd>
+ <dd id="UnicodeString.this" class="variable"><a href="#Expression.this">this</a></dd>
+ <dd id="UnicodeString.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
+ <dd id="UnicodeString.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
+ <dd id="UnicodeString.text" class="function"><a href="#Expression.text">text</a></dd>
+ <dd id="UnicodeString.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
+ <dd id="UnicodeString.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
+ <dd id="UnicodeString.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
+ <dd id="UnicodeString.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
+ <dd id="UnicodeString.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="UnicodeString.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
+ <dd id="UnicodeString.name" class="variable"><a href="#Expression.name">name</a></dd>
+ <dd id="UnicodeString.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
+ <dd id="UnicodeString.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
+ <dd id="UnicodeString.type" class="variable"><a href="#Expression.type">type</a></dd>
+ <dd id="UnicodeString.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="UnicodeString.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
+ <dd id="UnicodeString.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
+ <dd id="UnicodeString.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="UnicodeString.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
+ <dd id="UnicodeString.append" class="function"><a href="#Expression.append">append</a></dd>
+ <dd id="UnicodeString.set" class="function"><a href="#Expression.set">set</a></dd>
+ <dd id="UnicodeString.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
+ <dd id="UnicodeString.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
+ <dd id="UnicodeString.find" class="function"><a href="#Expression.find">find</a></dd>
+ <dd id="UnicodeString.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
+ <dd id="UnicodeString.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
+ <dd id="UnicodeString.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
+ <dd id="UnicodeString.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
+ <dd id="UnicodeString.root" class="function"><a href="#Expression.root">root</a></dd>
+ <dd id="UnicodeString.walk" class="function"><a href="#Expression.walk">walk</a></dd>
+ <dd id="UnicodeString.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
+ <dd id="UnicodeString.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
+ <dd id="UnicodeString.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
+ <dd id="UnicodeString.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
+ <dd id="UnicodeString.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
+ <dd id="UnicodeString.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="UnicodeString.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
+ <dd id="UnicodeString.sql" class="function"><a href="#Expression.sql">sql</a></dd>
+ <dd id="UnicodeString.transform" class="function"><a href="#Expression.transform">transform</a></dd>
+ <dd id="UnicodeString.replace" class="function"><a href="#Expression.replace">replace</a></dd>
+ <dd id="UnicodeString.pop" class="function"><a href="#Expression.pop">pop</a></dd>
+ <dd id="UnicodeString.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
+ <dd id="UnicodeString.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
+ <dd id="UnicodeString.dump" class="function"><a href="#Expression.dump">dump</a></dd>
+ <dd id="UnicodeString.load" class="function"><a href="#Expression.load">load</a></dd>
+ <dd id="UnicodeString.and_" class="function"><a href="#Expression.and_">and_</a></dd>
+ <dd id="UnicodeString.or_" class="function"><a href="#Expression.or_">or_</a></dd>
+ <dd id="UnicodeString.not_" class="function"><a href="#Expression.not_">not_</a></dd>
+ <dd id="UnicodeString.as_" class="function"><a href="#Expression.as_">as_</a></dd>
+ <dd id="UnicodeString.isin" class="function"><a href="#Expression.isin">isin</a></dd>
+ <dd id="UnicodeString.between" class="function"><a href="#Expression.between">between</a></dd>
+ <dd id="UnicodeString.is_" class="function"><a href="#Expression.is_">is_</a></dd>
+ <dd id="UnicodeString.like" class="function"><a href="#Expression.like">like</a></dd>
+ <dd id="UnicodeString.ilike" class="function"><a href="#Expression.ilike">ilike</a></dd>
+ <dd id="UnicodeString.eq" class="function"><a href="#Expression.eq">eq</a></dd>
+ <dd id="UnicodeString.neq" class="function"><a href="#Expression.neq">neq</a></dd>
+ <dd id="UnicodeString.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
+ <dd id="UnicodeString.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="UnicodeString.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -19630,45 +20529,45 @@ 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-1210"><a href="#Column-1210"><span class="linenos">1210</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-1211"><a href="#Column-1211"><span class="linenos">1211</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1212"><a href="#Column-1212"><span class="linenos">1212</span></a>
-</span><span id="Column-1213"><a href="#Column-1213"><span class="linenos">1213</span></a> <span class="nd">@property</span>
-</span><span id="Column-1214"><a href="#Column-1214"><span class="linenos">1214</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-1215"><a href="#Column-1215"><span class="linenos">1215</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-1216"><a href="#Column-1216"><span class="linenos">1216</span></a>
-</span><span id="Column-1217"><a href="#Column-1217"><span class="linenos">1217</span></a> <span class="nd">@property</span>
-</span><span id="Column-1218"><a href="#Column-1218"><span class="linenos">1218</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-1219"><a href="#Column-1219"><span class="linenos">1219</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-1220"><a href="#Column-1220"><span class="linenos">1220</span></a>
-</span><span id="Column-1221"><a href="#Column-1221"><span class="linenos">1221</span></a> <span class="nd">@property</span>
-</span><span id="Column-1222"><a href="#Column-1222"><span class="linenos">1222</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-1223"><a href="#Column-1223"><span class="linenos">1223</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-1224"><a href="#Column-1224"><span class="linenos">1224</span></a>
-</span><span id="Column-1225"><a href="#Column-1225"><span class="linenos">1225</span></a> <span class="nd">@property</span>
-</span><span id="Column-1226"><a href="#Column-1226"><span class="linenos">1226</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-1227"><a href="#Column-1227"><span class="linenos">1227</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-1228"><a href="#Column-1228"><span class="linenos">1228</span></a>
-</span><span id="Column-1229"><a href="#Column-1229"><span class="linenos">1229</span></a> <span class="nd">@property</span>
-</span><span id="Column-1230"><a href="#Column-1230"><span class="linenos">1230</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-1231"><a href="#Column-1231"><span class="linenos">1231</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-1232"><a href="#Column-1232"><span class="linenos">1232</span></a> <span class="k">return</span> <span class="p">[</span>
-</span><span id="Column-1233"><a href="#Column-1233"><span class="linenos">1233</span></a> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Identifier</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">part</span><span class="p">])</span>
-</span><span id="Column-1234"><a href="#Column-1234"><span class="linenos">1234</span></a> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">&quot;catalog&quot;</span><span class="p">,</span> <span class="s2">&quot;db&quot;</span><span class="p">,</span> <span class="s2">&quot;table&quot;</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
-</span><span id="Column-1235"><a href="#Column-1235"><span class="linenos">1235</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">part</span><span class="p">)</span>
-</span><span id="Column-1236"><a href="#Column-1236"><span class="linenos">1236</span></a> <span class="p">]</span>
-</span><span id="Column-1237"><a href="#Column-1237"><span class="linenos">1237</span></a>
-</span><span id="Column-1238"><a href="#Column-1238"><span class="linenos">1238</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="o">|</span> <span class="n">Identifier</span><span class="p">:</span>
-</span><span id="Column-1239"><a href="#Column-1239"><span class="linenos">1239</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-1240"><a href="#Column-1240"><span class="linenos">1240</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-1241"><a href="#Column-1241"><span class="linenos">1241</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-1242"><a href="#Column-1242"><span class="linenos">1242</span></a>
-</span><span id="Column-1243"><a href="#Column-1243"><span class="linenos">1243</span></a> <span class="k">while</span> <span class="n">parent</span><span class="p">:</span>
-</span><span id="Column-1244"><a href="#Column-1244"><span class="linenos">1244</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-1245"><a href="#Column-1245"><span class="linenos">1245</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-1246"><a href="#Column-1246"><span class="linenos">1246</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-1247"><a href="#Column-1247"><span class="linenos">1247</span></a>
-</span><span id="Column-1248"><a href="#Column-1248"><span class="linenos">1248</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">deepcopy</span><span class="p">(</span><span class="n">parts</span><span class="p">))</span> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">parts</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">1</span> <span class="k">else</span> <span class="n">parts</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Column-1207"><a href="#Column-1207"><span class="linenos">1207</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-1208"><a href="#Column-1208"><span class="linenos">1208</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1209"><a href="#Column-1209"><span class="linenos">1209</span></a>
+</span><span id="Column-1210"><a href="#Column-1210"><span class="linenos">1210</span></a> <span class="nd">@property</span>
+</span><span id="Column-1211"><a href="#Column-1211"><span class="linenos">1211</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-1212"><a href="#Column-1212"><span class="linenos">1212</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-1213"><a href="#Column-1213"><span class="linenos">1213</span></a>
+</span><span id="Column-1214"><a href="#Column-1214"><span class="linenos">1214</span></a> <span class="nd">@property</span>
+</span><span id="Column-1215"><a href="#Column-1215"><span class="linenos">1215</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-1216"><a href="#Column-1216"><span class="linenos">1216</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-1217"><a href="#Column-1217"><span class="linenos">1217</span></a>
+</span><span id="Column-1218"><a href="#Column-1218"><span class="linenos">1218</span></a> <span class="nd">@property</span>
+</span><span id="Column-1219"><a href="#Column-1219"><span class="linenos">1219</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-1220"><a href="#Column-1220"><span class="linenos">1220</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-1221"><a href="#Column-1221"><span class="linenos">1221</span></a>
+</span><span id="Column-1222"><a href="#Column-1222"><span class="linenos">1222</span></a> <span class="nd">@property</span>
+</span><span id="Column-1223"><a href="#Column-1223"><span class="linenos">1223</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-1224"><a href="#Column-1224"><span class="linenos">1224</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-1225"><a href="#Column-1225"><span class="linenos">1225</span></a>
+</span><span id="Column-1226"><a href="#Column-1226"><span class="linenos">1226</span></a> <span class="nd">@property</span>
+</span><span id="Column-1227"><a href="#Column-1227"><span class="linenos">1227</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-1228"><a href="#Column-1228"><span class="linenos">1228</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-1229"><a href="#Column-1229"><span class="linenos">1229</span></a> <span class="k">return</span> <span class="p">[</span>
+</span><span id="Column-1230"><a href="#Column-1230"><span class="linenos">1230</span></a> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Identifier</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">part</span><span class="p">])</span>
+</span><span id="Column-1231"><a href="#Column-1231"><span class="linenos">1231</span></a> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">&quot;catalog&quot;</span><span class="p">,</span> <span class="s2">&quot;db&quot;</span><span class="p">,</span> <span class="s2">&quot;table&quot;</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
+</span><span id="Column-1232"><a href="#Column-1232"><span class="linenos">1232</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">part</span><span class="p">)</span>
+</span><span id="Column-1233"><a href="#Column-1233"><span class="linenos">1233</span></a> <span class="p">]</span>
+</span><span id="Column-1234"><a href="#Column-1234"><span class="linenos">1234</span></a>
+</span><span id="Column-1235"><a href="#Column-1235"><span class="linenos">1235</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="o">|</span> <span class="n">Identifier</span><span class="p">:</span>
+</span><span id="Column-1236"><a href="#Column-1236"><span class="linenos">1236</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-1237"><a href="#Column-1237"><span class="linenos">1237</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-1238"><a href="#Column-1238"><span class="linenos">1238</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-1239"><a href="#Column-1239"><span class="linenos">1239</span></a>
+</span><span id="Column-1240"><a href="#Column-1240"><span class="linenos">1240</span></a> <span class="k">while</span> <span class="n">parent</span><span class="p">:</span>
+</span><span id="Column-1241"><a href="#Column-1241"><span class="linenos">1241</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-1242"><a href="#Column-1242"><span class="linenos">1242</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-1243"><a href="#Column-1243"><span class="linenos">1243</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-1244"><a href="#Column-1244"><span class="linenos">1244</span></a>
+</span><span id="Column-1245"><a href="#Column-1245"><span class="linenos">1245</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">deepcopy</span><span class="p">(</span><span class="n">parts</span><span class="p">))</span> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">parts</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">1</span> <span class="k">else</span> <span class="n">parts</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
</span></pre></div>
@@ -19687,46 +20586,74 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<div id="Column.table" class="classattr">
- <div class="attr variable">
+ <input id="Column.table-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">table</span><span class="annotation">: str</span>
-
+ <label class="view-source-button" for="Column.table-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Column.table"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Column.table-1210"><a href="#Column.table-1210"><span class="linenos">1210</span></a> <span class="nd">@property</span>
+</span><span id="Column.table-1211"><a href="#Column.table-1211"><span class="linenos">1211</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.table-1212"><a href="#Column.table-1212"><span class="linenos">1212</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></pre></div>
+
+
</div>
<div id="Column.db" class="classattr">
- <div class="attr variable">
+ <input id="Column.db-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">db</span><span class="annotation">: str</span>
-
+ <label class="view-source-button" for="Column.db-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Column.db"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Column.db-1214"><a href="#Column.db-1214"><span class="linenos">1214</span></a> <span class="nd">@property</span>
+</span><span id="Column.db-1215"><a href="#Column.db-1215"><span class="linenos">1215</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.db-1216"><a href="#Column.db-1216"><span class="linenos">1216</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;db&quot;</span><span class="p">)</span>
+</span></pre></div>
+
+
</div>
<div id="Column.catalog" class="classattr">
- <div class="attr variable">
+ <input id="Column.catalog-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">catalog</span><span class="annotation">: str</span>
-
+ <label class="view-source-button" for="Column.catalog-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Column.catalog"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Column.catalog-1218"><a href="#Column.catalog-1218"><span class="linenos">1218</span></a> <span class="nd">@property</span>
+</span><span id="Column.catalog-1219"><a href="#Column.catalog-1219"><span class="linenos">1219</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.catalog-1220"><a href="#Column.catalog-1220"><span class="linenos">1220</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>
+
+
</div>
<div id="Column.output_name" class="classattr">
- <div class="attr variable">
+ <input id="Column.output_name-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">output_name</span><span class="annotation">: str</span>
-
+ <label class="view-source-button" for="Column.output_name-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Column.output_name"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Column.output_name-1222"><a href="#Column.output_name-1222"><span class="linenos">1222</span></a> <span class="nd">@property</span>
+</span><span id="Column.output_name-1223"><a href="#Column.output_name-1223"><span class="linenos">1223</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.output_name-1224"><a href="#Column.output_name-1224"><span class="linenos">1224</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
+</span></pre></div>
+
+
<div class="docstring"><p>Name of the output column if this expression is a selection.</p>
<p>If the Expression has no output name, an empty string is returned.</p>
@@ -19750,13 +20677,25 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<div id="Column.parts" class="classattr">
- <div class="attr variable">
+ <input id="Column.parts-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">parts</span><span class="annotation">: List[<a href="#Identifier">Identifier</a>]</span>
-
+ <label class="view-source-button" for="Column.parts-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Column.parts"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Column.parts-1226"><a href="#Column.parts-1226"><span class="linenos">1226</span></a> <span class="nd">@property</span>
+</span><span id="Column.parts-1227"><a href="#Column.parts-1227"><span class="linenos">1227</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.parts-1228"><a href="#Column.parts-1228"><span class="linenos">1228</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.parts-1229"><a href="#Column.parts-1229"><span class="linenos">1229</span></a> <span class="k">return</span> <span class="p">[</span>
+</span><span id="Column.parts-1230"><a href="#Column.parts-1230"><span class="linenos">1230</span></a> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Identifier</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">part</span><span class="p">])</span>
+</span><span id="Column.parts-1231"><a href="#Column.parts-1231"><span class="linenos">1231</span></a> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">&quot;catalog&quot;</span><span class="p">,</span> <span class="s2">&quot;db&quot;</span><span class="p">,</span> <span class="s2">&quot;table&quot;</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
+</span><span id="Column.parts-1232"><a href="#Column.parts-1232"><span class="linenos">1232</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">part</span><span class="p">)</span>
+</span><span id="Column.parts-1233"><a href="#Column.parts-1233"><span class="linenos">1233</span></a> <span class="p">]</span>
+</span></pre></div>
+
+
<div class="docstring"><p>Return the parts of a column in order catalog, db, table, name.</p>
</div>
@@ -19773,17 +20712,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-1238"><a href="#Column.to_dot-1238"><span class="linenos">1238</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="o">|</span> <span class="n">Identifier</span><span class="p">:</span>
-</span><span id="Column.to_dot-1239"><a href="#Column.to_dot-1239"><span class="linenos">1239</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-1240"><a href="#Column.to_dot-1240"><span class="linenos">1240</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-1241"><a href="#Column.to_dot-1241"><span class="linenos">1241</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-1242"><a href="#Column.to_dot-1242"><span class="linenos">1242</span></a>
-</span><span id="Column.to_dot-1243"><a href="#Column.to_dot-1243"><span class="linenos">1243</span></a> <span class="k">while</span> <span class="n">parent</span><span class="p">:</span>
-</span><span id="Column.to_dot-1244"><a href="#Column.to_dot-1244"><span class="linenos">1244</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-1245"><a href="#Column.to_dot-1245"><span class="linenos">1245</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-1246"><a href="#Column.to_dot-1246"><span class="linenos">1246</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-1247"><a href="#Column.to_dot-1247"><span class="linenos">1247</span></a>
-</span><span id="Column.to_dot-1248"><a href="#Column.to_dot-1248"><span class="linenos">1248</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">deepcopy</span><span class="p">(</span><span class="n">parts</span><span class="p">))</span> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">parts</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">1</span> <span class="k">else</span> <span class="n">parts</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Column.to_dot-1235"><a href="#Column.to_dot-1235"><span class="linenos">1235</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="o">|</span> <span class="n">Identifier</span><span class="p">:</span>
+</span><span id="Column.to_dot-1236"><a href="#Column.to_dot-1236"><span class="linenos">1236</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-1237"><a href="#Column.to_dot-1237"><span class="linenos">1237</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-1238"><a href="#Column.to_dot-1238"><span class="linenos">1238</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-1239"><a href="#Column.to_dot-1239"><span class="linenos">1239</span></a>
+</span><span id="Column.to_dot-1240"><a href="#Column.to_dot-1240"><span class="linenos">1240</span></a> <span class="k">while</span> <span class="n">parent</span><span class="p">:</span>
+</span><span id="Column.to_dot-1241"><a href="#Column.to_dot-1241"><span class="linenos">1241</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-1242"><a href="#Column.to_dot-1242"><span class="linenos">1242</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-1243"><a href="#Column.to_dot-1243"><span class="linenos">1243</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-1244"><a href="#Column.to_dot-1244"><span class="linenos">1244</span></a>
+</span><span id="Column.to_dot-1245"><a href="#Column.to_dot-1245"><span class="linenos">1245</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">deepcopy</span><span class="p">(</span><span class="n">parts</span><span class="p">))</span> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">parts</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">1</span> <span class="k">else</span> <span class="n">parts</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
</span></pre></div>
@@ -19828,6 +20767,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Column.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Column.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Column.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Column.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Column.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Column.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Column.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -19848,6 +20788,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Column.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Column.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Column.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Column.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Column.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Column.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Column.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -19869,6 +20810,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Column.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Column.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Column.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Column.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -19885,8 +20827,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-1251"><a href="#ColumnPosition-1251"><span class="linenos">1251</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-1252"><a href="#ColumnPosition-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">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-1248"><a href="#ColumnPosition-1248"><span class="linenos">1248</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-1249"><a href="#ColumnPosition-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;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>
@@ -19941,6 +20883,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="ColumnPosition.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ColumnPosition.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="ColumnPosition.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="ColumnPosition.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="ColumnPosition.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="ColumnPosition.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ColumnPosition.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -19961,6 +20904,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="ColumnPosition.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ColumnPosition.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ColumnPosition.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="ColumnPosition.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="ColumnPosition.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ColumnPosition.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ColumnPosition.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -19982,6 +20926,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="ColumnPosition.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="ColumnPosition.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="ColumnPosition.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="ColumnPosition.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -19998,18 +20943,18 @@ 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-1255"><a href="#ColumnDef-1255"><span class="linenos">1255</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-1256"><a href="#ColumnDef-1256"><span class="linenos">1256</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="ColumnDef-1257"><a href="#ColumnDef-1257"><span class="linenos">1257</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-1258"><a href="#ColumnDef-1258"><span class="linenos">1258</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-1259"><a href="#ColumnDef-1259"><span class="linenos">1259</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-1260"><a href="#ColumnDef-1260"><span class="linenos">1260</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-1261"><a href="#ColumnDef-1261"><span class="linenos">1261</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-1262"><a href="#ColumnDef-1262"><span class="linenos">1262</span></a> <span class="p">}</span>
-</span><span id="ColumnDef-1263"><a href="#ColumnDef-1263"><span class="linenos">1263</span></a>
-</span><span id="ColumnDef-1264"><a href="#ColumnDef-1264"><span class="linenos">1264</span></a> <span class="nd">@property</span>
-</span><span id="ColumnDef-1265"><a href="#ColumnDef-1265"><span class="linenos">1265</span></a> <span class="k">def</span> <span class="nf">constraints</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">ColumnConstraint</span><span class="p">]:</span>
-</span><span id="ColumnDef-1266"><a href="#ColumnDef-1266"><span class="linenos">1266</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;constraints&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="ColumnDef-1252"><a href="#ColumnDef-1252"><span class="linenos">1252</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-1253"><a href="#ColumnDef-1253"><span class="linenos">1253</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="ColumnDef-1254"><a href="#ColumnDef-1254"><span class="linenos">1254</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-1255"><a href="#ColumnDef-1255"><span class="linenos">1255</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-1256"><a href="#ColumnDef-1256"><span class="linenos">1256</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-1257"><a href="#ColumnDef-1257"><span class="linenos">1257</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-1258"><a href="#ColumnDef-1258"><span class="linenos">1258</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-1259"><a href="#ColumnDef-1259"><span class="linenos">1259</span></a> <span class="p">}</span>
+</span><span id="ColumnDef-1260"><a href="#ColumnDef-1260"><span class="linenos">1260</span></a>
+</span><span id="ColumnDef-1261"><a href="#ColumnDef-1261"><span class="linenos">1261</span></a> <span class="nd">@property</span>
+</span><span id="ColumnDef-1262"><a href="#ColumnDef-1262"><span class="linenos">1262</span></a> <span class="k">def</span> <span class="nf">constraints</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">ColumnConstraint</span><span class="p">]:</span>
+</span><span id="ColumnDef-1263"><a href="#ColumnDef-1263"><span class="linenos">1263</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;constraints&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]</span>
</span></pre></div>
@@ -20028,13 +20973,20 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<div id="ColumnDef.constraints" class="classattr">
- <div class="attr variable">
+ <input id="ColumnDef.constraints-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">constraints</span><span class="annotation">: List[<a href="#ColumnConstraint">ColumnConstraint</a>]</span>
-
+ <label class="view-source-button" for="ColumnDef.constraints-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#ColumnDef.constraints"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ColumnDef.constraints-1261"><a href="#ColumnDef.constraints-1261"><span class="linenos">1261</span></a> <span class="nd">@property</span>
+</span><span id="ColumnDef.constraints-1262"><a href="#ColumnDef.constraints-1262"><span class="linenos">1262</span></a> <span class="k">def</span> <span class="nf">constraints</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">ColumnConstraint</span><span class="p">]:</span>
+</span><span id="ColumnDef.constraints-1263"><a href="#ColumnDef.constraints-1263"><span class="linenos">1263</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;constraints&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]</span>
+</span></pre></div>
+
+
</div>
@@ -20075,6 +21027,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="ColumnDef.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ColumnDef.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="ColumnDef.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="ColumnDef.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="ColumnDef.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="ColumnDef.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ColumnDef.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -20095,6 +21048,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="ColumnDef.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ColumnDef.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ColumnDef.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="ColumnDef.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="ColumnDef.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ColumnDef.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ColumnDef.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -20116,6 +21070,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="ColumnDef.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="ColumnDef.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="ColumnDef.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="ColumnDef.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -20132,15 +21087,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-1269"><a href="#AlterColumn-1269"><span class="linenos">1269</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-1270"><a href="#AlterColumn-1270"><span class="linenos">1270</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="AlterColumn-1271"><a href="#AlterColumn-1271"><span class="linenos">1271</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-1272"><a href="#AlterColumn-1272"><span class="linenos">1272</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-1273"><a href="#AlterColumn-1273"><span class="linenos">1273</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-1274"><a href="#AlterColumn-1274"><span class="linenos">1274</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-1275"><a href="#AlterColumn-1275"><span class="linenos">1275</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-1276"><a href="#AlterColumn-1276"><span class="linenos">1276</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-1277"><a href="#AlterColumn-1277"><span class="linenos">1277</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="AlterColumn-1266"><a href="#AlterColumn-1266"><span class="linenos">1266</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-1267"><a href="#AlterColumn-1267"><span class="linenos">1267</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="AlterColumn-1268"><a href="#AlterColumn-1268"><span class="linenos">1268</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-1269"><a href="#AlterColumn-1269"><span class="linenos">1269</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-1270"><a href="#AlterColumn-1270"><span class="linenos">1270</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-1271"><a href="#AlterColumn-1271"><span class="linenos">1271</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-1272"><a href="#AlterColumn-1272"><span class="linenos">1272</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-1273"><a href="#AlterColumn-1273"><span class="linenos">1273</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-1274"><a href="#AlterColumn-1274"><span class="linenos">1274</span></a> <span class="p">}</span>
</span></pre></div>
@@ -20195,6 +21150,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="AlterColumn.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="AlterColumn.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="AlterColumn.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="AlterColumn.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="AlterColumn.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="AlterColumn.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="AlterColumn.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -20215,6 +21171,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="AlterColumn.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="AlterColumn.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="AlterColumn.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="AlterColumn.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="AlterColumn.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="AlterColumn.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="AlterColumn.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -20236,6 +21193,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="AlterColumn.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="AlterColumn.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="AlterColumn.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="AlterColumn.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -20252,8 +21210,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-1280"><a href="#RenameTable-1280"><span class="linenos">1280</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-1281"><a href="#RenameTable-1281"><span class="linenos">1281</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="RenameTable-1277"><a href="#RenameTable-1277"><span class="linenos">1277</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-1278"><a href="#RenameTable-1278"><span class="linenos">1278</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -20297,6 +21255,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="RenameTable.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="RenameTable.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="RenameTable.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="RenameTable.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="RenameTable.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="RenameTable.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="RenameTable.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -20317,6 +21276,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="RenameTable.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="RenameTable.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="RenameTable.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="RenameTable.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="RenameTable.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="RenameTable.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="RenameTable.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -20338,6 +21298,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="RenameTable.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="RenameTable.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="RenameTable.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="RenameTable.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -20354,8 +21315,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#SwapTable"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SwapTable-1284"><a href="#SwapTable-1284"><span class="linenos">1284</span></a><span class="k">class</span> <span class="nc">SwapTable</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="SwapTable-1285"><a href="#SwapTable-1285"><span class="linenos">1285</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="SwapTable-1281"><a href="#SwapTable-1281"><span class="linenos">1281</span></a><span class="k">class</span> <span class="nc">SwapTable</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="SwapTable-1282"><a href="#SwapTable-1282"><span class="linenos">1282</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -20399,6 +21360,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="SwapTable.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="SwapTable.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="SwapTable.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="SwapTable.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="SwapTable.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="SwapTable.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="SwapTable.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -20419,6 +21381,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="SwapTable.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="SwapTable.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="SwapTable.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="SwapTable.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="SwapTable.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="SwapTable.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="SwapTable.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -20440,6 +21403,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="SwapTable.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="SwapTable.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="SwapTable.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="SwapTable.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -20456,8 +21420,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-1288"><a href="#Comment-1288"><span class="linenos">1288</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-1289"><a href="#Comment-1289"><span class="linenos">1289</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1285"><a href="#Comment-1285"><span class="linenos">1285</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-1286"><a href="#Comment-1286"><span class="linenos">1286</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -20512,6 +21476,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Comment.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Comment.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Comment.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Comment.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Comment.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Comment.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Comment.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -20532,6 +21497,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Comment.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Comment.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Comment.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Comment.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Comment.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Comment.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Comment.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -20553,6 +21519,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Comment.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Comment.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Comment.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Comment.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -20569,8 +21536,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Comprehension"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Comprehension-1292"><a href="#Comprehension-1292"><span class="linenos">1292</span></a><span class="k">class</span> <span class="nc">Comprehension</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Comprehension-1293"><a href="#Comprehension-1293"><span class="linenos">1293</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;iterator&quot;</span><span class="p">:</span> <span class="kc">True</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Comprehension-1289"><a href="#Comprehension-1289"><span class="linenos">1289</span></a><span class="k">class</span> <span class="nc">Comprehension</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Comprehension-1290"><a href="#Comprehension-1290"><span class="linenos">1290</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;iterator&quot;</span><span class="p">:</span> <span class="kc">True</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></pre></div>
@@ -20625,6 +21592,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Comprehension.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Comprehension.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Comprehension.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Comprehension.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Comprehension.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Comprehension.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Comprehension.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -20645,6 +21613,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Comprehension.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Comprehension.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Comprehension.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Comprehension.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Comprehension.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Comprehension.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Comprehension.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -20666,6 +21635,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Comprehension.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Comprehension.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Comprehension.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Comprehension.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -20682,14 +21652,14 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#MergeTreeTTLAction"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="MergeTreeTTLAction-1297"><a href="#MergeTreeTTLAction-1297"><span class="linenos">1297</span></a><span class="k">class</span> <span class="nc">MergeTreeTTLAction</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="MergeTreeTTLAction-1298"><a href="#MergeTreeTTLAction-1298"><span class="linenos">1298</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="MergeTreeTTLAction-1299"><a href="#MergeTreeTTLAction-1299"><span class="linenos">1299</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="MergeTreeTTLAction-1300"><a href="#MergeTreeTTLAction-1300"><span class="linenos">1300</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="MergeTreeTTLAction-1301"><a href="#MergeTreeTTLAction-1301"><span class="linenos">1301</span></a> <span class="s2">&quot;recompress&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="MergeTreeTTLAction-1302"><a href="#MergeTreeTTLAction-1302"><span class="linenos">1302</span></a> <span class="s2">&quot;to_disk&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="MergeTreeTTLAction-1303"><a href="#MergeTreeTTLAction-1303"><span class="linenos">1303</span></a> <span class="s2">&quot;to_volume&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="MergeTreeTTLAction-1304"><a href="#MergeTreeTTLAction-1304"><span class="linenos">1304</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="MergeTreeTTLAction-1294"><a href="#MergeTreeTTLAction-1294"><span class="linenos">1294</span></a><span class="k">class</span> <span class="nc">MergeTreeTTLAction</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="MergeTreeTTLAction-1295"><a href="#MergeTreeTTLAction-1295"><span class="linenos">1295</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="MergeTreeTTLAction-1296"><a href="#MergeTreeTTLAction-1296"><span class="linenos">1296</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="MergeTreeTTLAction-1297"><a href="#MergeTreeTTLAction-1297"><span class="linenos">1297</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="MergeTreeTTLAction-1298"><a href="#MergeTreeTTLAction-1298"><span class="linenos">1298</span></a> <span class="s2">&quot;recompress&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="MergeTreeTTLAction-1299"><a href="#MergeTreeTTLAction-1299"><span class="linenos">1299</span></a> <span class="s2">&quot;to_disk&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="MergeTreeTTLAction-1300"><a href="#MergeTreeTTLAction-1300"><span class="linenos">1300</span></a> <span class="s2">&quot;to_volume&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="MergeTreeTTLAction-1301"><a href="#MergeTreeTTLAction-1301"><span class="linenos">1301</span></a> <span class="p">}</span>
</span></pre></div>
@@ -20744,6 +21714,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="MergeTreeTTLAction.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="MergeTreeTTLAction.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="MergeTreeTTLAction.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="MergeTreeTTLAction.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="MergeTreeTTLAction.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="MergeTreeTTLAction.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="MergeTreeTTLAction.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -20764,6 +21735,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="MergeTreeTTLAction.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="MergeTreeTTLAction.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="MergeTreeTTLAction.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="MergeTreeTTLAction.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="MergeTreeTTLAction.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="MergeTreeTTLAction.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="MergeTreeTTLAction.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -20785,6 +21757,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="MergeTreeTTLAction.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="MergeTreeTTLAction.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="MergeTreeTTLAction.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="MergeTreeTTLAction.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -20801,13 +21774,13 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#MergeTreeTTL"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="MergeTreeTTL-1308"><a href="#MergeTreeTTL-1308"><span class="linenos">1308</span></a><span class="k">class</span> <span class="nc">MergeTreeTTL</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="MergeTreeTTL-1309"><a href="#MergeTreeTTL-1309"><span class="linenos">1309</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="MergeTreeTTL-1310"><a href="#MergeTreeTTL-1310"><span class="linenos">1310</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="MergeTreeTTL-1311"><a href="#MergeTreeTTL-1311"><span class="linenos">1311</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="MergeTreeTTL-1312"><a href="#MergeTreeTTL-1312"><span class="linenos">1312</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="MergeTreeTTL-1313"><a href="#MergeTreeTTL-1313"><span class="linenos">1313</span></a> <span class="s2">&quot;aggregates&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="MergeTreeTTL-1314"><a href="#MergeTreeTTL-1314"><span class="linenos">1314</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="MergeTreeTTL-1305"><a href="#MergeTreeTTL-1305"><span class="linenos">1305</span></a><span class="k">class</span> <span class="nc">MergeTreeTTL</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="MergeTreeTTL-1306"><a href="#MergeTreeTTL-1306"><span class="linenos">1306</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="MergeTreeTTL-1307"><a href="#MergeTreeTTL-1307"><span class="linenos">1307</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="MergeTreeTTL-1308"><a href="#MergeTreeTTL-1308"><span class="linenos">1308</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="MergeTreeTTL-1309"><a href="#MergeTreeTTL-1309"><span class="linenos">1309</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="MergeTreeTTL-1310"><a href="#MergeTreeTTL-1310"><span class="linenos">1310</span></a> <span class="s2">&quot;aggregates&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="MergeTreeTTL-1311"><a href="#MergeTreeTTL-1311"><span class="linenos">1311</span></a> <span class="p">}</span>
</span></pre></div>
@@ -20862,6 +21835,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="MergeTreeTTL.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="MergeTreeTTL.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="MergeTreeTTL.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="MergeTreeTTL.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="MergeTreeTTL.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="MergeTreeTTL.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="MergeTreeTTL.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -20882,6 +21856,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="MergeTreeTTL.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="MergeTreeTTL.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="MergeTreeTTL.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="MergeTreeTTL.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="MergeTreeTTL.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="MergeTreeTTL.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="MergeTreeTTL.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -20903,6 +21878,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="MergeTreeTTL.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="MergeTreeTTL.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="MergeTreeTTL.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="MergeTreeTTL.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -20919,16 +21895,16 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#IndexConstraintOption"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="IndexConstraintOption-1318"><a href="#IndexConstraintOption-1318"><span class="linenos">1318</span></a><span class="k">class</span> <span class="nc">IndexConstraintOption</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="IndexConstraintOption-1319"><a href="#IndexConstraintOption-1319"><span class="linenos">1319</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="IndexConstraintOption-1320"><a href="#IndexConstraintOption-1320"><span class="linenos">1320</span></a> <span class="s2">&quot;key_block_size&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="IndexConstraintOption-1321"><a href="#IndexConstraintOption-1321"><span class="linenos">1321</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="IndexConstraintOption-1322"><a href="#IndexConstraintOption-1322"><span class="linenos">1322</span></a> <span class="s2">&quot;parser&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="IndexConstraintOption-1323"><a href="#IndexConstraintOption-1323"><span class="linenos">1323</span></a> <span class="s2">&quot;comment&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="IndexConstraintOption-1324"><a href="#IndexConstraintOption-1324"><span class="linenos">1324</span></a> <span class="s2">&quot;visible&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="IndexConstraintOption-1325"><a href="#IndexConstraintOption-1325"><span class="linenos">1325</span></a> <span class="s2">&quot;engine_attr&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="IndexConstraintOption-1326"><a href="#IndexConstraintOption-1326"><span class="linenos">1326</span></a> <span class="s2">&quot;secondary_engine_attr&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="IndexConstraintOption-1327"><a href="#IndexConstraintOption-1327"><span class="linenos">1327</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="IndexConstraintOption-1315"><a href="#IndexConstraintOption-1315"><span class="linenos">1315</span></a><span class="k">class</span> <span class="nc">IndexConstraintOption</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="IndexConstraintOption-1316"><a href="#IndexConstraintOption-1316"><span class="linenos">1316</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="IndexConstraintOption-1317"><a href="#IndexConstraintOption-1317"><span class="linenos">1317</span></a> <span class="s2">&quot;key_block_size&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="IndexConstraintOption-1318"><a href="#IndexConstraintOption-1318"><span class="linenos">1318</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="IndexConstraintOption-1319"><a href="#IndexConstraintOption-1319"><span class="linenos">1319</span></a> <span class="s2">&quot;parser&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="IndexConstraintOption-1320"><a href="#IndexConstraintOption-1320"><span class="linenos">1320</span></a> <span class="s2">&quot;comment&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="IndexConstraintOption-1321"><a href="#IndexConstraintOption-1321"><span class="linenos">1321</span></a> <span class="s2">&quot;visible&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="IndexConstraintOption-1322"><a href="#IndexConstraintOption-1322"><span class="linenos">1322</span></a> <span class="s2">&quot;engine_attr&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="IndexConstraintOption-1323"><a href="#IndexConstraintOption-1323"><span class="linenos">1323</span></a> <span class="s2">&quot;secondary_engine_attr&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="IndexConstraintOption-1324"><a href="#IndexConstraintOption-1324"><span class="linenos">1324</span></a> <span class="p">}</span>
</span></pre></div>
@@ -20984,6 +21960,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="IndexConstraintOption.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="IndexConstraintOption.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="IndexConstraintOption.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="IndexConstraintOption.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="IndexConstraintOption.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="IndexConstraintOption.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="IndexConstraintOption.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -21004,6 +21981,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="IndexConstraintOption.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="IndexConstraintOption.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="IndexConstraintOption.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="IndexConstraintOption.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="IndexConstraintOption.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="IndexConstraintOption.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="IndexConstraintOption.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -21025,6 +22003,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="IndexConstraintOption.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="IndexConstraintOption.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="IndexConstraintOption.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="IndexConstraintOption.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -21041,12 +22020,12 @@ 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-1330"><a href="#ColumnConstraint-1330"><span class="linenos">1330</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-1331"><a href="#ColumnConstraint-1331"><span class="linenos">1331</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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="ColumnConstraint-1332"><a href="#ColumnConstraint-1332"><span class="linenos">1332</span></a>
-</span><span id="ColumnConstraint-1333"><a href="#ColumnConstraint-1333"><span class="linenos">1333</span></a> <span class="nd">@property</span>
-</span><span id="ColumnConstraint-1334"><a href="#ColumnConstraint-1334"><span class="linenos">1334</span></a> <span class="k">def</span> <span class="nf">kind</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">ColumnConstraintKind</span><span class="p">:</span>
-</span><span id="ColumnConstraint-1335"><a href="#ColumnConstraint-1335"><span class="linenos">1335</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;kind&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ColumnConstraint-1327"><a href="#ColumnConstraint-1327"><span class="linenos">1327</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-1328"><a href="#ColumnConstraint-1328"><span class="linenos">1328</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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="ColumnConstraint-1329"><a href="#ColumnConstraint-1329"><span class="linenos">1329</span></a>
+</span><span id="ColumnConstraint-1330"><a href="#ColumnConstraint-1330"><span class="linenos">1330</span></a> <span class="nd">@property</span>
+</span><span id="ColumnConstraint-1331"><a href="#ColumnConstraint-1331"><span class="linenos">1331</span></a> <span class="k">def</span> <span class="nf">kind</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">ColumnConstraintKind</span><span class="p">:</span>
+</span><span id="ColumnConstraint-1332"><a href="#ColumnConstraint-1332"><span class="linenos">1332</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;kind&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -21065,13 +22044,20 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<div id="ColumnConstraint.kind" class="classattr">
- <div class="attr variable">
+ <input id="ColumnConstraint.kind-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">kind</span><span class="annotation">: <a href="#ColumnConstraintKind">ColumnConstraintKind</a></span>
-
+ <label class="view-source-button" for="ColumnConstraint.kind-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#ColumnConstraint.kind"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ColumnConstraint.kind-1330"><a href="#ColumnConstraint.kind-1330"><span class="linenos">1330</span></a> <span class="nd">@property</span>
+</span><span id="ColumnConstraint.kind-1331"><a href="#ColumnConstraint.kind-1331"><span class="linenos">1331</span></a> <span class="k">def</span> <span class="nf">kind</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">ColumnConstraintKind</span><span class="p">:</span>
+</span><span id="ColumnConstraint.kind-1332"><a href="#ColumnConstraint.kind-1332"><span class="linenos">1332</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;kind&quot;</span><span class="p">]</span>
+</span></pre></div>
+
+
</div>
@@ -21112,6 +22098,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="ColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ColumnConstraint.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="ColumnConstraint.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="ColumnConstraint.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="ColumnConstraint.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="ColumnConstraint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ColumnConstraint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -21132,6 +22119,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="ColumnConstraint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ColumnConstraint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ColumnConstraint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="ColumnConstraint.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="ColumnConstraint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ColumnConstraint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ColumnConstraint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -21153,6 +22141,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="ColumnConstraint.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="ColumnConstraint.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="ColumnConstraint.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="ColumnConstraint.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -21169,8 +22158,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-1338"><a href="#ColumnConstraintKind-1338"><span class="linenos">1338</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-1339"><a href="#ColumnConstraintKind-1339"><span class="linenos">1339</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ColumnConstraintKind-1335"><a href="#ColumnConstraintKind-1335"><span class="linenos">1335</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-1336"><a href="#ColumnConstraintKind-1336"><span class="linenos">1336</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -21214,6 +22203,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="ColumnConstraintKind.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ColumnConstraintKind.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="ColumnConstraintKind.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="ColumnConstraintKind.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="ColumnConstraintKind.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="ColumnConstraintKind.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ColumnConstraintKind.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -21234,6 +22224,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="ColumnConstraintKind.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ColumnConstraintKind.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ColumnConstraintKind.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="ColumnConstraintKind.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="ColumnConstraintKind.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ColumnConstraintKind.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ColumnConstraintKind.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -21255,6 +22246,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="ColumnConstraintKind.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="ColumnConstraintKind.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="ColumnConstraintKind.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="ColumnConstraintKind.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -21271,8 +22263,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-1342"><a href="#AutoIncrementColumnConstraint-1342"><span class="linenos">1342</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-1343"><a href="#AutoIncrementColumnConstraint-1343"><span class="linenos">1343</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="AutoIncrementColumnConstraint-1339"><a href="#AutoIncrementColumnConstraint-1339"><span class="linenos">1339</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-1340"><a href="#AutoIncrementColumnConstraint-1340"><span class="linenos">1340</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -21316,6 +22308,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="AutoIncrementColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="AutoIncrementColumnConstraint.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="AutoIncrementColumnConstraint.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="AutoIncrementColumnConstraint.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="AutoIncrementColumnConstraint.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="AutoIncrementColumnConstraint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="AutoIncrementColumnConstraint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -21336,6 +22329,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="AutoIncrementColumnConstraint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="AutoIncrementColumnConstraint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="AutoIncrementColumnConstraint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="AutoIncrementColumnConstraint.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="AutoIncrementColumnConstraint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="AutoIncrementColumnConstraint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="AutoIncrementColumnConstraint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -21357,6 +22351,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="AutoIncrementColumnConstraint.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="AutoIncrementColumnConstraint.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="AutoIncrementColumnConstraint.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="AutoIncrementColumnConstraint.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -21373,8 +22368,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#PeriodForSystemTimeConstraint"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="PeriodForSystemTimeConstraint-1346"><a href="#PeriodForSystemTimeConstraint-1346"><span class="linenos">1346</span></a><span class="k">class</span> <span class="nc">PeriodForSystemTimeConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="PeriodForSystemTimeConstraint-1347"><a href="#PeriodForSystemTimeConstraint-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">True</span><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="PeriodForSystemTimeConstraint-1343"><a href="#PeriodForSystemTimeConstraint-1343"><span class="linenos">1343</span></a><span class="k">class</span> <span class="nc">PeriodForSystemTimeConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="PeriodForSystemTimeConstraint-1344"><a href="#PeriodForSystemTimeConstraint-1344"><span class="linenos">1344</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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>
@@ -21429,6 +22424,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="PeriodForSystemTimeConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="PeriodForSystemTimeConstraint.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="PeriodForSystemTimeConstraint.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="PeriodForSystemTimeConstraint.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="PeriodForSystemTimeConstraint.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="PeriodForSystemTimeConstraint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="PeriodForSystemTimeConstraint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -21449,6 +22445,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="PeriodForSystemTimeConstraint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="PeriodForSystemTimeConstraint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="PeriodForSystemTimeConstraint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="PeriodForSystemTimeConstraint.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="PeriodForSystemTimeConstraint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="PeriodForSystemTimeConstraint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="PeriodForSystemTimeConstraint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -21470,6 +22467,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="PeriodForSystemTimeConstraint.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="PeriodForSystemTimeConstraint.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="PeriodForSystemTimeConstraint.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="PeriodForSystemTimeConstraint.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -21486,8 +22484,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-1350"><a href="#CaseSpecificColumnConstraint-1350"><span class="linenos">1350</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-1351"><a href="#CaseSpecificColumnConstraint-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;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-1347"><a href="#CaseSpecificColumnConstraint-1347"><span class="linenos">1347</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-1348"><a href="#CaseSpecificColumnConstraint-1348"><span class="linenos">1348</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>
@@ -21542,6 +22540,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="CaseSpecificColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="CaseSpecificColumnConstraint.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="CaseSpecificColumnConstraint.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="CaseSpecificColumnConstraint.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="CaseSpecificColumnConstraint.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="CaseSpecificColumnConstraint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="CaseSpecificColumnConstraint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -21562,6 +22561,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="CaseSpecificColumnConstraint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="CaseSpecificColumnConstraint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="CaseSpecificColumnConstraint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="CaseSpecificColumnConstraint.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="CaseSpecificColumnConstraint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="CaseSpecificColumnConstraint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="CaseSpecificColumnConstraint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -21583,6 +22583,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="CaseSpecificColumnConstraint.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="CaseSpecificColumnConstraint.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="CaseSpecificColumnConstraint.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="CaseSpecificColumnConstraint.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -21599,8 +22600,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-1354"><a href="#CharacterSetColumnConstraint-1354"><span class="linenos">1354</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-1355"><a href="#CharacterSetColumnConstraint-1355"><span class="linenos">1355</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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-1351"><a href="#CharacterSetColumnConstraint-1351"><span class="linenos">1351</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-1352"><a href="#CharacterSetColumnConstraint-1352"><span class="linenos">1352</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -21655,6 +22656,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="CharacterSetColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="CharacterSetColumnConstraint.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="CharacterSetColumnConstraint.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="CharacterSetColumnConstraint.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="CharacterSetColumnConstraint.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="CharacterSetColumnConstraint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="CharacterSetColumnConstraint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -21675,6 +22677,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="CharacterSetColumnConstraint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="CharacterSetColumnConstraint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="CharacterSetColumnConstraint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="CharacterSetColumnConstraint.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="CharacterSetColumnConstraint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="CharacterSetColumnConstraint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="CharacterSetColumnConstraint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -21696,6 +22699,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="CharacterSetColumnConstraint.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="CharacterSetColumnConstraint.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="CharacterSetColumnConstraint.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="CharacterSetColumnConstraint.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -21712,8 +22716,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-1358"><a href="#CheckColumnConstraint-1358"><span class="linenos">1358</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-1359"><a href="#CheckColumnConstraint-1359"><span class="linenos">1359</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="CheckColumnConstraint-1355"><a href="#CheckColumnConstraint-1355"><span class="linenos">1355</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-1356"><a href="#CheckColumnConstraint-1356"><span class="linenos">1356</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -21757,6 +22761,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="CheckColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="CheckColumnConstraint.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="CheckColumnConstraint.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="CheckColumnConstraint.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="CheckColumnConstraint.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="CheckColumnConstraint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="CheckColumnConstraint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -21777,6 +22782,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="CheckColumnConstraint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="CheckColumnConstraint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="CheckColumnConstraint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="CheckColumnConstraint.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="CheckColumnConstraint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="CheckColumnConstraint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="CheckColumnConstraint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -21798,6 +22804,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="CheckColumnConstraint.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="CheckColumnConstraint.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="CheckColumnConstraint.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="CheckColumnConstraint.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -21814,8 +22821,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#ClusteredColumnConstraint"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ClusteredColumnConstraint-1362"><a href="#ClusteredColumnConstraint-1362"><span class="linenos">1362</span></a><span class="k">class</span> <span class="nc">ClusteredColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="ClusteredColumnConstraint-1363"><a href="#ClusteredColumnConstraint-1363"><span class="linenos">1363</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ClusteredColumnConstraint-1359"><a href="#ClusteredColumnConstraint-1359"><span class="linenos">1359</span></a><span class="k">class</span> <span class="nc">ClusteredColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="ClusteredColumnConstraint-1360"><a href="#ClusteredColumnConstraint-1360"><span class="linenos">1360</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -21859,6 +22866,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="ClusteredColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ClusteredColumnConstraint.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="ClusteredColumnConstraint.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="ClusteredColumnConstraint.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="ClusteredColumnConstraint.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="ClusteredColumnConstraint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ClusteredColumnConstraint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -21879,6 +22887,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="ClusteredColumnConstraint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ClusteredColumnConstraint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ClusteredColumnConstraint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="ClusteredColumnConstraint.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="ClusteredColumnConstraint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ClusteredColumnConstraint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ClusteredColumnConstraint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -21900,6 +22909,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="ClusteredColumnConstraint.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="ClusteredColumnConstraint.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="ClusteredColumnConstraint.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="ClusteredColumnConstraint.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -21916,8 +22926,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-1366"><a href="#CollateColumnConstraint-1366"><span class="linenos">1366</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-1367"><a href="#CollateColumnConstraint-1367"><span class="linenos">1367</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="CollateColumnConstraint-1363"><a href="#CollateColumnConstraint-1363"><span class="linenos">1363</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-1364"><a href="#CollateColumnConstraint-1364"><span class="linenos">1364</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -21961,6 +22971,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="CollateColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="CollateColumnConstraint.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="CollateColumnConstraint.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="CollateColumnConstraint.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="CollateColumnConstraint.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="CollateColumnConstraint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="CollateColumnConstraint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -21981,6 +22992,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="CollateColumnConstraint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="CollateColumnConstraint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="CollateColumnConstraint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="CollateColumnConstraint.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="CollateColumnConstraint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="CollateColumnConstraint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="CollateColumnConstraint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -22002,6 +23014,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="CollateColumnConstraint.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="CollateColumnConstraint.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="CollateColumnConstraint.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="CollateColumnConstraint.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -22018,8 +23031,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-1370"><a href="#CommentColumnConstraint-1370"><span class="linenos">1370</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-1371"><a href="#CommentColumnConstraint-1371"><span class="linenos">1371</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="CommentColumnConstraint-1367"><a href="#CommentColumnConstraint-1367"><span class="linenos">1367</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-1368"><a href="#CommentColumnConstraint-1368"><span class="linenos">1368</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -22063,6 +23076,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="CommentColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="CommentColumnConstraint.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="CommentColumnConstraint.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="CommentColumnConstraint.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="CommentColumnConstraint.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="CommentColumnConstraint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="CommentColumnConstraint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -22083,6 +23097,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="CommentColumnConstraint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="CommentColumnConstraint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="CommentColumnConstraint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="CommentColumnConstraint.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="CommentColumnConstraint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="CommentColumnConstraint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="CommentColumnConstraint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -22104,6 +23119,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="CommentColumnConstraint.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="CommentColumnConstraint.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="CommentColumnConstraint.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="CommentColumnConstraint.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -22120,8 +23136,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-1374"><a href="#CompressColumnConstraint-1374"><span class="linenos">1374</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-1375"><a href="#CompressColumnConstraint-1375"><span class="linenos">1375</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="CompressColumnConstraint-1371"><a href="#CompressColumnConstraint-1371"><span class="linenos">1371</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-1372"><a href="#CompressColumnConstraint-1372"><span class="linenos">1372</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -22165,6 +23181,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="CompressColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="CompressColumnConstraint.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="CompressColumnConstraint.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="CompressColumnConstraint.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="CompressColumnConstraint.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="CompressColumnConstraint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="CompressColumnConstraint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -22185,6 +23202,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="CompressColumnConstraint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="CompressColumnConstraint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="CompressColumnConstraint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="CompressColumnConstraint.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="CompressColumnConstraint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="CompressColumnConstraint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="CompressColumnConstraint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -22206,6 +23224,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="CompressColumnConstraint.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="CompressColumnConstraint.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="CompressColumnConstraint.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="CompressColumnConstraint.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -22222,8 +23241,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-1378"><a href="#DateFormatColumnConstraint-1378"><span class="linenos">1378</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-1379"><a href="#DateFormatColumnConstraint-1379"><span class="linenos">1379</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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-1375"><a href="#DateFormatColumnConstraint-1375"><span class="linenos">1375</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-1376"><a href="#DateFormatColumnConstraint-1376"><span class="linenos">1376</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -22278,6 +23297,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="DateFormatColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DateFormatColumnConstraint.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="DateFormatColumnConstraint.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="DateFormatColumnConstraint.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="DateFormatColumnConstraint.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="DateFormatColumnConstraint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DateFormatColumnConstraint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -22298,6 +23318,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="DateFormatColumnConstraint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DateFormatColumnConstraint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DateFormatColumnConstraint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="DateFormatColumnConstraint.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="DateFormatColumnConstraint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DateFormatColumnConstraint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DateFormatColumnConstraint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -22319,6 +23340,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="DateFormatColumnConstraint.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="DateFormatColumnConstraint.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="DateFormatColumnConstraint.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="DateFormatColumnConstraint.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -22335,8 +23357,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-1382"><a href="#DefaultColumnConstraint-1382"><span class="linenos">1382</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-1383"><a href="#DefaultColumnConstraint-1383"><span class="linenos">1383</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DefaultColumnConstraint-1379"><a href="#DefaultColumnConstraint-1379"><span class="linenos">1379</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-1380"><a href="#DefaultColumnConstraint-1380"><span class="linenos">1380</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -22380,6 +23402,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="DefaultColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DefaultColumnConstraint.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="DefaultColumnConstraint.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="DefaultColumnConstraint.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="DefaultColumnConstraint.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="DefaultColumnConstraint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DefaultColumnConstraint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -22400,6 +23423,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="DefaultColumnConstraint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DefaultColumnConstraint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DefaultColumnConstraint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="DefaultColumnConstraint.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="DefaultColumnConstraint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DefaultColumnConstraint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DefaultColumnConstraint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -22421,6 +23445,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="DefaultColumnConstraint.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="DefaultColumnConstraint.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="DefaultColumnConstraint.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="DefaultColumnConstraint.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -22437,8 +23462,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-1386"><a href="#EncodeColumnConstraint-1386"><span class="linenos">1386</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-1387"><a href="#EncodeColumnConstraint-1387"><span class="linenos">1387</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="EncodeColumnConstraint-1383"><a href="#EncodeColumnConstraint-1383"><span class="linenos">1383</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-1384"><a href="#EncodeColumnConstraint-1384"><span class="linenos">1384</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -22482,6 +23507,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="EncodeColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="EncodeColumnConstraint.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="EncodeColumnConstraint.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="EncodeColumnConstraint.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="EncodeColumnConstraint.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="EncodeColumnConstraint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="EncodeColumnConstraint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -22502,6 +23528,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="EncodeColumnConstraint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="EncodeColumnConstraint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="EncodeColumnConstraint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="EncodeColumnConstraint.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="EncodeColumnConstraint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="EncodeColumnConstraint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="EncodeColumnConstraint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -22523,6 +23550,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="EncodeColumnConstraint.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="EncodeColumnConstraint.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="EncodeColumnConstraint.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="EncodeColumnConstraint.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -22539,18 +23567,18 @@ 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-1390"><a href="#GeneratedAsIdentityColumnConstraint-1390"><span class="linenos">1390</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-1391"><a href="#GeneratedAsIdentityColumnConstraint-1391"><span class="linenos">1391</span></a> <span class="c1"># this: True -&gt; ALWAYS, this: False -&gt; BY DEFAULT</span>
-</span><span id="GeneratedAsIdentityColumnConstraint-1392"><a href="#GeneratedAsIdentityColumnConstraint-1392"><span class="linenos">1392</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="GeneratedAsIdentityColumnConstraint-1393"><a href="#GeneratedAsIdentityColumnConstraint-1393"><span class="linenos">1393</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-1394"><a href="#GeneratedAsIdentityColumnConstraint-1394"><span class="linenos">1394</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="GeneratedAsIdentityColumnConstraint-1395"><a href="#GeneratedAsIdentityColumnConstraint-1395"><span class="linenos">1395</span></a> <span class="s2">&quot;on_null&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="GeneratedAsIdentityColumnConstraint-1396"><a href="#GeneratedAsIdentityColumnConstraint-1396"><span class="linenos">1396</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-1397"><a href="#GeneratedAsIdentityColumnConstraint-1397"><span class="linenos">1397</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-1398"><a href="#GeneratedAsIdentityColumnConstraint-1398"><span class="linenos">1398</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-1399"><a href="#GeneratedAsIdentityColumnConstraint-1399"><span class="linenos">1399</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-1400"><a href="#GeneratedAsIdentityColumnConstraint-1400"><span class="linenos">1400</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-1401"><a href="#GeneratedAsIdentityColumnConstraint-1401"><span class="linenos">1401</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="GeneratedAsIdentityColumnConstraint-1387"><a href="#GeneratedAsIdentityColumnConstraint-1387"><span class="linenos">1387</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-1388"><a href="#GeneratedAsIdentityColumnConstraint-1388"><span class="linenos">1388</span></a> <span class="c1"># this: True -&gt; ALWAYS, this: False -&gt; BY DEFAULT</span>
+</span><span id="GeneratedAsIdentityColumnConstraint-1389"><a href="#GeneratedAsIdentityColumnConstraint-1389"><span class="linenos">1389</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="GeneratedAsIdentityColumnConstraint-1390"><a href="#GeneratedAsIdentityColumnConstraint-1390"><span class="linenos">1390</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-1391"><a href="#GeneratedAsIdentityColumnConstraint-1391"><span class="linenos">1391</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="GeneratedAsIdentityColumnConstraint-1392"><a href="#GeneratedAsIdentityColumnConstraint-1392"><span class="linenos">1392</span></a> <span class="s2">&quot;on_null&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="GeneratedAsIdentityColumnConstraint-1393"><a href="#GeneratedAsIdentityColumnConstraint-1393"><span class="linenos">1393</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-1394"><a href="#GeneratedAsIdentityColumnConstraint-1394"><span class="linenos">1394</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-1395"><a href="#GeneratedAsIdentityColumnConstraint-1395"><span class="linenos">1395</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-1396"><a href="#GeneratedAsIdentityColumnConstraint-1396"><span class="linenos">1396</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-1397"><a href="#GeneratedAsIdentityColumnConstraint-1397"><span class="linenos">1397</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-1398"><a href="#GeneratedAsIdentityColumnConstraint-1398"><span class="linenos">1398</span></a> <span class="p">}</span>
</span></pre></div>
@@ -22606,6 +23634,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="GeneratedAsIdentityColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="GeneratedAsIdentityColumnConstraint.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -22626,6 +23655,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="GeneratedAsIdentityColumnConstraint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="GeneratedAsIdentityColumnConstraint.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -22647,6 +23677,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="GeneratedAsIdentityColumnConstraint.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="GeneratedAsIdentityColumnConstraint.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -22663,8 +23694,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#GeneratedAsRowColumnConstraint"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="GeneratedAsRowColumnConstraint-1404"><a href="#GeneratedAsRowColumnConstraint-1404"><span class="linenos">1404</span></a><span class="k">class</span> <span class="nc">GeneratedAsRowColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="GeneratedAsRowColumnConstraint-1405"><a href="#GeneratedAsRowColumnConstraint-1405"><span class="linenos">1405</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;hidden&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="GeneratedAsRowColumnConstraint-1401"><a href="#GeneratedAsRowColumnConstraint-1401"><span class="linenos">1401</span></a><span class="k">class</span> <span class="nc">GeneratedAsRowColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="GeneratedAsRowColumnConstraint-1402"><a href="#GeneratedAsRowColumnConstraint-1402"><span class="linenos">1402</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;hidden&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -22719,6 +23750,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="GeneratedAsRowColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="GeneratedAsRowColumnConstraint.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="GeneratedAsRowColumnConstraint.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="GeneratedAsRowColumnConstraint.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="GeneratedAsRowColumnConstraint.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="GeneratedAsRowColumnConstraint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="GeneratedAsRowColumnConstraint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -22739,6 +23771,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="GeneratedAsRowColumnConstraint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="GeneratedAsRowColumnConstraint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="GeneratedAsRowColumnConstraint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="GeneratedAsRowColumnConstraint.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="GeneratedAsRowColumnConstraint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="GeneratedAsRowColumnConstraint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="GeneratedAsRowColumnConstraint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -22760,6 +23793,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="GeneratedAsRowColumnConstraint.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="GeneratedAsRowColumnConstraint.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="GeneratedAsRowColumnConstraint.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="GeneratedAsRowColumnConstraint.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -22776,14 +23810,14 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#IndexColumnConstraint"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="IndexColumnConstraint-1409"><a href="#IndexColumnConstraint-1409"><span class="linenos">1409</span></a><span class="k">class</span> <span class="nc">IndexColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="IndexColumnConstraint-1410"><a href="#IndexColumnConstraint-1410"><span class="linenos">1410</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="IndexColumnConstraint-1411"><a href="#IndexColumnConstraint-1411"><span class="linenos">1411</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="IndexColumnConstraint-1412"><a href="#IndexColumnConstraint-1412"><span class="linenos">1412</span></a> <span class="s2">&quot;schema&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="IndexColumnConstraint-1413"><a href="#IndexColumnConstraint-1413"><span class="linenos">1413</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="IndexColumnConstraint-1414"><a href="#IndexColumnConstraint-1414"><span class="linenos">1414</span></a> <span class="s2">&quot;index_type&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="IndexColumnConstraint-1415"><a href="#IndexColumnConstraint-1415"><span class="linenos">1415</span></a> <span class="s2">&quot;options&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="IndexColumnConstraint-1416"><a href="#IndexColumnConstraint-1416"><span class="linenos">1416</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="IndexColumnConstraint-1406"><a href="#IndexColumnConstraint-1406"><span class="linenos">1406</span></a><span class="k">class</span> <span class="nc">IndexColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="IndexColumnConstraint-1407"><a href="#IndexColumnConstraint-1407"><span class="linenos">1407</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="IndexColumnConstraint-1408"><a href="#IndexColumnConstraint-1408"><span class="linenos">1408</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="IndexColumnConstraint-1409"><a href="#IndexColumnConstraint-1409"><span class="linenos">1409</span></a> <span class="s2">&quot;schema&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="IndexColumnConstraint-1410"><a href="#IndexColumnConstraint-1410"><span class="linenos">1410</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="IndexColumnConstraint-1411"><a href="#IndexColumnConstraint-1411"><span class="linenos">1411</span></a> <span class="s2">&quot;index_type&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="IndexColumnConstraint-1412"><a href="#IndexColumnConstraint-1412"><span class="linenos">1412</span></a> <span class="s2">&quot;options&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="IndexColumnConstraint-1413"><a href="#IndexColumnConstraint-1413"><span class="linenos">1413</span></a> <span class="p">}</span>
</span></pre></div>
@@ -22838,6 +23872,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="IndexColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="IndexColumnConstraint.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="IndexColumnConstraint.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="IndexColumnConstraint.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="IndexColumnConstraint.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="IndexColumnConstraint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="IndexColumnConstraint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -22858,6 +23893,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="IndexColumnConstraint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="IndexColumnConstraint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="IndexColumnConstraint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="IndexColumnConstraint.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="IndexColumnConstraint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="IndexColumnConstraint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="IndexColumnConstraint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -22879,6 +23915,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="IndexColumnConstraint.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="IndexColumnConstraint.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="IndexColumnConstraint.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="IndexColumnConstraint.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -22895,8 +23932,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-1419"><a href="#InlineLengthColumnConstraint-1419"><span class="linenos">1419</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-1420"><a href="#InlineLengthColumnConstraint-1420"><span class="linenos">1420</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="InlineLengthColumnConstraint-1416"><a href="#InlineLengthColumnConstraint-1416"><span class="linenos">1416</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-1417"><a href="#InlineLengthColumnConstraint-1417"><span class="linenos">1417</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -22940,6 +23977,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="InlineLengthColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="InlineLengthColumnConstraint.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="InlineLengthColumnConstraint.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="InlineLengthColumnConstraint.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="InlineLengthColumnConstraint.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="InlineLengthColumnConstraint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="InlineLengthColumnConstraint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -22960,6 +23998,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="InlineLengthColumnConstraint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="InlineLengthColumnConstraint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="InlineLengthColumnConstraint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="InlineLengthColumnConstraint.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="InlineLengthColumnConstraint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="InlineLengthColumnConstraint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="InlineLengthColumnConstraint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -22981,6 +24020,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="InlineLengthColumnConstraint.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="InlineLengthColumnConstraint.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="InlineLengthColumnConstraint.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="InlineLengthColumnConstraint.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -22997,8 +24037,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#NonClusteredColumnConstraint"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="NonClusteredColumnConstraint-1423"><a href="#NonClusteredColumnConstraint-1423"><span class="linenos">1423</span></a><span class="k">class</span> <span class="nc">NonClusteredColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="NonClusteredColumnConstraint-1424"><a href="#NonClusteredColumnConstraint-1424"><span class="linenos">1424</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="NonClusteredColumnConstraint-1420"><a href="#NonClusteredColumnConstraint-1420"><span class="linenos">1420</span></a><span class="k">class</span> <span class="nc">NonClusteredColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="NonClusteredColumnConstraint-1421"><a href="#NonClusteredColumnConstraint-1421"><span class="linenos">1421</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -23042,6 +24082,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="NonClusteredColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="NonClusteredColumnConstraint.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="NonClusteredColumnConstraint.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="NonClusteredColumnConstraint.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="NonClusteredColumnConstraint.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="NonClusteredColumnConstraint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="NonClusteredColumnConstraint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -23062,6 +24103,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="NonClusteredColumnConstraint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="NonClusteredColumnConstraint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="NonClusteredColumnConstraint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="NonClusteredColumnConstraint.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="NonClusteredColumnConstraint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="NonClusteredColumnConstraint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="NonClusteredColumnConstraint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -23083,6 +24125,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="NonClusteredColumnConstraint.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="NonClusteredColumnConstraint.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="NonClusteredColumnConstraint.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="NonClusteredColumnConstraint.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -23099,8 +24142,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#NotForReplicationColumnConstraint"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="NotForReplicationColumnConstraint-1427"><a href="#NotForReplicationColumnConstraint-1427"><span class="linenos">1427</span></a><span class="k">class</span> <span class="nc">NotForReplicationColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="NotForReplicationColumnConstraint-1428"><a href="#NotForReplicationColumnConstraint-1428"><span class="linenos">1428</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="NotForReplicationColumnConstraint-1424"><a href="#NotForReplicationColumnConstraint-1424"><span class="linenos">1424</span></a><span class="k">class</span> <span class="nc">NotForReplicationColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="NotForReplicationColumnConstraint-1425"><a href="#NotForReplicationColumnConstraint-1425"><span class="linenos">1425</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
</span></pre></div>
@@ -23155,6 +24198,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="NotForReplicationColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="NotForReplicationColumnConstraint.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="NotForReplicationColumnConstraint.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="NotForReplicationColumnConstraint.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="NotForReplicationColumnConstraint.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="NotForReplicationColumnConstraint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="NotForReplicationColumnConstraint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -23175,6 +24219,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="NotForReplicationColumnConstraint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="NotForReplicationColumnConstraint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="NotForReplicationColumnConstraint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="NotForReplicationColumnConstraint.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="NotForReplicationColumnConstraint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="NotForReplicationColumnConstraint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="NotForReplicationColumnConstraint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -23196,6 +24241,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="NotForReplicationColumnConstraint.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="NotForReplicationColumnConstraint.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="NotForReplicationColumnConstraint.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="NotForReplicationColumnConstraint.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -23212,8 +24258,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-1431"><a href="#NotNullColumnConstraint-1431"><span class="linenos">1431</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-1432"><a href="#NotNullColumnConstraint-1432"><span class="linenos">1432</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-1428"><a href="#NotNullColumnConstraint-1428"><span class="linenos">1428</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-1429"><a href="#NotNullColumnConstraint-1429"><span class="linenos">1429</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>
@@ -23268,6 +24314,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="NotNullColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="NotNullColumnConstraint.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="NotNullColumnConstraint.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="NotNullColumnConstraint.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="NotNullColumnConstraint.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="NotNullColumnConstraint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="NotNullColumnConstraint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -23288,6 +24335,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="NotNullColumnConstraint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="NotNullColumnConstraint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="NotNullColumnConstraint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="NotNullColumnConstraint.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="NotNullColumnConstraint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="NotNullColumnConstraint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="NotNullColumnConstraint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -23309,6 +24357,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="NotNullColumnConstraint.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="NotNullColumnConstraint.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="NotNullColumnConstraint.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="NotNullColumnConstraint.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -23325,8 +24374,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#OnUpdateColumnConstraint"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="OnUpdateColumnConstraint-1436"><a href="#OnUpdateColumnConstraint-1436"><span class="linenos">1436</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-1437"><a href="#OnUpdateColumnConstraint-1437"><span class="linenos">1437</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="OnUpdateColumnConstraint-1433"><a href="#OnUpdateColumnConstraint-1433"><span class="linenos">1433</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-1434"><a href="#OnUpdateColumnConstraint-1434"><span class="linenos">1434</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -23370,6 +24419,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="OnUpdateColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="OnUpdateColumnConstraint.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="OnUpdateColumnConstraint.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="OnUpdateColumnConstraint.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="OnUpdateColumnConstraint.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="OnUpdateColumnConstraint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="OnUpdateColumnConstraint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -23390,6 +24440,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<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.to_s" class="function"><a href="#Expression.to_s">to_s</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>
@@ -23411,6 +24462,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="OnUpdateColumnConstraint.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="OnUpdateColumnConstraint.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="OnUpdateColumnConstraint.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="OnUpdateColumnConstraint.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -23427,8 +24479,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#TransformColumnConstraint"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TransformColumnConstraint-1441"><a href="#TransformColumnConstraint-1441"><span class="linenos">1441</span></a><span class="k">class</span> <span class="nc">TransformColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="TransformColumnConstraint-1442"><a href="#TransformColumnConstraint-1442"><span class="linenos">1442</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TransformColumnConstraint-1438"><a href="#TransformColumnConstraint-1438"><span class="linenos">1438</span></a><span class="k">class</span> <span class="nc">TransformColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="TransformColumnConstraint-1439"><a href="#TransformColumnConstraint-1439"><span class="linenos">1439</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -23472,6 +24524,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="TransformColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="TransformColumnConstraint.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="TransformColumnConstraint.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="TransformColumnConstraint.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="TransformColumnConstraint.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="TransformColumnConstraint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="TransformColumnConstraint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -23492,6 +24545,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="TransformColumnConstraint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="TransformColumnConstraint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="TransformColumnConstraint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="TransformColumnConstraint.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="TransformColumnConstraint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="TransformColumnConstraint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="TransformColumnConstraint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -23513,6 +24567,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="TransformColumnConstraint.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="TransformColumnConstraint.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="TransformColumnConstraint.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="TransformColumnConstraint.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -23529,8 +24584,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-1445"><a href="#PrimaryKeyColumnConstraint-1445"><span class="linenos">1445</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-1446"><a href="#PrimaryKeyColumnConstraint-1446"><span class="linenos">1446</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-1442"><a href="#PrimaryKeyColumnConstraint-1442"><span class="linenos">1442</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-1443"><a href="#PrimaryKeyColumnConstraint-1443"><span class="linenos">1443</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>
@@ -23585,6 +24640,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="PrimaryKeyColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="PrimaryKeyColumnConstraint.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="PrimaryKeyColumnConstraint.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="PrimaryKeyColumnConstraint.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="PrimaryKeyColumnConstraint.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="PrimaryKeyColumnConstraint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="PrimaryKeyColumnConstraint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -23605,6 +24661,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="PrimaryKeyColumnConstraint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="PrimaryKeyColumnConstraint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="PrimaryKeyColumnConstraint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="PrimaryKeyColumnConstraint.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="PrimaryKeyColumnConstraint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="PrimaryKeyColumnConstraint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="PrimaryKeyColumnConstraint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -23626,6 +24683,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="PrimaryKeyColumnConstraint.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="PrimaryKeyColumnConstraint.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="PrimaryKeyColumnConstraint.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="PrimaryKeyColumnConstraint.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -23642,8 +24700,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-1449"><a href="#TitleColumnConstraint-1449"><span class="linenos">1449</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-1450"><a href="#TitleColumnConstraint-1450"><span class="linenos">1450</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TitleColumnConstraint-1446"><a href="#TitleColumnConstraint-1446"><span class="linenos">1446</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-1447"><a href="#TitleColumnConstraint-1447"><span class="linenos">1447</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -23687,6 +24745,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="TitleColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="TitleColumnConstraint.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="TitleColumnConstraint.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="TitleColumnConstraint.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="TitleColumnConstraint.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="TitleColumnConstraint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="TitleColumnConstraint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -23707,6 +24766,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="TitleColumnConstraint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="TitleColumnConstraint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="TitleColumnConstraint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="TitleColumnConstraint.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="TitleColumnConstraint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="TitleColumnConstraint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="TitleColumnConstraint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -23728,6 +24788,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="TitleColumnConstraint.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="TitleColumnConstraint.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="TitleColumnConstraint.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="TitleColumnConstraint.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -23744,8 +24805,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-1453"><a href="#UniqueColumnConstraint-1453"><span class="linenos">1453</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-1454"><a href="#UniqueColumnConstraint-1454"><span class="linenos">1454</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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;index_type&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="UniqueColumnConstraint-1450"><a href="#UniqueColumnConstraint-1450"><span class="linenos">1450</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-1451"><a href="#UniqueColumnConstraint-1451"><span class="linenos">1451</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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;index_type&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -23800,6 +24861,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="UniqueColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="UniqueColumnConstraint.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="UniqueColumnConstraint.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="UniqueColumnConstraint.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="UniqueColumnConstraint.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="UniqueColumnConstraint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="UniqueColumnConstraint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -23820,6 +24882,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="UniqueColumnConstraint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="UniqueColumnConstraint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="UniqueColumnConstraint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="UniqueColumnConstraint.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="UniqueColumnConstraint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="UniqueColumnConstraint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="UniqueColumnConstraint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -23841,6 +24904,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="UniqueColumnConstraint.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="UniqueColumnConstraint.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="UniqueColumnConstraint.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="UniqueColumnConstraint.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -23857,8 +24921,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-1457"><a href="#UppercaseColumnConstraint-1457"><span class="linenos">1457</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-1458"><a href="#UppercaseColumnConstraint-1458"><span class="linenos">1458</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-1454"><a href="#UppercaseColumnConstraint-1454"><span class="linenos">1454</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-1455"><a href="#UppercaseColumnConstraint-1455"><span class="linenos">1455</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>
@@ -23913,6 +24977,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="UppercaseColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="UppercaseColumnConstraint.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="UppercaseColumnConstraint.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="UppercaseColumnConstraint.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="UppercaseColumnConstraint.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="UppercaseColumnConstraint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="UppercaseColumnConstraint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -23933,6 +24998,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="UppercaseColumnConstraint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="UppercaseColumnConstraint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="UppercaseColumnConstraint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="UppercaseColumnConstraint.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="UppercaseColumnConstraint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="UppercaseColumnConstraint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="UppercaseColumnConstraint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -23954,6 +25020,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="UppercaseColumnConstraint.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="UppercaseColumnConstraint.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="UppercaseColumnConstraint.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="UppercaseColumnConstraint.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -23970,8 +25037,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-1461"><a href="#PathColumnConstraint-1461"><span class="linenos">1461</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-1462"><a href="#PathColumnConstraint-1462"><span class="linenos">1462</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="PathColumnConstraint-1458"><a href="#PathColumnConstraint-1458"><span class="linenos">1458</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-1459"><a href="#PathColumnConstraint-1459"><span class="linenos">1459</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -24015,6 +25082,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="PathColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="PathColumnConstraint.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="PathColumnConstraint.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="PathColumnConstraint.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="PathColumnConstraint.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="PathColumnConstraint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="PathColumnConstraint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -24035,6 +25103,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="PathColumnConstraint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="PathColumnConstraint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="PathColumnConstraint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="PathColumnConstraint.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="PathColumnConstraint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="PathColumnConstraint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="PathColumnConstraint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -24056,6 +25125,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="PathColumnConstraint.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="PathColumnConstraint.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="PathColumnConstraint.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="PathColumnConstraint.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -24072,8 +25142,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#ComputedColumnConstraint"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ComputedColumnConstraint-1467"><a href="#ComputedColumnConstraint-1467"><span class="linenos">1467</span></a><span class="k">class</span> <span class="nc">ComputedColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="ComputedColumnConstraint-1468"><a href="#ComputedColumnConstraint-1468"><span class="linenos">1468</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;persisted&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;not_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="ComputedColumnConstraint-1464"><a href="#ComputedColumnConstraint-1464"><span class="linenos">1464</span></a><span class="k">class</span> <span class="nc">ComputedColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="ComputedColumnConstraint-1465"><a href="#ComputedColumnConstraint-1465"><span class="linenos">1465</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;persisted&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;not_null&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -24128,6 +25198,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="ComputedColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ComputedColumnConstraint.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="ComputedColumnConstraint.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="ComputedColumnConstraint.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="ComputedColumnConstraint.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="ComputedColumnConstraint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ComputedColumnConstraint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -24148,6 +25219,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="ComputedColumnConstraint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ComputedColumnConstraint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ComputedColumnConstraint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="ComputedColumnConstraint.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="ComputedColumnConstraint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ComputedColumnConstraint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ComputedColumnConstraint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -24169,6 +25241,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="ComputedColumnConstraint.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="ComputedColumnConstraint.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="ComputedColumnConstraint.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="ComputedColumnConstraint.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -24185,8 +25258,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-1471"><a href="#Constraint-1471"><span class="linenos">1471</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-1472"><a href="#Constraint-1472"><span class="linenos">1472</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1468"><a href="#Constraint-1468"><span class="linenos">1468</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-1469"><a href="#Constraint-1469"><span class="linenos">1469</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -24241,6 +25314,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Constraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Constraint.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Constraint.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Constraint.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Constraint.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Constraint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Constraint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -24261,6 +25335,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Constraint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Constraint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Constraint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Constraint.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Constraint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Constraint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Constraint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -24282,6 +25357,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Constraint.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Constraint.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Constraint.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Constraint.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -24298,88 +25374,88 @@ 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-1475"><a href="#Delete-1475"><span class="linenos">1475</span></a><span class="k">class</span> <span class="nc">Delete</span><span class="p">(</span><span class="n">DML</span><span class="p">):</span>
-</span><span id="Delete-1476"><a href="#Delete-1476"><span class="linenos">1476</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Delete-1477"><a href="#Delete-1477"><span class="linenos">1477</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="Delete-1478"><a href="#Delete-1478"><span class="linenos">1478</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="Delete-1479"><a href="#Delete-1479"><span class="linenos">1479</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="Delete-1480"><a href="#Delete-1480"><span class="linenos">1480</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="Delete-1481"><a href="#Delete-1481"><span class="linenos">1481</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="Delete-1482"><a href="#Delete-1482"><span class="linenos">1482</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="Delete-1483"><a href="#Delete-1483"><span class="linenos">1483</span></a> <span class="s2">&quot;tables&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="c1"># Multiple-Table Syntax (MySQL)</span>
-</span><span id="Delete-1484"><a href="#Delete-1484"><span class="linenos">1484</span></a> <span class="p">}</span>
-</span><span id="Delete-1485"><a href="#Delete-1485"><span class="linenos">1485</span></a>
-</span><span id="Delete-1486"><a href="#Delete-1486"><span class="linenos">1486</span></a> <span class="k">def</span> <span class="nf">delete</span><span class="p">(</span>
-</span><span id="Delete-1487"><a href="#Delete-1487"><span class="linenos">1487</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Delete-1488"><a href="#Delete-1488"><span class="linenos">1488</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="Delete-1489"><a href="#Delete-1489"><span class="linenos">1489</span></a> <span class="n">dialect</span><span 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-1490"><a href="#Delete-1490"><span class="linenos">1490</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-1491"><a href="#Delete-1491"><span class="linenos">1491</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Delete-1492"><a href="#Delete-1492"><span class="linenos">1492</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
-</span><span id="Delete-1493"><a href="#Delete-1493"><span class="linenos">1493</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Delete-1494"><a href="#Delete-1494"><span class="linenos">1494</span></a><span class="sd"> Create a DELETE expression or replace the table on an existing DELETE expression.</span>
-</span><span id="Delete-1495"><a href="#Delete-1495"><span class="linenos">1495</span></a>
-</span><span id="Delete-1496"><a href="#Delete-1496"><span class="linenos">1496</span></a><span class="sd"> Example:</span>
-</span><span id="Delete-1497"><a href="#Delete-1497"><span class="linenos">1497</span></a><span class="sd"> &gt;&gt;&gt; delete(&quot;tbl&quot;).sql()</span>
-</span><span id="Delete-1498"><a href="#Delete-1498"><span class="linenos">1498</span></a><span class="sd"> &#39;DELETE FROM tbl&#39;</span>
-</span><span id="Delete-1499"><a href="#Delete-1499"><span class="linenos">1499</span></a>
-</span><span id="Delete-1500"><a href="#Delete-1500"><span class="linenos">1500</span></a><span class="sd"> Args:</span>
-</span><span id="Delete-1501"><a href="#Delete-1501"><span class="linenos">1501</span></a><span class="sd"> table: the table from which to delete.</span>
-</span><span id="Delete-1502"><a href="#Delete-1502"><span class="linenos">1502</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="Delete-1503"><a href="#Delete-1503"><span class="linenos">1503</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Delete-1504"><a href="#Delete-1504"><span class="linenos">1504</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Delete-1505"><a href="#Delete-1505"><span class="linenos">1505</span></a>
-</span><span id="Delete-1506"><a href="#Delete-1506"><span class="linenos">1506</span></a><span class="sd"> Returns:</span>
-</span><span id="Delete-1507"><a href="#Delete-1507"><span class="linenos">1507</span></a><span class="sd"> Delete: the modified expression.</span>
-</span><span id="Delete-1508"><a href="#Delete-1508"><span class="linenos">1508</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Delete-1509"><a href="#Delete-1509"><span class="linenos">1509</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
-</span><span id="Delete-1510"><a href="#Delete-1510"><span class="linenos">1510</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">table</span><span class="p">,</span>
-</span><span id="Delete-1511"><a href="#Delete-1511"><span class="linenos">1511</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Delete-1512"><a href="#Delete-1512"><span class="linenos">1512</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-1513"><a href="#Delete-1513"><span class="linenos">1513</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Delete-1514"><a href="#Delete-1514"><span class="linenos">1514</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span>
-</span><span id="Delete-1515"><a href="#Delete-1515"><span class="linenos">1515</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Delete-1516"><a href="#Delete-1516"><span class="linenos">1516</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Delete-1517"><a href="#Delete-1517"><span class="linenos">1517</span></a> <span class="p">)</span>
-</span><span id="Delete-1518"><a href="#Delete-1518"><span class="linenos">1518</span></a>
-</span><span id="Delete-1519"><a href="#Delete-1519"><span class="linenos">1519</span></a> <span class="k">def</span> <span class="nf">where</span><span class="p">(</span>
-</span><span id="Delete-1520"><a href="#Delete-1520"><span class="linenos">1520</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Delete-1521"><a href="#Delete-1521"><span class="linenos">1521</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Delete-1522"><a href="#Delete-1522"><span class="linenos">1522</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-1523"><a href="#Delete-1523"><span class="linenos">1523</span></a> <span class="n">dialect</span><span 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-1524"><a href="#Delete-1524"><span class="linenos">1524</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-1525"><a href="#Delete-1525"><span class="linenos">1525</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Delete-1526"><a href="#Delete-1526"><span class="linenos">1526</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
-</span><span id="Delete-1527"><a href="#Delete-1527"><span class="linenos">1527</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Delete-1528"><a href="#Delete-1528"><span class="linenos">1528</span></a><span class="sd"> Append to or set the WHERE expressions.</span>
-</span><span id="Delete-1529"><a href="#Delete-1529"><span class="linenos">1529</span></a>
-</span><span id="Delete-1530"><a href="#Delete-1530"><span class="linenos">1530</span></a><span class="sd"> Example:</span>
-</span><span id="Delete-1531"><a href="#Delete-1531"><span class="linenos">1531</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-1532"><a href="#Delete-1532"><span class="linenos">1532</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-1533"><a href="#Delete-1533"><span class="linenos">1533</span></a>
-</span><span id="Delete-1534"><a href="#Delete-1534"><span class="linenos">1534</span></a><span class="sd"> Args:</span>
-</span><span id="Delete-1535"><a href="#Delete-1535"><span class="linenos">1535</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Delete-1536"><a href="#Delete-1536"><span class="linenos">1536</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Delete-1537"><a href="#Delete-1537"><span class="linenos">1537</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
-</span><span id="Delete-1538"><a href="#Delete-1538"><span class="linenos">1538</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
-</span><span id="Delete-1539"><a href="#Delete-1539"><span class="linenos">1539</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="Delete-1540"><a href="#Delete-1540"><span class="linenos">1540</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="Delete-1541"><a href="#Delete-1541"><span class="linenos">1541</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Delete-1542"><a href="#Delete-1542"><span class="linenos">1542</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Delete-1543"><a href="#Delete-1543"><span class="linenos">1543</span></a>
-</span><span id="Delete-1544"><a href="#Delete-1544"><span class="linenos">1544</span></a><span class="sd"> Returns:</span>
-</span><span id="Delete-1545"><a href="#Delete-1545"><span class="linenos">1545</span></a><span class="sd"> Delete: the modified expression.</span>
-</span><span id="Delete-1546"><a href="#Delete-1546"><span class="linenos">1546</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Delete-1547"><a href="#Delete-1547"><span class="linenos">1547</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="Delete-1548"><a href="#Delete-1548"><span class="linenos">1548</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Delete-1549"><a href="#Delete-1549"><span class="linenos">1549</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Delete-1550"><a href="#Delete-1550"><span class="linenos">1550</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-1551"><a href="#Delete-1551"><span class="linenos">1551</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Delete-1552"><a href="#Delete-1552"><span class="linenos">1552</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span>
-</span><span id="Delete-1553"><a href="#Delete-1553"><span class="linenos">1553</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Delete-1554"><a href="#Delete-1554"><span class="linenos">1554</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Delete-1555"><a href="#Delete-1555"><span class="linenos">1555</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Delete-1556"><a href="#Delete-1556"><span class="linenos">1556</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Delete-1472"><a href="#Delete-1472"><span class="linenos">1472</span></a><span class="k">class</span> <span class="nc">Delete</span><span class="p">(</span><span class="n">DML</span><span class="p">):</span>
+</span><span id="Delete-1473"><a href="#Delete-1473"><span class="linenos">1473</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Delete-1474"><a href="#Delete-1474"><span class="linenos">1474</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="Delete-1475"><a href="#Delete-1475"><span class="linenos">1475</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="Delete-1476"><a href="#Delete-1476"><span class="linenos">1476</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="Delete-1477"><a href="#Delete-1477"><span class="linenos">1477</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="Delete-1478"><a href="#Delete-1478"><span class="linenos">1478</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="Delete-1479"><a href="#Delete-1479"><span class="linenos">1479</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="Delete-1480"><a href="#Delete-1480"><span class="linenos">1480</span></a> <span class="s2">&quot;tables&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="c1"># Multiple-Table Syntax (MySQL)</span>
+</span><span id="Delete-1481"><a href="#Delete-1481"><span class="linenos">1481</span></a> <span class="p">}</span>
+</span><span id="Delete-1482"><a href="#Delete-1482"><span class="linenos">1482</span></a>
+</span><span id="Delete-1483"><a href="#Delete-1483"><span class="linenos">1483</span></a> <span class="k">def</span> <span class="nf">delete</span><span class="p">(</span>
+</span><span id="Delete-1484"><a href="#Delete-1484"><span class="linenos">1484</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Delete-1485"><a href="#Delete-1485"><span class="linenos">1485</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="Delete-1486"><a href="#Delete-1486"><span class="linenos">1486</span></a> <span class="n">dialect</span><span 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-1487"><a href="#Delete-1487"><span class="linenos">1487</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-1488"><a href="#Delete-1488"><span class="linenos">1488</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Delete-1489"><a href="#Delete-1489"><span class="linenos">1489</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
+</span><span id="Delete-1490"><a href="#Delete-1490"><span class="linenos">1490</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Delete-1491"><a href="#Delete-1491"><span class="linenos">1491</span></a><span class="sd"> Create a DELETE expression or replace the table on an existing DELETE expression.</span>
+</span><span id="Delete-1492"><a href="#Delete-1492"><span class="linenos">1492</span></a>
+</span><span id="Delete-1493"><a href="#Delete-1493"><span class="linenos">1493</span></a><span class="sd"> Example:</span>
+</span><span id="Delete-1494"><a href="#Delete-1494"><span class="linenos">1494</span></a><span class="sd"> &gt;&gt;&gt; delete(&quot;tbl&quot;).sql()</span>
+</span><span id="Delete-1495"><a href="#Delete-1495"><span class="linenos">1495</span></a><span class="sd"> &#39;DELETE FROM tbl&#39;</span>
+</span><span id="Delete-1496"><a href="#Delete-1496"><span class="linenos">1496</span></a>
+</span><span id="Delete-1497"><a href="#Delete-1497"><span class="linenos">1497</span></a><span class="sd"> Args:</span>
+</span><span id="Delete-1498"><a href="#Delete-1498"><span class="linenos">1498</span></a><span class="sd"> table: the table from which to delete.</span>
+</span><span id="Delete-1499"><a href="#Delete-1499"><span class="linenos">1499</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Delete-1500"><a href="#Delete-1500"><span class="linenos">1500</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Delete-1501"><a href="#Delete-1501"><span class="linenos">1501</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Delete-1502"><a href="#Delete-1502"><span class="linenos">1502</span></a>
+</span><span id="Delete-1503"><a href="#Delete-1503"><span class="linenos">1503</span></a><span class="sd"> Returns:</span>
+</span><span id="Delete-1504"><a href="#Delete-1504"><span class="linenos">1504</span></a><span class="sd"> Delete: the modified expression.</span>
+</span><span id="Delete-1505"><a href="#Delete-1505"><span class="linenos">1505</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Delete-1506"><a href="#Delete-1506"><span class="linenos">1506</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
+</span><span id="Delete-1507"><a href="#Delete-1507"><span class="linenos">1507</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">table</span><span class="p">,</span>
+</span><span id="Delete-1508"><a href="#Delete-1508"><span class="linenos">1508</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Delete-1509"><a href="#Delete-1509"><span class="linenos">1509</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-1510"><a href="#Delete-1510"><span class="linenos">1510</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Delete-1511"><a href="#Delete-1511"><span class="linenos">1511</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span>
+</span><span id="Delete-1512"><a href="#Delete-1512"><span class="linenos">1512</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Delete-1513"><a href="#Delete-1513"><span class="linenos">1513</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Delete-1514"><a href="#Delete-1514"><span class="linenos">1514</span></a> <span class="p">)</span>
+</span><span id="Delete-1515"><a href="#Delete-1515"><span class="linenos">1515</span></a>
+</span><span id="Delete-1516"><a href="#Delete-1516"><span class="linenos">1516</span></a> <span class="k">def</span> <span class="nf">where</span><span class="p">(</span>
+</span><span id="Delete-1517"><a href="#Delete-1517"><span class="linenos">1517</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Delete-1518"><a href="#Delete-1518"><span class="linenos">1518</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Delete-1519"><a href="#Delete-1519"><span class="linenos">1519</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-1520"><a href="#Delete-1520"><span class="linenos">1520</span></a> <span class="n">dialect</span><span 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-1521"><a href="#Delete-1521"><span class="linenos">1521</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-1522"><a href="#Delete-1522"><span class="linenos">1522</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Delete-1523"><a href="#Delete-1523"><span class="linenos">1523</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
+</span><span id="Delete-1524"><a href="#Delete-1524"><span class="linenos">1524</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Delete-1525"><a href="#Delete-1525"><span class="linenos">1525</span></a><span class="sd"> Append to or set the WHERE expressions.</span>
+</span><span id="Delete-1526"><a href="#Delete-1526"><span class="linenos">1526</span></a>
+</span><span id="Delete-1527"><a href="#Delete-1527"><span class="linenos">1527</span></a><span class="sd"> Example:</span>
+</span><span id="Delete-1528"><a href="#Delete-1528"><span class="linenos">1528</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-1529"><a href="#Delete-1529"><span class="linenos">1529</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-1530"><a href="#Delete-1530"><span class="linenos">1530</span></a>
+</span><span id="Delete-1531"><a href="#Delete-1531"><span class="linenos">1531</span></a><span class="sd"> Args:</span>
+</span><span id="Delete-1532"><a href="#Delete-1532"><span class="linenos">1532</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Delete-1533"><a href="#Delete-1533"><span class="linenos">1533</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Delete-1534"><a href="#Delete-1534"><span class="linenos">1534</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
+</span><span id="Delete-1535"><a href="#Delete-1535"><span class="linenos">1535</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
+</span><span id="Delete-1536"><a href="#Delete-1536"><span class="linenos">1536</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="Delete-1537"><a href="#Delete-1537"><span class="linenos">1537</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Delete-1538"><a href="#Delete-1538"><span class="linenos">1538</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Delete-1539"><a href="#Delete-1539"><span class="linenos">1539</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Delete-1540"><a href="#Delete-1540"><span class="linenos">1540</span></a>
+</span><span id="Delete-1541"><a href="#Delete-1541"><span class="linenos">1541</span></a><span class="sd"> Returns:</span>
+</span><span id="Delete-1542"><a href="#Delete-1542"><span class="linenos">1542</span></a><span class="sd"> Delete: the modified expression.</span>
+</span><span id="Delete-1543"><a href="#Delete-1543"><span class="linenos">1543</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Delete-1544"><a href="#Delete-1544"><span class="linenos">1544</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="Delete-1545"><a href="#Delete-1545"><span class="linenos">1545</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Delete-1546"><a href="#Delete-1546"><span class="linenos">1546</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Delete-1547"><a href="#Delete-1547"><span class="linenos">1547</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-1548"><a href="#Delete-1548"><span class="linenos">1548</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Delete-1549"><a href="#Delete-1549"><span class="linenos">1549</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span>
+</span><span id="Delete-1550"><a href="#Delete-1550"><span class="linenos">1550</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Delete-1551"><a href="#Delete-1551"><span class="linenos">1551</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Delete-1552"><a href="#Delete-1552"><span class="linenos">1552</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Delete-1553"><a href="#Delete-1553"><span class="linenos">1553</span></a> <span class="p">)</span>
</span></pre></div>
@@ -24409,38 +25485,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-1486"><a href="#Delete.delete-1486"><span class="linenos">1486</span></a> <span class="k">def</span> <span class="nf">delete</span><span class="p">(</span>
-</span><span id="Delete.delete-1487"><a href="#Delete.delete-1487"><span class="linenos">1487</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Delete.delete-1488"><a href="#Delete.delete-1488"><span class="linenos">1488</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-1489"><a href="#Delete.delete-1489"><span class="linenos">1489</span></a> <span class="n">dialect</span><span 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-1490"><a href="#Delete.delete-1490"><span class="linenos">1490</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-1491"><a href="#Delete.delete-1491"><span class="linenos">1491</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Delete.delete-1492"><a href="#Delete.delete-1492"><span class="linenos">1492</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-1493"><a href="#Delete.delete-1493"><span class="linenos">1493</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Delete.delete-1494"><a href="#Delete.delete-1494"><span class="linenos">1494</span></a><span class="sd"> Create a DELETE expression or replace the table on an existing DELETE expression.</span>
-</span><span id="Delete.delete-1495"><a href="#Delete.delete-1495"><span class="linenos">1495</span></a>
-</span><span id="Delete.delete-1496"><a href="#Delete.delete-1496"><span class="linenos">1496</span></a><span class="sd"> Example:</span>
-</span><span id="Delete.delete-1497"><a href="#Delete.delete-1497"><span class="linenos">1497</span></a><span class="sd"> &gt;&gt;&gt; delete(&quot;tbl&quot;).sql()</span>
-</span><span id="Delete.delete-1498"><a href="#Delete.delete-1498"><span class="linenos">1498</span></a><span class="sd"> &#39;DELETE FROM tbl&#39;</span>
-</span><span id="Delete.delete-1499"><a href="#Delete.delete-1499"><span class="linenos">1499</span></a>
-</span><span id="Delete.delete-1500"><a href="#Delete.delete-1500"><span class="linenos">1500</span></a><span class="sd"> Args:</span>
-</span><span id="Delete.delete-1501"><a href="#Delete.delete-1501"><span class="linenos">1501</span></a><span class="sd"> table: the table from which to delete.</span>
-</span><span id="Delete.delete-1502"><a href="#Delete.delete-1502"><span class="linenos">1502</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="Delete.delete-1503"><a href="#Delete.delete-1503"><span class="linenos">1503</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Delete.delete-1504"><a href="#Delete.delete-1504"><span class="linenos">1504</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Delete.delete-1505"><a href="#Delete.delete-1505"><span class="linenos">1505</span></a>
-</span><span id="Delete.delete-1506"><a href="#Delete.delete-1506"><span class="linenos">1506</span></a><span class="sd"> Returns:</span>
-</span><span id="Delete.delete-1507"><a href="#Delete.delete-1507"><span class="linenos">1507</span></a><span class="sd"> Delete: the modified expression.</span>
-</span><span id="Delete.delete-1508"><a href="#Delete.delete-1508"><span class="linenos">1508</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Delete.delete-1509"><a href="#Delete.delete-1509"><span class="linenos">1509</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
-</span><span id="Delete.delete-1510"><a href="#Delete.delete-1510"><span class="linenos">1510</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-1511"><a href="#Delete.delete-1511"><span class="linenos">1511</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-1512"><a href="#Delete.delete-1512"><span class="linenos">1512</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-1513"><a href="#Delete.delete-1513"><span class="linenos">1513</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-1514"><a href="#Delete.delete-1514"><span class="linenos">1514</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-1515"><a href="#Delete.delete-1515"><span class="linenos">1515</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-1516"><a href="#Delete.delete-1516"><span class="linenos">1516</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Delete.delete-1517"><a href="#Delete.delete-1517"><span class="linenos">1517</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Delete.delete-1483"><a href="#Delete.delete-1483"><span class="linenos">1483</span></a> <span class="k">def</span> <span class="nf">delete</span><span class="p">(</span>
+</span><span id="Delete.delete-1484"><a href="#Delete.delete-1484"><span class="linenos">1484</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Delete.delete-1485"><a href="#Delete.delete-1485"><span class="linenos">1485</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-1486"><a href="#Delete.delete-1486"><span class="linenos">1486</span></a> <span class="n">dialect</span><span 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-1487"><a href="#Delete.delete-1487"><span class="linenos">1487</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-1488"><a href="#Delete.delete-1488"><span class="linenos">1488</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Delete.delete-1489"><a href="#Delete.delete-1489"><span class="linenos">1489</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-1490"><a href="#Delete.delete-1490"><span class="linenos">1490</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Delete.delete-1491"><a href="#Delete.delete-1491"><span class="linenos">1491</span></a><span class="sd"> Create a DELETE expression or replace the table on an existing DELETE expression.</span>
+</span><span id="Delete.delete-1492"><a href="#Delete.delete-1492"><span class="linenos">1492</span></a>
+</span><span id="Delete.delete-1493"><a href="#Delete.delete-1493"><span class="linenos">1493</span></a><span class="sd"> Example:</span>
+</span><span id="Delete.delete-1494"><a href="#Delete.delete-1494"><span class="linenos">1494</span></a><span class="sd"> &gt;&gt;&gt; delete(&quot;tbl&quot;).sql()</span>
+</span><span id="Delete.delete-1495"><a href="#Delete.delete-1495"><span class="linenos">1495</span></a><span class="sd"> &#39;DELETE FROM tbl&#39;</span>
+</span><span id="Delete.delete-1496"><a href="#Delete.delete-1496"><span class="linenos">1496</span></a>
+</span><span id="Delete.delete-1497"><a href="#Delete.delete-1497"><span class="linenos">1497</span></a><span class="sd"> Args:</span>
+</span><span id="Delete.delete-1498"><a href="#Delete.delete-1498"><span class="linenos">1498</span></a><span class="sd"> table: the table from which to delete.</span>
+</span><span id="Delete.delete-1499"><a href="#Delete.delete-1499"><span class="linenos">1499</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Delete.delete-1500"><a href="#Delete.delete-1500"><span class="linenos">1500</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Delete.delete-1501"><a href="#Delete.delete-1501"><span class="linenos">1501</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Delete.delete-1502"><a href="#Delete.delete-1502"><span class="linenos">1502</span></a>
+</span><span id="Delete.delete-1503"><a href="#Delete.delete-1503"><span class="linenos">1503</span></a><span class="sd"> Returns:</span>
+</span><span id="Delete.delete-1504"><a href="#Delete.delete-1504"><span class="linenos">1504</span></a><span class="sd"> Delete: the modified expression.</span>
+</span><span id="Delete.delete-1505"><a href="#Delete.delete-1505"><span class="linenos">1505</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Delete.delete-1506"><a href="#Delete.delete-1506"><span class="linenos">1506</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
+</span><span id="Delete.delete-1507"><a href="#Delete.delete-1507"><span class="linenos">1507</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-1508"><a href="#Delete.delete-1508"><span class="linenos">1508</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-1509"><a href="#Delete.delete-1509"><span class="linenos">1509</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-1510"><a href="#Delete.delete-1510"><span class="linenos">1510</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-1511"><a href="#Delete.delete-1511"><span class="linenos">1511</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-1512"><a href="#Delete.delete-1512"><span class="linenos">1512</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-1513"><a href="#Delete.delete-1513"><span class="linenos">1513</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Delete.delete-1514"><a href="#Delete.delete-1514"><span class="linenos">1514</span></a> <span class="p">)</span>
</span></pre></div>
@@ -24485,44 +25561,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-1519"><a href="#Delete.where-1519"><span class="linenos">1519</span></a> <span class="k">def</span> <span class="nf">where</span><span class="p">(</span>
-</span><span id="Delete.where-1520"><a href="#Delete.where-1520"><span class="linenos">1520</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Delete.where-1521"><a href="#Delete.where-1521"><span class="linenos">1521</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Delete.where-1522"><a href="#Delete.where-1522"><span class="linenos">1522</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-1523"><a href="#Delete.where-1523"><span class="linenos">1523</span></a> <span class="n">dialect</span><span 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-1524"><a href="#Delete.where-1524"><span class="linenos">1524</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-1525"><a href="#Delete.where-1525"><span class="linenos">1525</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Delete.where-1526"><a href="#Delete.where-1526"><span class="linenos">1526</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-1527"><a href="#Delete.where-1527"><span class="linenos">1527</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Delete.where-1528"><a href="#Delete.where-1528"><span class="linenos">1528</span></a><span class="sd"> Append to or set the WHERE expressions.</span>
-</span><span id="Delete.where-1529"><a href="#Delete.where-1529"><span class="linenos">1529</span></a>
-</span><span id="Delete.where-1530"><a href="#Delete.where-1530"><span class="linenos">1530</span></a><span class="sd"> Example:</span>
-</span><span id="Delete.where-1531"><a href="#Delete.where-1531"><span class="linenos">1531</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-1532"><a href="#Delete.where-1532"><span class="linenos">1532</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-1533"><a href="#Delete.where-1533"><span class="linenos">1533</span></a>
-</span><span id="Delete.where-1534"><a href="#Delete.where-1534"><span class="linenos">1534</span></a><span class="sd"> Args:</span>
-</span><span id="Delete.where-1535"><a href="#Delete.where-1535"><span class="linenos">1535</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Delete.where-1536"><a href="#Delete.where-1536"><span class="linenos">1536</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Delete.where-1537"><a href="#Delete.where-1537"><span class="linenos">1537</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
-</span><span id="Delete.where-1538"><a href="#Delete.where-1538"><span class="linenos">1538</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
-</span><span id="Delete.where-1539"><a href="#Delete.where-1539"><span class="linenos">1539</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="Delete.where-1540"><a href="#Delete.where-1540"><span class="linenos">1540</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="Delete.where-1541"><a href="#Delete.where-1541"><span class="linenos">1541</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Delete.where-1542"><a href="#Delete.where-1542"><span class="linenos">1542</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Delete.where-1543"><a href="#Delete.where-1543"><span class="linenos">1543</span></a>
-</span><span id="Delete.where-1544"><a href="#Delete.where-1544"><span class="linenos">1544</span></a><span class="sd"> Returns:</span>
-</span><span id="Delete.where-1545"><a href="#Delete.where-1545"><span class="linenos">1545</span></a><span class="sd"> Delete: the modified expression.</span>
-</span><span id="Delete.where-1546"><a href="#Delete.where-1546"><span class="linenos">1546</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Delete.where-1547"><a href="#Delete.where-1547"><span class="linenos">1547</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="Delete.where-1548"><a href="#Delete.where-1548"><span class="linenos">1548</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Delete.where-1549"><a href="#Delete.where-1549"><span class="linenos">1549</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-1550"><a href="#Delete.where-1550"><span class="linenos">1550</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-1551"><a href="#Delete.where-1551"><span class="linenos">1551</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-1552"><a href="#Delete.where-1552"><span class="linenos">1552</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-1553"><a href="#Delete.where-1553"><span class="linenos">1553</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-1554"><a href="#Delete.where-1554"><span class="linenos">1554</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-1555"><a href="#Delete.where-1555"><span class="linenos">1555</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Delete.where-1556"><a href="#Delete.where-1556"><span class="linenos">1556</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Delete.where-1516"><a href="#Delete.where-1516"><span class="linenos">1516</span></a> <span class="k">def</span> <span class="nf">where</span><span class="p">(</span>
+</span><span id="Delete.where-1517"><a href="#Delete.where-1517"><span class="linenos">1517</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Delete.where-1518"><a href="#Delete.where-1518"><span class="linenos">1518</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Delete.where-1519"><a href="#Delete.where-1519"><span class="linenos">1519</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-1520"><a href="#Delete.where-1520"><span class="linenos">1520</span></a> <span class="n">dialect</span><span 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-1521"><a href="#Delete.where-1521"><span class="linenos">1521</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-1522"><a href="#Delete.where-1522"><span class="linenos">1522</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Delete.where-1523"><a href="#Delete.where-1523"><span class="linenos">1523</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-1524"><a href="#Delete.where-1524"><span class="linenos">1524</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Delete.where-1525"><a href="#Delete.where-1525"><span class="linenos">1525</span></a><span class="sd"> Append to or set the WHERE expressions.</span>
+</span><span id="Delete.where-1526"><a href="#Delete.where-1526"><span class="linenos">1526</span></a>
+</span><span id="Delete.where-1527"><a href="#Delete.where-1527"><span class="linenos">1527</span></a><span class="sd"> Example:</span>
+</span><span id="Delete.where-1528"><a href="#Delete.where-1528"><span class="linenos">1528</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-1529"><a href="#Delete.where-1529"><span class="linenos">1529</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-1530"><a href="#Delete.where-1530"><span class="linenos">1530</span></a>
+</span><span id="Delete.where-1531"><a href="#Delete.where-1531"><span class="linenos">1531</span></a><span class="sd"> Args:</span>
+</span><span id="Delete.where-1532"><a href="#Delete.where-1532"><span class="linenos">1532</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Delete.where-1533"><a href="#Delete.where-1533"><span class="linenos">1533</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Delete.where-1534"><a href="#Delete.where-1534"><span class="linenos">1534</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
+</span><span id="Delete.where-1535"><a href="#Delete.where-1535"><span class="linenos">1535</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
+</span><span id="Delete.where-1536"><a href="#Delete.where-1536"><span class="linenos">1536</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="Delete.where-1537"><a href="#Delete.where-1537"><span class="linenos">1537</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Delete.where-1538"><a href="#Delete.where-1538"><span class="linenos">1538</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Delete.where-1539"><a href="#Delete.where-1539"><span class="linenos">1539</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Delete.where-1540"><a href="#Delete.where-1540"><span class="linenos">1540</span></a>
+</span><span id="Delete.where-1541"><a href="#Delete.where-1541"><span class="linenos">1541</span></a><span class="sd"> Returns:</span>
+</span><span id="Delete.where-1542"><a href="#Delete.where-1542"><span class="linenos">1542</span></a><span class="sd"> Delete: the modified expression.</span>
+</span><span id="Delete.where-1543"><a href="#Delete.where-1543"><span class="linenos">1543</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Delete.where-1544"><a href="#Delete.where-1544"><span class="linenos">1544</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="Delete.where-1545"><a href="#Delete.where-1545"><span class="linenos">1545</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Delete.where-1546"><a href="#Delete.where-1546"><span class="linenos">1546</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-1547"><a href="#Delete.where-1547"><span class="linenos">1547</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-1548"><a href="#Delete.where-1548"><span class="linenos">1548</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-1549"><a href="#Delete.where-1549"><span class="linenos">1549</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-1550"><a href="#Delete.where-1550"><span class="linenos">1550</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-1551"><a href="#Delete.where-1551"><span class="linenos">1551</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-1552"><a href="#Delete.where-1552"><span class="linenos">1552</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Delete.where-1553"><a href="#Delete.where-1553"><span class="linenos">1553</span></a> <span class="p">)</span>
</span></pre></div>
@@ -24597,6 +25673,7 @@ Otherwise, this resets the expression.</li>
<dd id="Delete.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Delete.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Delete.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Delete.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Delete.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Delete.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Delete.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -24617,6 +25694,7 @@ Otherwise, this resets the expression.</li>
<dd id="Delete.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Delete.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Delete.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Delete.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Delete.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Delete.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Delete.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -24638,6 +25716,7 @@ Otherwise, this resets the expression.</li>
<dd id="Delete.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Delete.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Delete.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Delete.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#DML">DML</a></dt>
@@ -24658,17 +25737,17 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Drop"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Drop-1559"><a href="#Drop-1559"><span class="linenos">1559</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-1560"><a href="#Drop-1560"><span class="linenos">1560</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Drop-1561"><a href="#Drop-1561"><span class="linenos">1561</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-1562"><a href="#Drop-1562"><span class="linenos">1562</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-1563"><a href="#Drop-1563"><span class="linenos">1563</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-1564"><a href="#Drop-1564"><span class="linenos">1564</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-1565"><a href="#Drop-1565"><span class="linenos">1565</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-1566"><a href="#Drop-1566"><span class="linenos">1566</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-1567"><a href="#Drop-1567"><span class="linenos">1567</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-1568"><a href="#Drop-1568"><span class="linenos">1568</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-1569"><a href="#Drop-1569"><span class="linenos">1569</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Drop-1556"><a href="#Drop-1556"><span class="linenos">1556</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-1557"><a href="#Drop-1557"><span class="linenos">1557</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Drop-1558"><a href="#Drop-1558"><span class="linenos">1558</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-1559"><a href="#Drop-1559"><span class="linenos">1559</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-1560"><a href="#Drop-1560"><span class="linenos">1560</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-1561"><a href="#Drop-1561"><span class="linenos">1561</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-1562"><a href="#Drop-1562"><span class="linenos">1562</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-1563"><a href="#Drop-1563"><span class="linenos">1563</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-1564"><a href="#Drop-1564"><span class="linenos">1564</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-1565"><a href="#Drop-1565"><span class="linenos">1565</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-1566"><a href="#Drop-1566"><span class="linenos">1566</span></a> <span class="p">}</span>
</span></pre></div>
@@ -24724,6 +25803,7 @@ Otherwise, this resets the expression.</li>
<dd id="Drop.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Drop.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Drop.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Drop.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Drop.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Drop.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Drop.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -24744,6 +25824,7 @@ Otherwise, this resets the expression.</li>
<dd id="Drop.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Drop.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Drop.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Drop.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Drop.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Drop.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Drop.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -24765,6 +25846,7 @@ Otherwise, this resets the expression.</li>
<dd id="Drop.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Drop.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Drop.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Drop.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -24781,8 +25863,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Filter"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Filter-1572"><a href="#Filter-1572"><span class="linenos">1572</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-1573"><a href="#Filter-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;this&quot;</span><span class="p">:</span> <span class="kc">True</span><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-1569"><a href="#Filter-1569"><span class="linenos">1569</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-1570"><a href="#Filter-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 class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -24837,6 +25919,7 @@ Otherwise, this resets the expression.</li>
<dd id="Filter.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Filter.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Filter.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Filter.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Filter.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Filter.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Filter.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -24857,6 +25940,7 @@ Otherwise, this resets the expression.</li>
<dd id="Filter.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Filter.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Filter.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Filter.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Filter.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Filter.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Filter.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -24878,6 +25962,7 @@ Otherwise, this resets the expression.</li>
<dd id="Filter.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Filter.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Filter.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Filter.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -24894,8 +25979,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Check"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Check-1576"><a href="#Check-1576"><span class="linenos">1576</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-1577"><a href="#Check-1577"><span class="linenos">1577</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Check-1573"><a href="#Check-1573"><span class="linenos">1573</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-1574"><a href="#Check-1574"><span class="linenos">1574</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -24939,6 +26024,7 @@ Otherwise, this resets the expression.</li>
<dd id="Check.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Check.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Check.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Check.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Check.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Check.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Check.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -24959,6 +26045,7 @@ Otherwise, this resets the expression.</li>
<dd id="Check.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Check.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Check.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Check.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Check.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Check.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Check.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -24980,6 +26067,7 @@ Otherwise, this resets the expression.</li>
<dd id="Check.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Check.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Check.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Check.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -24996,8 +26084,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Connect"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Connect-1581"><a href="#Connect-1581"><span class="linenos">1581</span></a><span class="k">class</span> <span class="nc">Connect</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Connect-1582"><a href="#Connect-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;start&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;connect&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Connect-1578"><a href="#Connect-1578"><span class="linenos">1578</span></a><span class="k">class</span> <span class="nc">Connect</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Connect-1579"><a href="#Connect-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;start&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;connect&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -25052,6 +26140,7 @@ Otherwise, this resets the expression.</li>
<dd id="Connect.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Connect.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Connect.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Connect.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Connect.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Connect.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Connect.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -25072,6 +26161,7 @@ Otherwise, this resets the expression.</li>
<dd id="Connect.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Connect.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Connect.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Connect.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Connect.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Connect.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Connect.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -25093,6 +26183,7 @@ Otherwise, this resets the expression.</li>
<dd id="Connect.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Connect.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Connect.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Connect.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -25109,8 +26200,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Prior"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Prior-1585"><a href="#Prior-1585"><span class="linenos">1585</span></a><span class="k">class</span> <span class="nc">Prior</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Prior-1586"><a href="#Prior-1586"><span class="linenos">1586</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Prior-1582"><a href="#Prior-1582"><span class="linenos">1582</span></a><span class="k">class</span> <span class="nc">Prior</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Prior-1583"><a href="#Prior-1583"><span class="linenos">1583</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -25154,6 +26245,7 @@ Otherwise, this resets the expression.</li>
<dd id="Prior.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Prior.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Prior.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Prior.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Prior.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Prior.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Prior.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -25174,6 +26266,7 @@ Otherwise, this resets the expression.</li>
<dd id="Prior.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Prior.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Prior.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Prior.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Prior.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Prior.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Prior.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -25195,6 +26288,7 @@ Otherwise, this resets the expression.</li>
<dd id="Prior.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Prior.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Prior.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Prior.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -25211,9 +26305,9 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Directory"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Directory-1589"><a href="#Directory-1589"><span class="linenos">1589</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-1590"><a href="#Directory-1590"><span class="linenos">1590</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-1591"><a href="#Directory-1591"><span class="linenos">1591</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1586"><a href="#Directory-1586"><span class="linenos">1586</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-1587"><a href="#Directory-1587"><span class="linenos">1587</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-1588"><a href="#Directory-1588"><span class="linenos">1588</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -25268,6 +26362,7 @@ Otherwise, this resets the expression.</li>
<dd id="Directory.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Directory.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Directory.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Directory.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Directory.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Directory.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Directory.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -25288,6 +26383,7 @@ Otherwise, this resets the expression.</li>
<dd id="Directory.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Directory.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Directory.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Directory.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Directory.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Directory.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Directory.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -25309,6 +26405,7 @@ Otherwise, this resets the expression.</li>
<dd id="Directory.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Directory.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Directory.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Directory.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -25325,13 +26422,13 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#ForeignKey"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ForeignKey-1594"><a href="#ForeignKey-1594"><span class="linenos">1594</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-1595"><a href="#ForeignKey-1595"><span class="linenos">1595</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="ForeignKey-1596"><a href="#ForeignKey-1596"><span class="linenos">1596</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-1597"><a href="#ForeignKey-1597"><span class="linenos">1597</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-1598"><a href="#ForeignKey-1598"><span class="linenos">1598</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-1599"><a href="#ForeignKey-1599"><span class="linenos">1599</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-1600"><a href="#ForeignKey-1600"><span class="linenos">1600</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ForeignKey-1591"><a href="#ForeignKey-1591"><span class="linenos">1591</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-1592"><a href="#ForeignKey-1592"><span class="linenos">1592</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="ForeignKey-1593"><a href="#ForeignKey-1593"><span class="linenos">1593</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-1594"><a href="#ForeignKey-1594"><span class="linenos">1594</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-1595"><a href="#ForeignKey-1595"><span class="linenos">1595</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-1596"><a href="#ForeignKey-1596"><span class="linenos">1596</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-1597"><a href="#ForeignKey-1597"><span class="linenos">1597</span></a> <span class="p">}</span>
</span></pre></div>
@@ -25386,6 +26483,7 @@ Otherwise, this resets the expression.</li>
<dd id="ForeignKey.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ForeignKey.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="ForeignKey.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="ForeignKey.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="ForeignKey.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="ForeignKey.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ForeignKey.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -25406,6 +26504,7 @@ Otherwise, this resets the expression.</li>
<dd id="ForeignKey.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ForeignKey.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ForeignKey.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="ForeignKey.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="ForeignKey.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ForeignKey.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ForeignKey.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -25427,6 +26526,7 @@ Otherwise, this resets the expression.</li>
<dd id="ForeignKey.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="ForeignKey.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="ForeignKey.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="ForeignKey.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -25443,8 +26543,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#ColumnPrefix"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ColumnPrefix-1603"><a href="#ColumnPrefix-1603"><span class="linenos">1603</span></a><span class="k">class</span> <span class="nc">ColumnPrefix</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="ColumnPrefix-1604"><a href="#ColumnPrefix-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;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ColumnPrefix-1600"><a href="#ColumnPrefix-1600"><span class="linenos">1600</span></a><span class="k">class</span> <span class="nc">ColumnPrefix</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="ColumnPrefix-1601"><a href="#ColumnPrefix-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> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -25499,6 +26599,7 @@ Otherwise, this resets the expression.</li>
<dd id="ColumnPrefix.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ColumnPrefix.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="ColumnPrefix.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="ColumnPrefix.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="ColumnPrefix.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="ColumnPrefix.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ColumnPrefix.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -25519,6 +26620,7 @@ Otherwise, this resets the expression.</li>
<dd id="ColumnPrefix.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ColumnPrefix.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ColumnPrefix.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="ColumnPrefix.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="ColumnPrefix.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ColumnPrefix.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ColumnPrefix.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -25540,6 +26642,7 @@ Otherwise, this resets the expression.</li>
<dd id="ColumnPrefix.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="ColumnPrefix.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="ColumnPrefix.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="ColumnPrefix.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -25556,8 +26659,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#PrimaryKey"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="PrimaryKey-1607"><a href="#PrimaryKey-1607"><span class="linenos">1607</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-1608"><a href="#PrimaryKey-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;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-1604"><a href="#PrimaryKey-1604"><span class="linenos">1604</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-1605"><a href="#PrimaryKey-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;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>
@@ -25612,6 +26715,7 @@ Otherwise, this resets the expression.</li>
<dd id="PrimaryKey.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="PrimaryKey.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="PrimaryKey.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="PrimaryKey.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="PrimaryKey.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="PrimaryKey.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="PrimaryKey.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -25632,6 +26736,7 @@ Otherwise, this resets the expression.</li>
<dd id="PrimaryKey.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="PrimaryKey.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="PrimaryKey.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="PrimaryKey.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="PrimaryKey.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="PrimaryKey.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="PrimaryKey.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -25653,6 +26758,7 @@ Otherwise, this resets the expression.</li>
<dd id="PrimaryKey.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="PrimaryKey.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="PrimaryKey.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="PrimaryKey.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -25669,8 +26775,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Into"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Into-1613"><a href="#Into-1613"><span class="linenos">1613</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-1614"><a href="#Into-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;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-1610"><a href="#Into-1610"><span class="linenos">1610</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-1611"><a href="#Into-1611"><span class="linenos">1611</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -25725,6 +26831,7 @@ Otherwise, this resets the expression.</li>
<dd id="Into.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Into.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Into.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Into.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Into.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Into.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Into.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -25745,6 +26852,7 @@ Otherwise, this resets the expression.</li>
<dd id="Into.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Into.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Into.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Into.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Into.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Into.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Into.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -25766,6 +26874,7 @@ Otherwise, this resets the expression.</li>
<dd id="Into.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Into.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Into.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Into.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -25782,38 +26891,52 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#From"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="From-1617"><a href="#From-1617"><span class="linenos">1617</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-1618"><a href="#From-1618"><span class="linenos">1618</span></a> <span class="nd">@property</span>
-</span><span id="From-1619"><a href="#From-1619"><span class="linenos">1619</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="From-1620"><a href="#From-1620"><span class="linenos">1620</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span>
-</span><span id="From-1621"><a href="#From-1621"><span class="linenos">1621</span></a>
-</span><span id="From-1622"><a href="#From-1622"><span class="linenos">1622</span></a> <span class="nd">@property</span>
-</span><span id="From-1623"><a href="#From-1623"><span class="linenos">1623</span></a> <span class="k">def</span> <span class="nf">alias_or_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="From-1624"><a href="#From-1624"><span class="linenos">1624</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">alias_or_name</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="From-1614"><a href="#From-1614"><span class="linenos">1614</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-1615"><a href="#From-1615"><span class="linenos">1615</span></a> <span class="nd">@property</span>
+</span><span id="From-1616"><a href="#From-1616"><span class="linenos">1616</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="From-1617"><a href="#From-1617"><span class="linenos">1617</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span>
+</span><span id="From-1618"><a href="#From-1618"><span class="linenos">1618</span></a>
+</span><span id="From-1619"><a href="#From-1619"><span class="linenos">1619</span></a> <span class="nd">@property</span>
+</span><span id="From-1620"><a href="#From-1620"><span class="linenos">1620</span></a> <span class="k">def</span> <span class="nf">alias_or_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="From-1621"><a href="#From-1621"><span class="linenos">1621</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">alias_or_name</span>
</span></pre></div>
<div id="From.name" class="classattr">
- <div class="attr variable">
+ <input id="From.name-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">name</span><span class="annotation">: str</span>
-
+ <label class="view-source-button" for="From.name-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#From.name"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="From.name-1615"><a href="#From.name-1615"><span class="linenos">1615</span></a> <span class="nd">@property</span>
+</span><span id="From.name-1616"><a href="#From.name-1616"><span class="linenos">1616</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="From.name-1617"><a href="#From.name-1617"><span class="linenos">1617</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span>
+</span></pre></div>
+
+
</div>
<div id="From.alias_or_name" class="classattr">
- <div class="attr variable">
+ <input id="From.alias_or_name-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">alias_or_name</span><span class="annotation">: str</span>
-
+ <label class="view-source-button" for="From.alias_or_name-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#From.alias_or_name"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="From.alias_or_name-1619"><a href="#From.alias_or_name-1619"><span class="linenos">1619</span></a> <span class="nd">@property</span>
+</span><span id="From.alias_or_name-1620"><a href="#From.alias_or_name-1620"><span class="linenos">1620</span></a> <span class="k">def</span> <span class="nf">alias_or_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="From.alias_or_name-1621"><a href="#From.alias_or_name-1621"><span class="linenos">1621</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">alias_or_name</span>
+</span></pre></div>
+
+
</div>
@@ -25853,6 +26976,7 @@ Otherwise, this resets the expression.</li>
<dd id="From.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="From.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="From.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="From.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="From.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="From.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="From.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -25873,6 +26997,7 @@ Otherwise, this resets the expression.</li>
<dd id="From.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="From.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="From.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="From.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="From.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="From.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="From.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -25894,6 +27019,7 @@ Otherwise, this resets the expression.</li>
<dd id="From.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="From.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="From.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="From.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -25910,8 +27036,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Having"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Having-1627"><a href="#Having-1627"><span class="linenos">1627</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-1628"><a href="#Having-1628"><span class="linenos">1628</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Having-1624"><a href="#Having-1624"><span class="linenos">1624</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-1625"><a href="#Having-1625"><span class="linenos">1625</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -25955,6 +27081,7 @@ Otherwise, this resets the expression.</li>
<dd id="Having.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Having.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Having.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Having.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Having.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Having.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Having.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -25975,6 +27102,7 @@ Otherwise, this resets the expression.</li>
<dd id="Having.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Having.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Having.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Having.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Having.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Having.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Having.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -25996,6 +27124,7 @@ Otherwise, this resets the expression.</li>
<dd id="Having.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Having.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Having.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Having.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -26012,8 +27141,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Hint"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Hint-1631"><a href="#Hint-1631"><span class="linenos">1631</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-1632"><a href="#Hint-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;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-1628"><a href="#Hint-1628"><span class="linenos">1628</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-1629"><a href="#Hint-1629"><span class="linenos">1629</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>
@@ -26068,6 +27197,7 @@ Otherwise, this resets the expression.</li>
<dd id="Hint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Hint.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Hint.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Hint.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Hint.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Hint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Hint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -26088,6 +27218,7 @@ Otherwise, this resets the expression.</li>
<dd id="Hint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Hint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Hint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Hint.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Hint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Hint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Hint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -26109,6 +27240,7 @@ Otherwise, this resets the expression.</li>
<dd id="Hint.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Hint.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Hint.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Hint.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -26125,8 +27257,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#JoinHint"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JoinHint-1635"><a href="#JoinHint-1635"><span class="linenos">1635</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-1636"><a href="#JoinHint-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">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="JoinHint-1632"><a href="#JoinHint-1632"><span class="linenos">1632</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-1633"><a href="#JoinHint-1633"><span class="linenos">1633</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -26181,6 +27313,7 @@ Otherwise, this resets the expression.</li>
<dd id="JoinHint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="JoinHint.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="JoinHint.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="JoinHint.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="JoinHint.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="JoinHint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="JoinHint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -26201,6 +27334,7 @@ Otherwise, this resets the expression.</li>
<dd id="JoinHint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="JoinHint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="JoinHint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="JoinHint.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="JoinHint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="JoinHint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="JoinHint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -26222,6 +27356,7 @@ Otherwise, this resets the expression.</li>
<dd id="JoinHint.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="JoinHint.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="JoinHint.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="JoinHint.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -26238,20 +27373,20 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Identifier"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Identifier-1639"><a href="#Identifier-1639"><span class="linenos">1639</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-1640"><a href="#Identifier-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 class="s2">&quot;quoted&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;global&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;temporary&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="Identifier-1641"><a href="#Identifier-1641"><span class="linenos">1641</span></a>
-</span><span id="Identifier-1642"><a href="#Identifier-1642"><span class="linenos">1642</span></a> <span class="nd">@property</span>
-</span><span id="Identifier-1643"><a href="#Identifier-1643"><span class="linenos">1643</span></a> <span class="k">def</span> <span class="nf">quoted</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="Identifier-1644"><a href="#Identifier-1644"><span class="linenos">1644</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-1645"><a href="#Identifier-1645"><span class="linenos">1645</span></a>
-</span><span id="Identifier-1646"><a href="#Identifier-1646"><span class="linenos">1646</span></a> <span class="nd">@property</span>
-</span><span id="Identifier-1647"><a href="#Identifier-1647"><span class="linenos">1647</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-1648"><a href="#Identifier-1648"><span class="linenos">1648</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-1649"><a href="#Identifier-1649"><span class="linenos">1649</span></a>
-</span><span id="Identifier-1650"><a href="#Identifier-1650"><span class="linenos">1650</span></a> <span class="nd">@property</span>
-</span><span id="Identifier-1651"><a href="#Identifier-1651"><span class="linenos">1651</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Identifier-1652"><a href="#Identifier-1652"><span class="linenos">1652</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-1636"><a href="#Identifier-1636"><span class="linenos">1636</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-1637"><a href="#Identifier-1637"><span class="linenos">1637</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;quoted&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;global&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;temporary&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="Identifier-1638"><a href="#Identifier-1638"><span class="linenos">1638</span></a>
+</span><span id="Identifier-1639"><a href="#Identifier-1639"><span class="linenos">1639</span></a> <span class="nd">@property</span>
+</span><span id="Identifier-1640"><a href="#Identifier-1640"><span class="linenos">1640</span></a> <span class="k">def</span> <span class="nf">quoted</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="Identifier-1641"><a href="#Identifier-1641"><span class="linenos">1641</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-1642"><a href="#Identifier-1642"><span class="linenos">1642</span></a>
+</span><span id="Identifier-1643"><a href="#Identifier-1643"><span class="linenos">1643</span></a> <span class="nd">@property</span>
+</span><span id="Identifier-1644"><a href="#Identifier-1644"><span class="linenos">1644</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-1645"><a href="#Identifier-1645"><span class="linenos">1645</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-1646"><a href="#Identifier-1646"><span class="linenos">1646</span></a>
+</span><span id="Identifier-1647"><a href="#Identifier-1647"><span class="linenos">1647</span></a> <span class="nd">@property</span>
+</span><span id="Identifier-1648"><a href="#Identifier-1648"><span class="linenos">1648</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Identifier-1649"><a href="#Identifier-1649"><span class="linenos">1649</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
</span></pre></div>
@@ -26270,35 +27405,56 @@ Otherwise, this resets the expression.</li>
</div>
<div id="Identifier.quoted" class="classattr">
- <div class="attr variable">
+ <input id="Identifier.quoted-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">quoted</span><span class="annotation">: bool</span>
-
+ <label class="view-source-button" for="Identifier.quoted-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Identifier.quoted"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Identifier.quoted-1639"><a href="#Identifier.quoted-1639"><span class="linenos">1639</span></a> <span class="nd">@property</span>
+</span><span id="Identifier.quoted-1640"><a href="#Identifier.quoted-1640"><span class="linenos">1640</span></a> <span class="k">def</span> <span class="nf">quoted</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="Identifier.quoted-1641"><a href="#Identifier.quoted-1641"><span class="linenos">1641</span></a> <span class="k">return</span> <span class="nb">bool</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;quoted&quot;</span><span class="p">))</span>
+</span></pre></div>
+
+
</div>
<div id="Identifier.hashable_args" class="classattr">
- <div class="attr variable">
+ <input id="Identifier.hashable_args-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">hashable_args</span><span class="annotation">: Any</span>
-
+ <label class="view-source-button" for="Identifier.hashable_args-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Identifier.hashable_args"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Identifier.hashable_args-1643"><a href="#Identifier.hashable_args-1643"><span class="linenos">1643</span></a> <span class="nd">@property</span>
+</span><span id="Identifier.hashable_args-1644"><a href="#Identifier.hashable_args-1644"><span class="linenos">1644</span></a> <span class="k">def</span> <span class="nf">hashable_args</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">:</span>
+</span><span id="Identifier.hashable_args-1645"><a href="#Identifier.hashable_args-1645"><span class="linenos">1645</span></a> <span class="k">return</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">quoted</span><span class="p">)</span>
+</span></pre></div>
+
+
</div>
<div id="Identifier.output_name" class="classattr">
- <div class="attr variable">
+ <input id="Identifier.output_name-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">output_name</span><span class="annotation">: str</span>
-
+ <label class="view-source-button" for="Identifier.output_name-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Identifier.output_name"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Identifier.output_name-1647"><a href="#Identifier.output_name-1647"><span class="linenos">1647</span></a> <span class="nd">@property</span>
+</span><span id="Identifier.output_name-1648"><a href="#Identifier.output_name-1648"><span class="linenos">1648</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Identifier.output_name-1649"><a href="#Identifier.output_name-1649"><span class="linenos">1649</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
+</span></pre></div>
+
+
<div class="docstring"><p>Name of the output column if this expression is a selection.</p>
<p>If the Expression has no output name, an empty string is returned.</p>
@@ -26356,6 +27512,7 @@ Otherwise, this resets the expression.</li>
<dd id="Identifier.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Identifier.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Identifier.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Identifier.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Identifier.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Identifier.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Identifier.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -26376,6 +27533,7 @@ Otherwise, this resets the expression.</li>
<dd id="Identifier.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Identifier.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Identifier.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Identifier.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Identifier.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Identifier.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Identifier.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -26397,6 +27555,7 @@ Otherwise, this resets the expression.</li>
<dd id="Identifier.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Identifier.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Identifier.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Identifier.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -26413,8 +27572,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Opclass"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Opclass-1656"><a href="#Opclass-1656"><span class="linenos">1656</span></a><span class="k">class</span> <span class="nc">Opclass</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Opclass-1657"><a href="#Opclass-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">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Opclass-1653"><a href="#Opclass-1653"><span class="linenos">1653</span></a><span class="k">class</span> <span class="nc">Opclass</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Opclass-1654"><a href="#Opclass-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;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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>
@@ -26469,6 +27628,7 @@ Otherwise, this resets the expression.</li>
<dd id="Opclass.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Opclass.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Opclass.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Opclass.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Opclass.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Opclass.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Opclass.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -26489,6 +27649,7 @@ Otherwise, this resets the expression.</li>
<dd id="Opclass.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Opclass.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Opclass.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Opclass.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Opclass.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Opclass.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Opclass.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -26510,6 +27671,7 @@ Otherwise, this resets the expression.</li>
<dd id="Opclass.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Opclass.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Opclass.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Opclass.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -26526,19 +27688,19 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Index"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Index-1660"><a href="#Index-1660"><span class="linenos">1660</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-1661"><a href="#Index-1661"><span class="linenos">1661</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Index-1662"><a href="#Index-1662"><span class="linenos">1662</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-1663"><a href="#Index-1663"><span class="linenos">1663</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-1664"><a href="#Index-1664"><span class="linenos">1664</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="Index-1665"><a href="#Index-1665"><span class="linenos">1665</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-1666"><a href="#Index-1666"><span class="linenos">1666</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-1667"><a href="#Index-1667"><span class="linenos">1667</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-1668"><a href="#Index-1668"><span class="linenos">1668</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-1669"><a href="#Index-1669"><span class="linenos">1669</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-1670"><a href="#Index-1670"><span class="linenos">1670</span></a> <span class="s2">&quot;partition_by&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="c1"># teradata</span>
-</span><span id="Index-1671"><a href="#Index-1671"><span class="linenos">1671</span></a> <span class="s2">&quot;where&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="c1"># postgres partial indexes</span>
-</span><span id="Index-1672"><a href="#Index-1672"><span class="linenos">1672</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Index-1657"><a href="#Index-1657"><span class="linenos">1657</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-1658"><a href="#Index-1658"><span class="linenos">1658</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Index-1659"><a href="#Index-1659"><span class="linenos">1659</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-1660"><a href="#Index-1660"><span class="linenos">1660</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-1661"><a href="#Index-1661"><span class="linenos">1661</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="Index-1662"><a href="#Index-1662"><span class="linenos">1662</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-1663"><a href="#Index-1663"><span class="linenos">1663</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-1664"><a href="#Index-1664"><span class="linenos">1664</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-1665"><a href="#Index-1665"><span class="linenos">1665</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-1666"><a href="#Index-1666"><span class="linenos">1666</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-1667"><a href="#Index-1667"><span class="linenos">1667</span></a> <span class="s2">&quot;partition_by&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="c1"># teradata</span>
+</span><span id="Index-1668"><a href="#Index-1668"><span class="linenos">1668</span></a> <span class="s2">&quot;where&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="c1"># postgres partial indexes</span>
+</span><span id="Index-1669"><a href="#Index-1669"><span class="linenos">1669</span></a> <span class="p">}</span>
</span></pre></div>
@@ -26594,6 +27756,7 @@ Otherwise, this resets the expression.</li>
<dd id="Index.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Index.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Index.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Index.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Index.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Index.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Index.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -26614,6 +27777,7 @@ Otherwise, this resets the expression.</li>
<dd id="Index.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Index.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Index.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Index.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Index.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Index.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Index.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -26635,6 +27799,7 @@ Otherwise, this resets the expression.</li>
<dd id="Index.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Index.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Index.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Index.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -26651,57 +27816,57 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Insert"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Insert-1675"><a href="#Insert-1675"><span class="linenos">1675</span></a><span class="k">class</span> <span class="nc">Insert</span><span class="p">(</span><span class="n">DDL</span><span class="p">,</span> <span class="n">DML</span><span class="p">):</span>
-</span><span id="Insert-1676"><a href="#Insert-1676"><span class="linenos">1676</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Insert-1677"><a href="#Insert-1677"><span class="linenos">1677</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-1678"><a href="#Insert-1678"><span class="linenos">1678</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-1679"><a href="#Insert-1679"><span class="linenos">1679</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-1680"><a href="#Insert-1680"><span class="linenos">1680</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-1681"><a href="#Insert-1681"><span class="linenos">1681</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-1682"><a href="#Insert-1682"><span class="linenos">1682</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-1683"><a href="#Insert-1683"><span class="linenos">1683</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-1684"><a href="#Insert-1684"><span class="linenos">1684</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-1685"><a href="#Insert-1685"><span class="linenos">1685</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-1686"><a href="#Insert-1686"><span class="linenos">1686</span></a> <span class="s2">&quot;where&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Insert-1687"><a href="#Insert-1687"><span class="linenos">1687</span></a> <span class="s2">&quot;ignore&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Insert-1688"><a href="#Insert-1688"><span class="linenos">1688</span></a> <span class="s2">&quot;by_name&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Insert-1689"><a href="#Insert-1689"><span class="linenos">1689</span></a> <span class="p">}</span>
-</span><span id="Insert-1690"><a href="#Insert-1690"><span class="linenos">1690</span></a>
-</span><span id="Insert-1691"><a href="#Insert-1691"><span class="linenos">1691</span></a> <span class="k">def</span> <span class="nf">with_</span><span class="p">(</span>
-</span><span id="Insert-1692"><a href="#Insert-1692"><span class="linenos">1692</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Insert-1693"><a href="#Insert-1693"><span class="linenos">1693</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="Insert-1694"><a href="#Insert-1694"><span class="linenos">1694</span></a> <span class="n">as_</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="Insert-1695"><a href="#Insert-1695"><span class="linenos">1695</span></a> <span class="n">recursive</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Insert-1696"><a href="#Insert-1696"><span class="linenos">1696</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Insert-1697"><a href="#Insert-1697"><span class="linenos">1697</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Insert-1698"><a href="#Insert-1698"><span class="linenos">1698</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Insert-1699"><a href="#Insert-1699"><span class="linenos">1699</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Insert-1700"><a href="#Insert-1700"><span class="linenos">1700</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Insert</span><span class="p">:</span>
-</span><span id="Insert-1701"><a href="#Insert-1701"><span class="linenos">1701</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Insert-1702"><a href="#Insert-1702"><span class="linenos">1702</span></a><span class="sd"> Append to or set the common table expressions.</span>
-</span><span id="Insert-1703"><a href="#Insert-1703"><span class="linenos">1703</span></a>
-</span><span id="Insert-1704"><a href="#Insert-1704"><span class="linenos">1704</span></a><span class="sd"> Example:</span>
-</span><span id="Insert-1705"><a href="#Insert-1705"><span class="linenos">1705</span></a><span class="sd"> &gt;&gt;&gt; insert(&quot;SELECT x FROM cte&quot;, &quot;t&quot;).with_(&quot;cte&quot;, as_=&quot;SELECT * FROM tbl&quot;).sql()</span>
-</span><span id="Insert-1706"><a href="#Insert-1706"><span class="linenos">1706</span></a><span class="sd"> &#39;WITH cte AS (SELECT * FROM tbl) INSERT INTO t SELECT x FROM cte&#39;</span>
-</span><span id="Insert-1707"><a href="#Insert-1707"><span class="linenos">1707</span></a>
-</span><span id="Insert-1708"><a href="#Insert-1708"><span class="linenos">1708</span></a><span class="sd"> Args:</span>
-</span><span id="Insert-1709"><a href="#Insert-1709"><span class="linenos">1709</span></a><span class="sd"> alias: the SQL code string to parse as the table name.</span>
-</span><span id="Insert-1710"><a href="#Insert-1710"><span class="linenos">1710</span></a><span class="sd"> If an `Expression` instance is passed, this is used as-is.</span>
-</span><span id="Insert-1711"><a href="#Insert-1711"><span class="linenos">1711</span></a><span class="sd"> as_: the SQL code string to parse as the table expression.</span>
-</span><span id="Insert-1712"><a href="#Insert-1712"><span class="linenos">1712</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Insert-1713"><a href="#Insert-1713"><span class="linenos">1713</span></a><span class="sd"> recursive: set the RECURSIVE part of the expression. Defaults to `False`.</span>
-</span><span id="Insert-1714"><a href="#Insert-1714"><span class="linenos">1714</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="Insert-1715"><a href="#Insert-1715"><span class="linenos">1715</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="Insert-1716"><a href="#Insert-1716"><span class="linenos">1716</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="Insert-1717"><a href="#Insert-1717"><span class="linenos">1717</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Insert-1718"><a href="#Insert-1718"><span class="linenos">1718</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Insert-1719"><a href="#Insert-1719"><span class="linenos">1719</span></a>
-</span><span id="Insert-1720"><a href="#Insert-1720"><span class="linenos">1720</span></a><span class="sd"> Returns:</span>
-</span><span id="Insert-1721"><a href="#Insert-1721"><span class="linenos">1721</span></a><span class="sd"> The modified expression.</span>
-</span><span id="Insert-1722"><a href="#Insert-1722"><span class="linenos">1722</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Insert-1723"><a href="#Insert-1723"><span class="linenos">1723</span></a> <span class="k">return</span> <span class="n">_apply_cte_builder</span><span class="p">(</span>
-</span><span id="Insert-1724"><a href="#Insert-1724"><span class="linenos">1724</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="p">,</span> <span class="n">as_</span><span class="p">,</span> <span class="n">recursive</span><span class="o">=</span><span class="n">recursive</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="Insert-1725"><a href="#Insert-1725"><span class="linenos">1725</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Insert-1672"><a href="#Insert-1672"><span class="linenos">1672</span></a><span class="k">class</span> <span class="nc">Insert</span><span class="p">(</span><span class="n">DDL</span><span class="p">,</span> <span class="n">DML</span><span class="p">):</span>
+</span><span id="Insert-1673"><a href="#Insert-1673"><span class="linenos">1673</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Insert-1674"><a href="#Insert-1674"><span class="linenos">1674</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-1675"><a href="#Insert-1675"><span class="linenos">1675</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-1676"><a href="#Insert-1676"><span class="linenos">1676</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-1677"><a href="#Insert-1677"><span class="linenos">1677</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-1678"><a href="#Insert-1678"><span class="linenos">1678</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-1679"><a href="#Insert-1679"><span class="linenos">1679</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-1680"><a href="#Insert-1680"><span class="linenos">1680</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-1681"><a href="#Insert-1681"><span class="linenos">1681</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-1682"><a href="#Insert-1682"><span class="linenos">1682</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-1683"><a href="#Insert-1683"><span class="linenos">1683</span></a> <span class="s2">&quot;where&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Insert-1684"><a href="#Insert-1684"><span class="linenos">1684</span></a> <span class="s2">&quot;ignore&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Insert-1685"><a href="#Insert-1685"><span class="linenos">1685</span></a> <span class="s2">&quot;by_name&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Insert-1686"><a href="#Insert-1686"><span class="linenos">1686</span></a> <span class="p">}</span>
+</span><span id="Insert-1687"><a href="#Insert-1687"><span class="linenos">1687</span></a>
+</span><span id="Insert-1688"><a href="#Insert-1688"><span class="linenos">1688</span></a> <span class="k">def</span> <span class="nf">with_</span><span class="p">(</span>
+</span><span id="Insert-1689"><a href="#Insert-1689"><span class="linenos">1689</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Insert-1690"><a href="#Insert-1690"><span class="linenos">1690</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="Insert-1691"><a href="#Insert-1691"><span class="linenos">1691</span></a> <span class="n">as_</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="Insert-1692"><a href="#Insert-1692"><span class="linenos">1692</span></a> <span class="n">recursive</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Insert-1693"><a href="#Insert-1693"><span class="linenos">1693</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Insert-1694"><a href="#Insert-1694"><span class="linenos">1694</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Insert-1695"><a href="#Insert-1695"><span class="linenos">1695</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Insert-1696"><a href="#Insert-1696"><span class="linenos">1696</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Insert-1697"><a href="#Insert-1697"><span class="linenos">1697</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Insert</span><span class="p">:</span>
+</span><span id="Insert-1698"><a href="#Insert-1698"><span class="linenos">1698</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Insert-1699"><a href="#Insert-1699"><span class="linenos">1699</span></a><span class="sd"> Append to or set the common table expressions.</span>
+</span><span id="Insert-1700"><a href="#Insert-1700"><span class="linenos">1700</span></a>
+</span><span id="Insert-1701"><a href="#Insert-1701"><span class="linenos">1701</span></a><span class="sd"> Example:</span>
+</span><span id="Insert-1702"><a href="#Insert-1702"><span class="linenos">1702</span></a><span class="sd"> &gt;&gt;&gt; insert(&quot;SELECT x FROM cte&quot;, &quot;t&quot;).with_(&quot;cte&quot;, as_=&quot;SELECT * FROM tbl&quot;).sql()</span>
+</span><span id="Insert-1703"><a href="#Insert-1703"><span class="linenos">1703</span></a><span class="sd"> &#39;WITH cte AS (SELECT * FROM tbl) INSERT INTO t SELECT x FROM cte&#39;</span>
+</span><span id="Insert-1704"><a href="#Insert-1704"><span class="linenos">1704</span></a>
+</span><span id="Insert-1705"><a href="#Insert-1705"><span class="linenos">1705</span></a><span class="sd"> Args:</span>
+</span><span id="Insert-1706"><a href="#Insert-1706"><span class="linenos">1706</span></a><span class="sd"> alias: the SQL code string to parse as the table name.</span>
+</span><span id="Insert-1707"><a href="#Insert-1707"><span class="linenos">1707</span></a><span class="sd"> If an `Expression` instance is passed, this is used as-is.</span>
+</span><span id="Insert-1708"><a href="#Insert-1708"><span class="linenos">1708</span></a><span class="sd"> as_: the SQL code string to parse as the table expression.</span>
+</span><span id="Insert-1709"><a href="#Insert-1709"><span class="linenos">1709</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Insert-1710"><a href="#Insert-1710"><span class="linenos">1710</span></a><span class="sd"> recursive: set the RECURSIVE part of the expression. Defaults to `False`.</span>
+</span><span id="Insert-1711"><a href="#Insert-1711"><span class="linenos">1711</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Insert-1712"><a href="#Insert-1712"><span class="linenos">1712</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="Insert-1713"><a href="#Insert-1713"><span class="linenos">1713</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Insert-1714"><a href="#Insert-1714"><span class="linenos">1714</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Insert-1715"><a href="#Insert-1715"><span class="linenos">1715</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Insert-1716"><a href="#Insert-1716"><span class="linenos">1716</span></a>
+</span><span id="Insert-1717"><a href="#Insert-1717"><span class="linenos">1717</span></a><span class="sd"> Returns:</span>
+</span><span id="Insert-1718"><a href="#Insert-1718"><span class="linenos">1718</span></a><span class="sd"> The modified expression.</span>
+</span><span id="Insert-1719"><a href="#Insert-1719"><span class="linenos">1719</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Insert-1720"><a href="#Insert-1720"><span class="linenos">1720</span></a> <span class="k">return</span> <span class="n">_apply_cte_builder</span><span class="p">(</span>
+</span><span id="Insert-1721"><a href="#Insert-1721"><span class="linenos">1721</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="p">,</span> <span class="n">as_</span><span class="p">,</span> <span class="n">recursive</span><span class="o">=</span><span class="n">recursive</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="Insert-1722"><a href="#Insert-1722"><span class="linenos">1722</span></a> <span class="p">)</span>
</span></pre></div>
@@ -26731,41 +27896,41 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Insert.with_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Insert.with_-1691"><a href="#Insert.with_-1691"><span class="linenos">1691</span></a> <span class="k">def</span> <span class="nf">with_</span><span class="p">(</span>
-</span><span id="Insert.with_-1692"><a href="#Insert.with_-1692"><span class="linenos">1692</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Insert.with_-1693"><a href="#Insert.with_-1693"><span class="linenos">1693</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="Insert.with_-1694"><a href="#Insert.with_-1694"><span class="linenos">1694</span></a> <span class="n">as_</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="Insert.with_-1695"><a href="#Insert.with_-1695"><span class="linenos">1695</span></a> <span class="n">recursive</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Insert.with_-1696"><a href="#Insert.with_-1696"><span class="linenos">1696</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Insert.with_-1697"><a href="#Insert.with_-1697"><span class="linenos">1697</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Insert.with_-1698"><a href="#Insert.with_-1698"><span class="linenos">1698</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Insert.with_-1699"><a href="#Insert.with_-1699"><span class="linenos">1699</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Insert.with_-1700"><a href="#Insert.with_-1700"><span class="linenos">1700</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Insert</span><span class="p">:</span>
-</span><span id="Insert.with_-1701"><a href="#Insert.with_-1701"><span class="linenos">1701</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Insert.with_-1702"><a href="#Insert.with_-1702"><span class="linenos">1702</span></a><span class="sd"> Append to or set the common table expressions.</span>
-</span><span id="Insert.with_-1703"><a href="#Insert.with_-1703"><span class="linenos">1703</span></a>
-</span><span id="Insert.with_-1704"><a href="#Insert.with_-1704"><span class="linenos">1704</span></a><span class="sd"> Example:</span>
-</span><span id="Insert.with_-1705"><a href="#Insert.with_-1705"><span class="linenos">1705</span></a><span class="sd"> &gt;&gt;&gt; insert(&quot;SELECT x FROM cte&quot;, &quot;t&quot;).with_(&quot;cte&quot;, as_=&quot;SELECT * FROM tbl&quot;).sql()</span>
-</span><span id="Insert.with_-1706"><a href="#Insert.with_-1706"><span class="linenos">1706</span></a><span class="sd"> &#39;WITH cte AS (SELECT * FROM tbl) INSERT INTO t SELECT x FROM cte&#39;</span>
-</span><span id="Insert.with_-1707"><a href="#Insert.with_-1707"><span class="linenos">1707</span></a>
-</span><span id="Insert.with_-1708"><a href="#Insert.with_-1708"><span class="linenos">1708</span></a><span class="sd"> Args:</span>
-</span><span id="Insert.with_-1709"><a href="#Insert.with_-1709"><span class="linenos">1709</span></a><span class="sd"> alias: the SQL code string to parse as the table name.</span>
-</span><span id="Insert.with_-1710"><a href="#Insert.with_-1710"><span class="linenos">1710</span></a><span class="sd"> If an `Expression` instance is passed, this is used as-is.</span>
-</span><span id="Insert.with_-1711"><a href="#Insert.with_-1711"><span class="linenos">1711</span></a><span class="sd"> as_: the SQL code string to parse as the table expression.</span>
-</span><span id="Insert.with_-1712"><a href="#Insert.with_-1712"><span class="linenos">1712</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Insert.with_-1713"><a href="#Insert.with_-1713"><span class="linenos">1713</span></a><span class="sd"> recursive: set the RECURSIVE part of the expression. Defaults to `False`.</span>
-</span><span id="Insert.with_-1714"><a href="#Insert.with_-1714"><span class="linenos">1714</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="Insert.with_-1715"><a href="#Insert.with_-1715"><span class="linenos">1715</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="Insert.with_-1716"><a href="#Insert.with_-1716"><span class="linenos">1716</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="Insert.with_-1717"><a href="#Insert.with_-1717"><span class="linenos">1717</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Insert.with_-1718"><a href="#Insert.with_-1718"><span class="linenos">1718</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Insert.with_-1719"><a href="#Insert.with_-1719"><span class="linenos">1719</span></a>
-</span><span id="Insert.with_-1720"><a href="#Insert.with_-1720"><span class="linenos">1720</span></a><span class="sd"> Returns:</span>
-</span><span id="Insert.with_-1721"><a href="#Insert.with_-1721"><span class="linenos">1721</span></a><span class="sd"> The modified expression.</span>
-</span><span id="Insert.with_-1722"><a href="#Insert.with_-1722"><span class="linenos">1722</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Insert.with_-1723"><a href="#Insert.with_-1723"><span class="linenos">1723</span></a> <span class="k">return</span> <span class="n">_apply_cte_builder</span><span class="p">(</span>
-</span><span id="Insert.with_-1724"><a href="#Insert.with_-1724"><span class="linenos">1724</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="p">,</span> <span class="n">as_</span><span class="p">,</span> <span class="n">recursive</span><span class="o">=</span><span class="n">recursive</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="Insert.with_-1725"><a href="#Insert.with_-1725"><span class="linenos">1725</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Insert.with_-1688"><a href="#Insert.with_-1688"><span class="linenos">1688</span></a> <span class="k">def</span> <span class="nf">with_</span><span class="p">(</span>
+</span><span id="Insert.with_-1689"><a href="#Insert.with_-1689"><span class="linenos">1689</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Insert.with_-1690"><a href="#Insert.with_-1690"><span class="linenos">1690</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="Insert.with_-1691"><a href="#Insert.with_-1691"><span class="linenos">1691</span></a> <span class="n">as_</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="Insert.with_-1692"><a href="#Insert.with_-1692"><span class="linenos">1692</span></a> <span class="n">recursive</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Insert.with_-1693"><a href="#Insert.with_-1693"><span class="linenos">1693</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Insert.with_-1694"><a href="#Insert.with_-1694"><span class="linenos">1694</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Insert.with_-1695"><a href="#Insert.with_-1695"><span class="linenos">1695</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Insert.with_-1696"><a href="#Insert.with_-1696"><span class="linenos">1696</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Insert.with_-1697"><a href="#Insert.with_-1697"><span class="linenos">1697</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Insert</span><span class="p">:</span>
+</span><span id="Insert.with_-1698"><a href="#Insert.with_-1698"><span class="linenos">1698</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Insert.with_-1699"><a href="#Insert.with_-1699"><span class="linenos">1699</span></a><span class="sd"> Append to or set the common table expressions.</span>
+</span><span id="Insert.with_-1700"><a href="#Insert.with_-1700"><span class="linenos">1700</span></a>
+</span><span id="Insert.with_-1701"><a href="#Insert.with_-1701"><span class="linenos">1701</span></a><span class="sd"> Example:</span>
+</span><span id="Insert.with_-1702"><a href="#Insert.with_-1702"><span class="linenos">1702</span></a><span class="sd"> &gt;&gt;&gt; insert(&quot;SELECT x FROM cte&quot;, &quot;t&quot;).with_(&quot;cte&quot;, as_=&quot;SELECT * FROM tbl&quot;).sql()</span>
+</span><span id="Insert.with_-1703"><a href="#Insert.with_-1703"><span class="linenos">1703</span></a><span class="sd"> &#39;WITH cte AS (SELECT * FROM tbl) INSERT INTO t SELECT x FROM cte&#39;</span>
+</span><span id="Insert.with_-1704"><a href="#Insert.with_-1704"><span class="linenos">1704</span></a>
+</span><span id="Insert.with_-1705"><a href="#Insert.with_-1705"><span class="linenos">1705</span></a><span class="sd"> Args:</span>
+</span><span id="Insert.with_-1706"><a href="#Insert.with_-1706"><span class="linenos">1706</span></a><span class="sd"> alias: the SQL code string to parse as the table name.</span>
+</span><span id="Insert.with_-1707"><a href="#Insert.with_-1707"><span class="linenos">1707</span></a><span class="sd"> If an `Expression` instance is passed, this is used as-is.</span>
+</span><span id="Insert.with_-1708"><a href="#Insert.with_-1708"><span class="linenos">1708</span></a><span class="sd"> as_: the SQL code string to parse as the table expression.</span>
+</span><span id="Insert.with_-1709"><a href="#Insert.with_-1709"><span class="linenos">1709</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Insert.with_-1710"><a href="#Insert.with_-1710"><span class="linenos">1710</span></a><span class="sd"> recursive: set the RECURSIVE part of the expression. Defaults to `False`.</span>
+</span><span id="Insert.with_-1711"><a href="#Insert.with_-1711"><span class="linenos">1711</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Insert.with_-1712"><a href="#Insert.with_-1712"><span class="linenos">1712</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="Insert.with_-1713"><a href="#Insert.with_-1713"><span class="linenos">1713</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Insert.with_-1714"><a href="#Insert.with_-1714"><span class="linenos">1714</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Insert.with_-1715"><a href="#Insert.with_-1715"><span class="linenos">1715</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Insert.with_-1716"><a href="#Insert.with_-1716"><span class="linenos">1716</span></a>
+</span><span id="Insert.with_-1717"><a href="#Insert.with_-1717"><span class="linenos">1717</span></a><span class="sd"> Returns:</span>
+</span><span id="Insert.with_-1718"><a href="#Insert.with_-1718"><span class="linenos">1718</span></a><span class="sd"> The modified expression.</span>
+</span><span id="Insert.with_-1719"><a href="#Insert.with_-1719"><span class="linenos">1719</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Insert.with_-1720"><a href="#Insert.with_-1720"><span class="linenos">1720</span></a> <span class="k">return</span> <span class="n">_apply_cte_builder</span><span class="p">(</span>
+</span><span id="Insert.with_-1721"><a href="#Insert.with_-1721"><span class="linenos">1721</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="p">,</span> <span class="n">as_</span><span class="p">,</span> <span class="n">recursive</span><span class="o">=</span><span class="n">recursive</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="Insert.with_-1722"><a href="#Insert.with_-1722"><span class="linenos">1722</span></a> <span class="p">)</span>
</span></pre></div>
@@ -26842,6 +28007,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Insert.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Insert.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Insert.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Insert.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Insert.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Insert.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Insert.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -26862,6 +28028,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Insert.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Insert.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Insert.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Insert.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Insert.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Insert.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Insert.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -26883,6 +28050,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Insert.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Insert.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Insert.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Insert.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#DDL">DDL</a></dt>
@@ -26909,14 +28077,14 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#OnConflict"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="OnConflict-1728"><a href="#OnConflict-1728"><span class="linenos">1728</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-1729"><a href="#OnConflict-1729"><span class="linenos">1729</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="OnConflict-1730"><a href="#OnConflict-1730"><span class="linenos">1730</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-1731"><a href="#OnConflict-1731"><span class="linenos">1731</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-1732"><a href="#OnConflict-1732"><span class="linenos">1732</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-1733"><a href="#OnConflict-1733"><span class="linenos">1733</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-1734"><a href="#OnConflict-1734"><span class="linenos">1734</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-1735"><a href="#OnConflict-1735"><span class="linenos">1735</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="OnConflict-1725"><a href="#OnConflict-1725"><span class="linenos">1725</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-1726"><a href="#OnConflict-1726"><span class="linenos">1726</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="OnConflict-1727"><a href="#OnConflict-1727"><span class="linenos">1727</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-1728"><a href="#OnConflict-1728"><span class="linenos">1728</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-1729"><a href="#OnConflict-1729"><span class="linenos">1729</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-1730"><a href="#OnConflict-1730"><span class="linenos">1730</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-1731"><a href="#OnConflict-1731"><span class="linenos">1731</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-1732"><a href="#OnConflict-1732"><span class="linenos">1732</span></a> <span class="p">}</span>
</span></pre></div>
@@ -26971,6 +28139,7 @@ Otherwise, this resets the expressions.</li>
<dd id="OnConflict.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="OnConflict.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="OnConflict.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="OnConflict.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="OnConflict.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="OnConflict.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="OnConflict.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -26991,6 +28160,7 @@ Otherwise, this resets the expressions.</li>
<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.to_s" class="function"><a href="#Expression.to_s">to_s</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>
@@ -27012,6 +28182,7 @@ Otherwise, this resets the expressions.</li>
<dd id="OnConflict.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="OnConflict.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="OnConflict.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="OnConflict.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -27028,8 +28199,8 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Returning"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Returning-1738"><a href="#Returning-1738"><span class="linenos">1738</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-1739"><a href="#Returning-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;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;into&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Returning-1735"><a href="#Returning-1735"><span class="linenos">1735</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-1736"><a href="#Returning-1736"><span class="linenos">1736</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;into&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -27084,6 +28255,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Returning.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Returning.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Returning.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Returning.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Returning.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Returning.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Returning.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -27104,6 +28276,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Returning.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Returning.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Returning.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Returning.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Returning.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Returning.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Returning.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -27125,6 +28298,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Returning.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Returning.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Returning.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Returning.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -27141,8 +28315,8 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Introducer"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Introducer-1743"><a href="#Introducer-1743"><span class="linenos">1743</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-1744"><a href="#Introducer-1744"><span class="linenos">1744</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><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-1740"><a href="#Introducer-1740"><span class="linenos">1740</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-1741"><a href="#Introducer-1741"><span class="linenos">1741</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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>
@@ -27197,6 +28371,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Introducer.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Introducer.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Introducer.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Introducer.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Introducer.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Introducer.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Introducer.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -27217,6 +28392,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Introducer.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Introducer.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Introducer.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Introducer.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Introducer.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Introducer.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Introducer.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -27238,6 +28414,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Introducer.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Introducer.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Introducer.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Introducer.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -27254,8 +28431,8 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#National"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="National-1748"><a href="#National-1748"><span class="linenos">1748</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-1749"><a href="#National-1749"><span class="linenos">1749</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="National-1745"><a href="#National-1745"><span class="linenos">1745</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-1746"><a href="#National-1746"><span class="linenos">1746</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -27299,6 +28476,7 @@ Otherwise, this resets the expressions.</li>
<dd id="National.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="National.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="National.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="National.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="National.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="National.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="National.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -27319,6 +28497,7 @@ Otherwise, this resets the expressions.</li>
<dd id="National.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="National.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="National.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="National.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="National.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="National.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="National.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -27340,6 +28519,7 @@ Otherwise, this resets the expressions.</li>
<dd id="National.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="National.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="National.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="National.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -27356,16 +28536,16 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#LoadData"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="LoadData-1752"><a href="#LoadData-1752"><span class="linenos">1752</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-1753"><a href="#LoadData-1753"><span class="linenos">1753</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="LoadData-1754"><a href="#LoadData-1754"><span class="linenos">1754</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-1755"><a href="#LoadData-1755"><span class="linenos">1755</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-1756"><a href="#LoadData-1756"><span class="linenos">1756</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-1757"><a href="#LoadData-1757"><span class="linenos">1757</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-1758"><a href="#LoadData-1758"><span class="linenos">1758</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-1759"><a href="#LoadData-1759"><span class="linenos">1759</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-1760"><a href="#LoadData-1760"><span class="linenos">1760</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-1761"><a href="#LoadData-1761"><span class="linenos">1761</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="LoadData-1749"><a href="#LoadData-1749"><span class="linenos">1749</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-1750"><a href="#LoadData-1750"><span class="linenos">1750</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="LoadData-1751"><a href="#LoadData-1751"><span class="linenos">1751</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-1752"><a href="#LoadData-1752"><span class="linenos">1752</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-1753"><a href="#LoadData-1753"><span class="linenos">1753</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-1754"><a href="#LoadData-1754"><span class="linenos">1754</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-1755"><a href="#LoadData-1755"><span class="linenos">1755</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-1756"><a href="#LoadData-1756"><span class="linenos">1756</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-1757"><a href="#LoadData-1757"><span class="linenos">1757</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-1758"><a href="#LoadData-1758"><span class="linenos">1758</span></a> <span class="p">}</span>
</span></pre></div>
@@ -27421,6 +28601,7 @@ Otherwise, this resets the expressions.</li>
<dd id="LoadData.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="LoadData.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="LoadData.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="LoadData.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="LoadData.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="LoadData.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="LoadData.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -27441,6 +28622,7 @@ Otherwise, this resets the expressions.</li>
<dd id="LoadData.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="LoadData.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="LoadData.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="LoadData.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="LoadData.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="LoadData.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="LoadData.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -27462,6 +28644,7 @@ Otherwise, this resets the expressions.</li>
<dd id="LoadData.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="LoadData.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="LoadData.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="LoadData.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -27478,8 +28661,8 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Partition"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Partition-1764"><a href="#Partition-1764"><span class="linenos">1764</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-1765"><a href="#Partition-1765"><span class="linenos">1765</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-1761"><a href="#Partition-1761"><span class="linenos">1761</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-1762"><a href="#Partition-1762"><span class="linenos">1762</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>
@@ -27534,6 +28717,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Partition.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Partition.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Partition.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Partition.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Partition.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Partition.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Partition.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -27554,6 +28738,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Partition.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Partition.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Partition.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Partition.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Partition.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Partition.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Partition.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -27575,6 +28760,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Partition.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Partition.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Partition.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Partition.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -27591,13 +28777,13 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Fetch"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Fetch-1768"><a href="#Fetch-1768"><span class="linenos">1768</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-1769"><a href="#Fetch-1769"><span class="linenos">1769</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Fetch-1770"><a href="#Fetch-1770"><span class="linenos">1770</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-1771"><a href="#Fetch-1771"><span class="linenos">1771</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-1772"><a href="#Fetch-1772"><span class="linenos">1772</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-1773"><a href="#Fetch-1773"><span class="linenos">1773</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-1774"><a href="#Fetch-1774"><span class="linenos">1774</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Fetch-1765"><a href="#Fetch-1765"><span class="linenos">1765</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-1766"><a href="#Fetch-1766"><span class="linenos">1766</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Fetch-1767"><a href="#Fetch-1767"><span class="linenos">1767</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-1768"><a href="#Fetch-1768"><span class="linenos">1768</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-1769"><a href="#Fetch-1769"><span class="linenos">1769</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-1770"><a href="#Fetch-1770"><span class="linenos">1770</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-1771"><a href="#Fetch-1771"><span class="linenos">1771</span></a> <span class="p">}</span>
</span></pre></div>
@@ -27652,6 +28838,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Fetch.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Fetch.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Fetch.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Fetch.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Fetch.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Fetch.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Fetch.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -27672,6 +28859,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Fetch.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Fetch.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Fetch.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Fetch.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Fetch.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Fetch.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Fetch.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -27693,6 +28881,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Fetch.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Fetch.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Fetch.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Fetch.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -27709,15 +28898,15 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Group"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Group-1777"><a href="#Group-1777"><span class="linenos">1777</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-1778"><a href="#Group-1778"><span class="linenos">1778</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Group-1779"><a href="#Group-1779"><span class="linenos">1779</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-1780"><a href="#Group-1780"><span class="linenos">1780</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-1781"><a href="#Group-1781"><span class="linenos">1781</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-1782"><a href="#Group-1782"><span class="linenos">1782</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-1783"><a href="#Group-1783"><span class="linenos">1783</span></a> <span class="s2">&quot;totals&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Group-1784"><a href="#Group-1784"><span class="linenos">1784</span></a> <span class="s2">&quot;all&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Group-1785"><a href="#Group-1785"><span class="linenos">1785</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Group-1774"><a href="#Group-1774"><span class="linenos">1774</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-1775"><a href="#Group-1775"><span class="linenos">1775</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Group-1776"><a href="#Group-1776"><span class="linenos">1776</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-1777"><a href="#Group-1777"><span class="linenos">1777</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-1778"><a href="#Group-1778"><span class="linenos">1778</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-1779"><a href="#Group-1779"><span class="linenos">1779</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-1780"><a href="#Group-1780"><span class="linenos">1780</span></a> <span class="s2">&quot;totals&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Group-1781"><a href="#Group-1781"><span class="linenos">1781</span></a> <span class="s2">&quot;all&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Group-1782"><a href="#Group-1782"><span class="linenos">1782</span></a> <span class="p">}</span>
</span></pre></div>
@@ -27773,6 +28962,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Group.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Group.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Group.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Group.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Group.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Group.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Group.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -27793,6 +28983,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Group.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Group.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Group.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Group.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Group.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Group.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Group.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -27814,6 +29005,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Group.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Group.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Group.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Group.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -27830,8 +29022,8 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Lambda"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Lambda-1788"><a href="#Lambda-1788"><span class="linenos">1788</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-1789"><a href="#Lambda-1789"><span class="linenos">1789</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1785"><a href="#Lambda-1785"><span class="linenos">1785</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-1786"><a href="#Lambda-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;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>
@@ -27886,6 +29078,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Lambda.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Lambda.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Lambda.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Lambda.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Lambda.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Lambda.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Lambda.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -27906,6 +29099,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Lambda.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Lambda.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Lambda.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Lambda.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Lambda.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Lambda.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Lambda.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -27927,6 +29121,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Lambda.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Lambda.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Lambda.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Lambda.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -27943,8 +29138,8 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Limit"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Limit-1792"><a href="#Limit-1792"><span class="linenos">1792</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-1793"><a href="#Limit-1793"><span class="linenos">1793</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;offset&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Limit-1789"><a href="#Limit-1789"><span class="linenos">1789</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-1790"><a href="#Limit-1790"><span class="linenos">1790</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;offset&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -27999,6 +29194,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Limit.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Limit.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Limit.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Limit.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Limit.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Limit.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Limit.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -28019,6 +29215,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Limit.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Limit.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Limit.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Limit.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Limit.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Limit.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Limit.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -28040,6 +29237,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Limit.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Limit.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Limit.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Limit.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -28056,24 +29254,24 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Literal"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Literal-1796"><a href="#Literal-1796"><span class="linenos">1796</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-1797"><a href="#Literal-1797"><span class="linenos">1797</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1798"><a href="#Literal-1798"><span class="linenos">1798</span></a>
-</span><span id="Literal-1799"><a href="#Literal-1799"><span class="linenos">1799</span></a> <span class="nd">@property</span>
-</span><span id="Literal-1800"><a href="#Literal-1800"><span class="linenos">1800</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-1801"><a href="#Literal-1801"><span class="linenos">1801</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-1802"><a href="#Literal-1802"><span class="linenos">1802</span></a>
-</span><span id="Literal-1803"><a href="#Literal-1803"><span class="linenos">1803</span></a> <span class="nd">@classmethod</span>
-</span><span id="Literal-1804"><a href="#Literal-1804"><span class="linenos">1804</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-1805"><a href="#Literal-1805"><span class="linenos">1805</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-1806"><a href="#Literal-1806"><span class="linenos">1806</span></a>
-</span><span id="Literal-1807"><a href="#Literal-1807"><span class="linenos">1807</span></a> <span class="nd">@classmethod</span>
-</span><span id="Literal-1808"><a href="#Literal-1808"><span class="linenos">1808</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-1809"><a href="#Literal-1809"><span class="linenos">1809</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-1810"><a href="#Literal-1810"><span class="linenos">1810</span></a>
-</span><span id="Literal-1811"><a href="#Literal-1811"><span class="linenos">1811</span></a> <span class="nd">@property</span>
-</span><span id="Literal-1812"><a href="#Literal-1812"><span class="linenos">1812</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Literal-1813"><a href="#Literal-1813"><span class="linenos">1813</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-1793"><a href="#Literal-1793"><span class="linenos">1793</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-1794"><a href="#Literal-1794"><span class="linenos">1794</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1795"><a href="#Literal-1795"><span class="linenos">1795</span></a>
+</span><span id="Literal-1796"><a href="#Literal-1796"><span class="linenos">1796</span></a> <span class="nd">@property</span>
+</span><span id="Literal-1797"><a href="#Literal-1797"><span class="linenos">1797</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-1798"><a href="#Literal-1798"><span class="linenos">1798</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-1799"><a href="#Literal-1799"><span class="linenos">1799</span></a>
+</span><span id="Literal-1800"><a href="#Literal-1800"><span class="linenos">1800</span></a> <span class="nd">@classmethod</span>
+</span><span id="Literal-1801"><a href="#Literal-1801"><span class="linenos">1801</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-1802"><a href="#Literal-1802"><span class="linenos">1802</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-1803"><a href="#Literal-1803"><span class="linenos">1803</span></a>
+</span><span id="Literal-1804"><a href="#Literal-1804"><span class="linenos">1804</span></a> <span class="nd">@classmethod</span>
+</span><span id="Literal-1805"><a href="#Literal-1805"><span class="linenos">1805</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-1806"><a href="#Literal-1806"><span class="linenos">1806</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-1807"><a href="#Literal-1807"><span class="linenos">1807</span></a>
+</span><span id="Literal-1808"><a href="#Literal-1808"><span class="linenos">1808</span></a> <span class="nd">@property</span>
+</span><span id="Literal-1809"><a href="#Literal-1809"><span class="linenos">1809</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Literal-1810"><a href="#Literal-1810"><span class="linenos">1810</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
</span></pre></div>
@@ -28092,13 +29290,20 @@ Otherwise, this resets the expressions.</li>
</div>
<div id="Literal.hashable_args" class="classattr">
- <div class="attr variable">
+ <input id="Literal.hashable_args-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">hashable_args</span><span class="annotation">: Any</span>
-
+ <label class="view-source-button" for="Literal.hashable_args-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Literal.hashable_args"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Literal.hashable_args-1796"><a href="#Literal.hashable_args-1796"><span class="linenos">1796</span></a> <span class="nd">@property</span>
+</span><span id="Literal.hashable_args-1797"><a href="#Literal.hashable_args-1797"><span class="linenos">1797</span></a> <span class="k">def</span> <span class="nf">hashable_args</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">:</span>
+</span><span id="Literal.hashable_args-1798"><a href="#Literal.hashable_args-1798"><span class="linenos">1798</span></a> <span class="k">return</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;is_string&quot;</span><span class="p">))</span>
+</span></pre></div>
+
+
</div>
@@ -28114,9 +29319,9 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Literal.number"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Literal.number-1803"><a href="#Literal.number-1803"><span class="linenos">1803</span></a> <span class="nd">@classmethod</span>
-</span><span id="Literal.number-1804"><a href="#Literal.number-1804"><span class="linenos">1804</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-1805"><a href="#Literal.number-1805"><span class="linenos">1805</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-1800"><a href="#Literal.number-1800"><span class="linenos">1800</span></a> <span class="nd">@classmethod</span>
+</span><span id="Literal.number-1801"><a href="#Literal.number-1801"><span class="linenos">1801</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-1802"><a href="#Literal.number-1802"><span class="linenos">1802</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>
@@ -28135,9 +29340,9 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Literal.string"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Literal.string-1807"><a href="#Literal.string-1807"><span class="linenos">1807</span></a> <span class="nd">@classmethod</span>
-</span><span id="Literal.string-1808"><a href="#Literal.string-1808"><span class="linenos">1808</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-1809"><a href="#Literal.string-1809"><span class="linenos">1809</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-1804"><a href="#Literal.string-1804"><span class="linenos">1804</span></a> <span class="nd">@classmethod</span>
+</span><span id="Literal.string-1805"><a href="#Literal.string-1805"><span class="linenos">1805</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-1806"><a href="#Literal.string-1806"><span class="linenos">1806</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>
@@ -28145,13 +29350,20 @@ Otherwise, this resets the expressions.</li>
</div>
<div id="Literal.output_name" class="classattr">
- <div class="attr variable">
+ <input id="Literal.output_name-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">output_name</span><span class="annotation">: str</span>
-
+ <label class="view-source-button" for="Literal.output_name-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Literal.output_name"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Literal.output_name-1808"><a href="#Literal.output_name-1808"><span class="linenos">1808</span></a> <span class="nd">@property</span>
+</span><span id="Literal.output_name-1809"><a href="#Literal.output_name-1809"><span class="linenos">1809</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Literal.output_name-1810"><a href="#Literal.output_name-1810"><span class="linenos">1810</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
+</span></pre></div>
+
+
<div class="docstring"><p>Name of the output column if this expression is a selection.</p>
<p>If the Expression has no output name, an empty string is returned.</p>
@@ -28209,6 +29421,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Literal.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Literal.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Literal.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Literal.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Literal.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Literal.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Literal.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -28229,6 +29442,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Literal.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Literal.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Literal.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Literal.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Literal.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Literal.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Literal.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -28250,6 +29464,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Literal.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Literal.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Literal.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Literal.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -28266,124 +29481,124 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Join"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Join-1816"><a href="#Join-1816"><span class="linenos">1816</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-1817"><a href="#Join-1817"><span class="linenos">1817</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Join-1818"><a href="#Join-1818"><span class="linenos">1818</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-1819"><a href="#Join-1819"><span class="linenos">1819</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-1820"><a href="#Join-1820"><span class="linenos">1820</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-1821"><a href="#Join-1821"><span class="linenos">1821</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-1822"><a href="#Join-1822"><span class="linenos">1822</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-1823"><a href="#Join-1823"><span class="linenos">1823</span></a> <span class="s2">&quot;method&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Join-1824"><a href="#Join-1824"><span class="linenos">1824</span></a> <span class="s2">&quot;global&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Join-1825"><a href="#Join-1825"><span class="linenos">1825</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-1826"><a href="#Join-1826"><span class="linenos">1826</span></a> <span class="p">}</span>
-</span><span id="Join-1827"><a href="#Join-1827"><span class="linenos">1827</span></a>
-</span><span id="Join-1828"><a href="#Join-1828"><span class="linenos">1828</span></a> <span class="nd">@property</span>
-</span><span id="Join-1829"><a href="#Join-1829"><span class="linenos">1829</span></a> <span class="k">def</span> <span class="nf">method</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Join-1830"><a href="#Join-1830"><span class="linenos">1830</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;method&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
-</span><span id="Join-1831"><a href="#Join-1831"><span class="linenos">1831</span></a>
-</span><span id="Join-1832"><a href="#Join-1832"><span class="linenos">1832</span></a> <span class="nd">@property</span>
-</span><span id="Join-1833"><a href="#Join-1833"><span class="linenos">1833</span></a> <span class="k">def</span> <span class="nf">kind</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Join-1834"><a href="#Join-1834"><span class="linenos">1834</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-1835"><a href="#Join-1835"><span class="linenos">1835</span></a>
-</span><span id="Join-1836"><a href="#Join-1836"><span class="linenos">1836</span></a> <span class="nd">@property</span>
-</span><span id="Join-1837"><a href="#Join-1837"><span class="linenos">1837</span></a> <span class="k">def</span> <span class="nf">side</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Join-1838"><a href="#Join-1838"><span class="linenos">1838</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-1839"><a href="#Join-1839"><span class="linenos">1839</span></a>
-</span><span id="Join-1840"><a href="#Join-1840"><span class="linenos">1840</span></a> <span class="nd">@property</span>
-</span><span id="Join-1841"><a href="#Join-1841"><span class="linenos">1841</span></a> <span class="k">def</span> <span class="nf">hint</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Join-1842"><a href="#Join-1842"><span class="linenos">1842</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-1843"><a href="#Join-1843"><span class="linenos">1843</span></a>
-</span><span id="Join-1844"><a href="#Join-1844"><span class="linenos">1844</span></a> <span class="nd">@property</span>
-</span><span id="Join-1845"><a href="#Join-1845"><span class="linenos">1845</span></a> <span class="k">def</span> <span class="nf">alias_or_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Join-1846"><a href="#Join-1846"><span class="linenos">1846</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-1847"><a href="#Join-1847"><span class="linenos">1847</span></a>
-</span><span id="Join-1848"><a href="#Join-1848"><span class="linenos">1848</span></a> <span class="k">def</span> <span class="nf">on</span><span class="p">(</span>
-</span><span id="Join-1849"><a href="#Join-1849"><span class="linenos">1849</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Join-1850"><a href="#Join-1850"><span class="linenos">1850</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Join-1851"><a href="#Join-1851"><span class="linenos">1851</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Join-1852"><a href="#Join-1852"><span class="linenos">1852</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Join-1853"><a href="#Join-1853"><span class="linenos">1853</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Join-1854"><a href="#Join-1854"><span class="linenos">1854</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Join-1855"><a href="#Join-1855"><span class="linenos">1855</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Join</span><span class="p">:</span>
-</span><span id="Join-1856"><a href="#Join-1856"><span class="linenos">1856</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Join-1857"><a href="#Join-1857"><span class="linenos">1857</span></a><span class="sd"> Append to or set the ON expressions.</span>
-</span><span id="Join-1858"><a href="#Join-1858"><span class="linenos">1858</span></a>
-</span><span id="Join-1859"><a href="#Join-1859"><span class="linenos">1859</span></a><span class="sd"> Example:</span>
-</span><span id="Join-1860"><a href="#Join-1860"><span class="linenos">1860</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="Join-1861"><a href="#Join-1861"><span class="linenos">1861</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-1862"><a href="#Join-1862"><span class="linenos">1862</span></a><span class="sd"> &#39;JOIN x ON y = 1&#39;</span>
-</span><span id="Join-1863"><a href="#Join-1863"><span class="linenos">1863</span></a>
-</span><span id="Join-1864"><a href="#Join-1864"><span class="linenos">1864</span></a><span class="sd"> Args:</span>
-</span><span id="Join-1865"><a href="#Join-1865"><span class="linenos">1865</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Join-1866"><a href="#Join-1866"><span class="linenos">1866</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Join-1867"><a href="#Join-1867"><span class="linenos">1867</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
-</span><span id="Join-1868"><a href="#Join-1868"><span class="linenos">1868</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
-</span><span id="Join-1869"><a href="#Join-1869"><span class="linenos">1869</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="Join-1870"><a href="#Join-1870"><span class="linenos">1870</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="Join-1871"><a href="#Join-1871"><span class="linenos">1871</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Join-1872"><a href="#Join-1872"><span class="linenos">1872</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Join-1873"><a href="#Join-1873"><span class="linenos">1873</span></a>
-</span><span id="Join-1874"><a href="#Join-1874"><span class="linenos">1874</span></a><span class="sd"> Returns:</span>
-</span><span id="Join-1875"><a href="#Join-1875"><span class="linenos">1875</span></a><span class="sd"> The modified Join expression.</span>
-</span><span id="Join-1876"><a href="#Join-1876"><span class="linenos">1876</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Join-1877"><a href="#Join-1877"><span class="linenos">1877</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-1878"><a href="#Join-1878"><span class="linenos">1878</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Join-1879"><a href="#Join-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="Join-1880"><a href="#Join-1880"><span class="linenos">1880</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-1881"><a href="#Join-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="Join-1882"><a href="#Join-1882"><span class="linenos">1882</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Join-1883"><a href="#Join-1883"><span class="linenos">1883</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Join-1884"><a href="#Join-1884"><span class="linenos">1884</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Join-1885"><a href="#Join-1885"><span class="linenos">1885</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Join-1813"><a href="#Join-1813"><span class="linenos">1813</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-1814"><a href="#Join-1814"><span class="linenos">1814</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Join-1815"><a href="#Join-1815"><span class="linenos">1815</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-1816"><a href="#Join-1816"><span class="linenos">1816</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-1817"><a href="#Join-1817"><span class="linenos">1817</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-1818"><a href="#Join-1818"><span class="linenos">1818</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-1819"><a href="#Join-1819"><span class="linenos">1819</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-1820"><a href="#Join-1820"><span class="linenos">1820</span></a> <span class="s2">&quot;method&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Join-1821"><a href="#Join-1821"><span class="linenos">1821</span></a> <span class="s2">&quot;global&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Join-1822"><a href="#Join-1822"><span class="linenos">1822</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-1823"><a href="#Join-1823"><span class="linenos">1823</span></a> <span class="p">}</span>
+</span><span id="Join-1824"><a href="#Join-1824"><span class="linenos">1824</span></a>
+</span><span id="Join-1825"><a href="#Join-1825"><span class="linenos">1825</span></a> <span class="nd">@property</span>
+</span><span id="Join-1826"><a href="#Join-1826"><span class="linenos">1826</span></a> <span class="k">def</span> <span class="nf">method</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Join-1827"><a href="#Join-1827"><span class="linenos">1827</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;method&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
+</span><span id="Join-1828"><a href="#Join-1828"><span class="linenos">1828</span></a>
+</span><span id="Join-1829"><a href="#Join-1829"><span class="linenos">1829</span></a> <span class="nd">@property</span>
+</span><span id="Join-1830"><a href="#Join-1830"><span class="linenos">1830</span></a> <span class="k">def</span> <span class="nf">kind</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Join-1831"><a href="#Join-1831"><span class="linenos">1831</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-1832"><a href="#Join-1832"><span class="linenos">1832</span></a>
+</span><span id="Join-1833"><a href="#Join-1833"><span class="linenos">1833</span></a> <span class="nd">@property</span>
+</span><span id="Join-1834"><a href="#Join-1834"><span class="linenos">1834</span></a> <span class="k">def</span> <span class="nf">side</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Join-1835"><a href="#Join-1835"><span class="linenos">1835</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-1836"><a href="#Join-1836"><span class="linenos">1836</span></a>
+</span><span id="Join-1837"><a href="#Join-1837"><span class="linenos">1837</span></a> <span class="nd">@property</span>
+</span><span id="Join-1838"><a href="#Join-1838"><span class="linenos">1838</span></a> <span class="k">def</span> <span class="nf">hint</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Join-1839"><a href="#Join-1839"><span class="linenos">1839</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-1840"><a href="#Join-1840"><span class="linenos">1840</span></a>
+</span><span id="Join-1841"><a href="#Join-1841"><span class="linenos">1841</span></a> <span class="nd">@property</span>
+</span><span id="Join-1842"><a href="#Join-1842"><span class="linenos">1842</span></a> <span class="k">def</span> <span class="nf">alias_or_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Join-1843"><a href="#Join-1843"><span class="linenos">1843</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-1844"><a href="#Join-1844"><span class="linenos">1844</span></a>
+</span><span id="Join-1845"><a href="#Join-1845"><span class="linenos">1845</span></a> <span class="k">def</span> <span class="nf">on</span><span class="p">(</span>
+</span><span id="Join-1846"><a href="#Join-1846"><span class="linenos">1846</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Join-1847"><a href="#Join-1847"><span class="linenos">1847</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Join-1848"><a href="#Join-1848"><span class="linenos">1848</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Join-1849"><a href="#Join-1849"><span class="linenos">1849</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Join-1850"><a href="#Join-1850"><span class="linenos">1850</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Join-1851"><a href="#Join-1851"><span class="linenos">1851</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Join-1852"><a href="#Join-1852"><span class="linenos">1852</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Join</span><span class="p">:</span>
+</span><span id="Join-1853"><a href="#Join-1853"><span class="linenos">1853</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Join-1854"><a href="#Join-1854"><span class="linenos">1854</span></a><span class="sd"> Append to or set the ON expressions.</span>
+</span><span id="Join-1855"><a href="#Join-1855"><span class="linenos">1855</span></a>
+</span><span id="Join-1856"><a href="#Join-1856"><span class="linenos">1856</span></a><span class="sd"> Example:</span>
+</span><span id="Join-1857"><a href="#Join-1857"><span class="linenos">1857</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="Join-1858"><a href="#Join-1858"><span class="linenos">1858</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-1859"><a href="#Join-1859"><span class="linenos">1859</span></a><span class="sd"> &#39;JOIN x ON y = 1&#39;</span>
+</span><span id="Join-1860"><a href="#Join-1860"><span class="linenos">1860</span></a>
+</span><span id="Join-1861"><a href="#Join-1861"><span class="linenos">1861</span></a><span class="sd"> Args:</span>
+</span><span id="Join-1862"><a href="#Join-1862"><span class="linenos">1862</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Join-1863"><a href="#Join-1863"><span class="linenos">1863</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Join-1864"><a href="#Join-1864"><span class="linenos">1864</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
+</span><span id="Join-1865"><a href="#Join-1865"><span class="linenos">1865</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
+</span><span id="Join-1866"><a href="#Join-1866"><span class="linenos">1866</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="Join-1867"><a href="#Join-1867"><span class="linenos">1867</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Join-1868"><a href="#Join-1868"><span class="linenos">1868</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Join-1869"><a href="#Join-1869"><span class="linenos">1869</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Join-1870"><a href="#Join-1870"><span class="linenos">1870</span></a>
+</span><span id="Join-1871"><a href="#Join-1871"><span class="linenos">1871</span></a><span class="sd"> Returns:</span>
+</span><span id="Join-1872"><a href="#Join-1872"><span class="linenos">1872</span></a><span class="sd"> The modified Join expression.</span>
+</span><span id="Join-1873"><a href="#Join-1873"><span class="linenos">1873</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Join-1874"><a href="#Join-1874"><span class="linenos">1874</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-1875"><a href="#Join-1875"><span class="linenos">1875</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Join-1876"><a href="#Join-1876"><span class="linenos">1876</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Join-1877"><a href="#Join-1877"><span class="linenos">1877</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-1878"><a href="#Join-1878"><span class="linenos">1878</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Join-1879"><a href="#Join-1879"><span class="linenos">1879</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Join-1880"><a href="#Join-1880"><span class="linenos">1880</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Join-1881"><a href="#Join-1881"><span class="linenos">1881</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Join-1882"><a href="#Join-1882"><span class="linenos">1882</span></a> <span class="p">)</span>
+</span><span id="Join-1883"><a href="#Join-1883"><span class="linenos">1883</span></a>
+</span><span id="Join-1884"><a href="#Join-1884"><span class="linenos">1884</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-1885"><a href="#Join-1885"><span class="linenos">1885</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-1886"><a href="#Join-1886"><span class="linenos">1886</span></a>
-</span><span id="Join-1887"><a href="#Join-1887"><span class="linenos">1887</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-1888"><a href="#Join-1888"><span class="linenos">1888</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-1889"><a href="#Join-1889"><span class="linenos">1889</span></a>
-</span><span id="Join-1890"><a href="#Join-1890"><span class="linenos">1890</span></a> <span class="k">return</span> <span class="n">join</span>
-</span><span id="Join-1891"><a href="#Join-1891"><span class="linenos">1891</span></a>
-</span><span id="Join-1892"><a href="#Join-1892"><span class="linenos">1892</span></a> <span class="k">def</span> <span class="nf">using</span><span class="p">(</span>
-</span><span id="Join-1893"><a href="#Join-1893"><span class="linenos">1893</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Join-1894"><a href="#Join-1894"><span class="linenos">1894</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Join-1895"><a href="#Join-1895"><span class="linenos">1895</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Join-1896"><a href="#Join-1896"><span class="linenos">1896</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Join-1897"><a href="#Join-1897"><span class="linenos">1897</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Join-1898"><a href="#Join-1898"><span class="linenos">1898</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Join-1899"><a href="#Join-1899"><span class="linenos">1899</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Join</span><span class="p">:</span>
-</span><span id="Join-1900"><a href="#Join-1900"><span class="linenos">1900</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Join-1901"><a href="#Join-1901"><span class="linenos">1901</span></a><span class="sd"> Append to or set the USING expressions.</span>
-</span><span id="Join-1902"><a href="#Join-1902"><span class="linenos">1902</span></a>
-</span><span id="Join-1903"><a href="#Join-1903"><span class="linenos">1903</span></a><span class="sd"> Example:</span>
-</span><span id="Join-1904"><a href="#Join-1904"><span class="linenos">1904</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="Join-1905"><a href="#Join-1905"><span class="linenos">1905</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-1906"><a href="#Join-1906"><span class="linenos">1906</span></a><span class="sd"> &#39;JOIN x USING (foo, bla)&#39;</span>
-</span><span id="Join-1907"><a href="#Join-1907"><span class="linenos">1907</span></a>
-</span><span id="Join-1908"><a href="#Join-1908"><span class="linenos">1908</span></a><span class="sd"> Args:</span>
-</span><span id="Join-1909"><a href="#Join-1909"><span class="linenos">1909</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Join-1910"><a href="#Join-1910"><span class="linenos">1910</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Join-1911"><a href="#Join-1911"><span class="linenos">1911</span></a><span class="sd"> append: if `True`, concatenate the new expressions to the existing &quot;using&quot; list.</span>
-</span><span id="Join-1912"><a href="#Join-1912"><span class="linenos">1912</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="Join-1913"><a href="#Join-1913"><span class="linenos">1913</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="Join-1914"><a href="#Join-1914"><span class="linenos">1914</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Join-1915"><a href="#Join-1915"><span class="linenos">1915</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Join-1916"><a href="#Join-1916"><span class="linenos">1916</span></a>
-</span><span id="Join-1917"><a href="#Join-1917"><span class="linenos">1917</span></a><span class="sd"> Returns:</span>
-</span><span id="Join-1918"><a href="#Join-1918"><span class="linenos">1918</span></a><span class="sd"> The modified Join expression.</span>
-</span><span id="Join-1919"><a href="#Join-1919"><span class="linenos">1919</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Join-1920"><a href="#Join-1920"><span class="linenos">1920</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-1921"><a href="#Join-1921"><span class="linenos">1921</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Join-1922"><a href="#Join-1922"><span class="linenos">1922</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Join-1923"><a href="#Join-1923"><span class="linenos">1923</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-1924"><a href="#Join-1924"><span class="linenos">1924</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Join-1925"><a href="#Join-1925"><span class="linenos">1925</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Join-1926"><a href="#Join-1926"><span class="linenos">1926</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Join-1927"><a href="#Join-1927"><span class="linenos">1927</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Join-1928"><a href="#Join-1928"><span class="linenos">1928</span></a> <span class="p">)</span>
+</span><span id="Join-1887"><a href="#Join-1887"><span class="linenos">1887</span></a> <span class="k">return</span> <span class="n">join</span>
+</span><span id="Join-1888"><a href="#Join-1888"><span class="linenos">1888</span></a>
+</span><span id="Join-1889"><a href="#Join-1889"><span class="linenos">1889</span></a> <span class="k">def</span> <span class="nf">using</span><span class="p">(</span>
+</span><span id="Join-1890"><a href="#Join-1890"><span class="linenos">1890</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Join-1891"><a href="#Join-1891"><span class="linenos">1891</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Join-1892"><a href="#Join-1892"><span class="linenos">1892</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Join-1893"><a href="#Join-1893"><span class="linenos">1893</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Join-1894"><a href="#Join-1894"><span class="linenos">1894</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Join-1895"><a href="#Join-1895"><span class="linenos">1895</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Join-1896"><a href="#Join-1896"><span class="linenos">1896</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Join</span><span class="p">:</span>
+</span><span id="Join-1897"><a href="#Join-1897"><span class="linenos">1897</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Join-1898"><a href="#Join-1898"><span class="linenos">1898</span></a><span class="sd"> Append to or set the USING expressions.</span>
+</span><span id="Join-1899"><a href="#Join-1899"><span class="linenos">1899</span></a>
+</span><span id="Join-1900"><a href="#Join-1900"><span class="linenos">1900</span></a><span class="sd"> Example:</span>
+</span><span id="Join-1901"><a href="#Join-1901"><span class="linenos">1901</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="Join-1902"><a href="#Join-1902"><span class="linenos">1902</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-1903"><a href="#Join-1903"><span class="linenos">1903</span></a><span class="sd"> &#39;JOIN x USING (foo, bla)&#39;</span>
+</span><span id="Join-1904"><a href="#Join-1904"><span class="linenos">1904</span></a>
+</span><span id="Join-1905"><a href="#Join-1905"><span class="linenos">1905</span></a><span class="sd"> Args:</span>
+</span><span id="Join-1906"><a href="#Join-1906"><span class="linenos">1906</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Join-1907"><a href="#Join-1907"><span class="linenos">1907</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Join-1908"><a href="#Join-1908"><span class="linenos">1908</span></a><span class="sd"> append: if `True`, concatenate the new expressions to the existing &quot;using&quot; list.</span>
+</span><span id="Join-1909"><a href="#Join-1909"><span class="linenos">1909</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="Join-1910"><a href="#Join-1910"><span class="linenos">1910</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Join-1911"><a href="#Join-1911"><span class="linenos">1911</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Join-1912"><a href="#Join-1912"><span class="linenos">1912</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Join-1913"><a href="#Join-1913"><span class="linenos">1913</span></a>
+</span><span id="Join-1914"><a href="#Join-1914"><span class="linenos">1914</span></a><span class="sd"> Returns:</span>
+</span><span id="Join-1915"><a href="#Join-1915"><span class="linenos">1915</span></a><span class="sd"> The modified Join expression.</span>
+</span><span id="Join-1916"><a href="#Join-1916"><span class="linenos">1916</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Join-1917"><a href="#Join-1917"><span class="linenos">1917</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-1918"><a href="#Join-1918"><span class="linenos">1918</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Join-1919"><a href="#Join-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="Join-1920"><a href="#Join-1920"><span class="linenos">1920</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-1921"><a href="#Join-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="Join-1922"><a href="#Join-1922"><span class="linenos">1922</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Join-1923"><a href="#Join-1923"><span class="linenos">1923</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Join-1924"><a href="#Join-1924"><span class="linenos">1924</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Join-1925"><a href="#Join-1925"><span class="linenos">1925</span></a> <span class="p">)</span>
+</span><span id="Join-1926"><a href="#Join-1926"><span class="linenos">1926</span></a>
+</span><span id="Join-1927"><a href="#Join-1927"><span class="linenos">1927</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-1928"><a href="#Join-1928"><span class="linenos">1928</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-1929"><a href="#Join-1929"><span class="linenos">1929</span></a>
-</span><span id="Join-1930"><a href="#Join-1930"><span class="linenos">1930</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-1931"><a href="#Join-1931"><span class="linenos">1931</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-1932"><a href="#Join-1932"><span class="linenos">1932</span></a>
-</span><span id="Join-1933"><a href="#Join-1933"><span class="linenos">1933</span></a> <span class="k">return</span> <span class="n">join</span>
+</span><span id="Join-1930"><a href="#Join-1930"><span class="linenos">1930</span></a> <span class="k">return</span> <span class="n">join</span>
</span></pre></div>
@@ -28403,57 +29618,92 @@ Otherwise, this resets the expressions.</li>
</div>
<div id="Join.method" class="classattr">
- <div class="attr variable">
+ <input id="Join.method-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">method</span><span class="annotation">: str</span>
-
+ <label class="view-source-button" for="Join.method-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Join.method"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Join.method-1825"><a href="#Join.method-1825"><span class="linenos">1825</span></a> <span class="nd">@property</span>
+</span><span id="Join.method-1826"><a href="#Join.method-1826"><span class="linenos">1826</span></a> <span class="k">def</span> <span class="nf">method</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Join.method-1827"><a href="#Join.method-1827"><span class="linenos">1827</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;method&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
+</span></pre></div>
+
+
</div>
<div id="Join.kind" class="classattr">
- <div class="attr variable">
+ <input id="Join.kind-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">kind</span><span class="annotation">: str</span>
-
+ <label class="view-source-button" for="Join.kind-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Join.kind"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Join.kind-1829"><a href="#Join.kind-1829"><span class="linenos">1829</span></a> <span class="nd">@property</span>
+</span><span id="Join.kind-1830"><a href="#Join.kind-1830"><span class="linenos">1830</span></a> <span class="k">def</span> <span class="nf">kind</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Join.kind-1831"><a href="#Join.kind-1831"><span class="linenos">1831</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;kind&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
+</span></pre></div>
+
+
</div>
<div id="Join.side" class="classattr">
- <div class="attr variable">
+ <input id="Join.side-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">side</span><span class="annotation">: str</span>
-
+ <label class="view-source-button" for="Join.side-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Join.side"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Join.side-1833"><a href="#Join.side-1833"><span class="linenos">1833</span></a> <span class="nd">@property</span>
+</span><span id="Join.side-1834"><a href="#Join.side-1834"><span class="linenos">1834</span></a> <span class="k">def</span> <span class="nf">side</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Join.side-1835"><a href="#Join.side-1835"><span class="linenos">1835</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;side&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
+</span></pre></div>
+
+
</div>
<div id="Join.hint" class="classattr">
- <div class="attr variable">
+ <input id="Join.hint-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">hint</span><span class="annotation">: str</span>
-
+ <label class="view-source-button" for="Join.hint-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Join.hint"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Join.hint-1837"><a href="#Join.hint-1837"><span class="linenos">1837</span></a> <span class="nd">@property</span>
+</span><span id="Join.hint-1838"><a href="#Join.hint-1838"><span class="linenos">1838</span></a> <span class="k">def</span> <span class="nf">hint</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Join.hint-1839"><a href="#Join.hint-1839"><span class="linenos">1839</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;hint&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
+</span></pre></div>
+
+
</div>
<div id="Join.alias_or_name" class="classattr">
- <div class="attr variable">
+ <input id="Join.alias_or_name-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">alias_or_name</span><span class="annotation">: str</span>
-
+ <label class="view-source-button" for="Join.alias_or_name-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Join.alias_or_name"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Join.alias_or_name-1841"><a href="#Join.alias_or_name-1841"><span class="linenos">1841</span></a> <span class="nd">@property</span>
+</span><span id="Join.alias_or_name-1842"><a href="#Join.alias_or_name-1842"><span class="linenos">1842</span></a> <span class="k">def</span> <span class="nf">alias_or_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Join.alias_or_name-1843"><a href="#Join.alias_or_name-1843"><span class="linenos">1843</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">alias_or_name</span>
+</span></pre></div>
+
+
</div>
@@ -28468,49 +29718,49 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Join.on"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Join.on-1848"><a href="#Join.on-1848"><span class="linenos">1848</span></a> <span class="k">def</span> <span class="nf">on</span><span class="p">(</span>
-</span><span id="Join.on-1849"><a href="#Join.on-1849"><span class="linenos">1849</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Join.on-1850"><a href="#Join.on-1850"><span class="linenos">1850</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Join.on-1851"><a href="#Join.on-1851"><span class="linenos">1851</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Join.on-1852"><a href="#Join.on-1852"><span class="linenos">1852</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Join.on-1853"><a href="#Join.on-1853"><span class="linenos">1853</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Join.on-1854"><a href="#Join.on-1854"><span class="linenos">1854</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Join.on-1855"><a href="#Join.on-1855"><span class="linenos">1855</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Join</span><span class="p">:</span>
-</span><span id="Join.on-1856"><a href="#Join.on-1856"><span class="linenos">1856</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Join.on-1857"><a href="#Join.on-1857"><span class="linenos">1857</span></a><span class="sd"> Append to or set the ON expressions.</span>
-</span><span id="Join.on-1858"><a href="#Join.on-1858"><span class="linenos">1858</span></a>
-</span><span id="Join.on-1859"><a href="#Join.on-1859"><span class="linenos">1859</span></a><span class="sd"> Example:</span>
-</span><span id="Join.on-1860"><a href="#Join.on-1860"><span class="linenos">1860</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="Join.on-1861"><a href="#Join.on-1861"><span class="linenos">1861</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-1862"><a href="#Join.on-1862"><span class="linenos">1862</span></a><span class="sd"> &#39;JOIN x ON y = 1&#39;</span>
-</span><span id="Join.on-1863"><a href="#Join.on-1863"><span class="linenos">1863</span></a>
-</span><span id="Join.on-1864"><a href="#Join.on-1864"><span class="linenos">1864</span></a><span class="sd"> Args:</span>
-</span><span id="Join.on-1865"><a href="#Join.on-1865"><span class="linenos">1865</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Join.on-1866"><a href="#Join.on-1866"><span class="linenos">1866</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Join.on-1867"><a href="#Join.on-1867"><span class="linenos">1867</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
-</span><span id="Join.on-1868"><a href="#Join.on-1868"><span class="linenos">1868</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
-</span><span id="Join.on-1869"><a href="#Join.on-1869"><span class="linenos">1869</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="Join.on-1870"><a href="#Join.on-1870"><span class="linenos">1870</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="Join.on-1871"><a href="#Join.on-1871"><span class="linenos">1871</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Join.on-1872"><a href="#Join.on-1872"><span class="linenos">1872</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Join.on-1873"><a href="#Join.on-1873"><span class="linenos">1873</span></a>
-</span><span id="Join.on-1874"><a href="#Join.on-1874"><span class="linenos">1874</span></a><span class="sd"> Returns:</span>
-</span><span id="Join.on-1875"><a href="#Join.on-1875"><span class="linenos">1875</span></a><span class="sd"> The modified Join expression.</span>
-</span><span id="Join.on-1876"><a href="#Join.on-1876"><span class="linenos">1876</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Join.on-1877"><a href="#Join.on-1877"><span class="linenos">1877</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-1878"><a href="#Join.on-1878"><span class="linenos">1878</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Join.on-1879"><a href="#Join.on-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="Join.on-1880"><a href="#Join.on-1880"><span class="linenos">1880</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-1881"><a href="#Join.on-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="Join.on-1882"><a href="#Join.on-1882"><span class="linenos">1882</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-1883"><a href="#Join.on-1883"><span class="linenos">1883</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-1884"><a href="#Join.on-1884"><span class="linenos">1884</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Join.on-1885"><a href="#Join.on-1885"><span class="linenos">1885</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Join.on-1845"><a href="#Join.on-1845"><span class="linenos">1845</span></a> <span class="k">def</span> <span class="nf">on</span><span class="p">(</span>
+</span><span id="Join.on-1846"><a href="#Join.on-1846"><span class="linenos">1846</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Join.on-1847"><a href="#Join.on-1847"><span class="linenos">1847</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Join.on-1848"><a href="#Join.on-1848"><span class="linenos">1848</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Join.on-1849"><a href="#Join.on-1849"><span class="linenos">1849</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Join.on-1850"><a href="#Join.on-1850"><span class="linenos">1850</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Join.on-1851"><a href="#Join.on-1851"><span class="linenos">1851</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Join.on-1852"><a href="#Join.on-1852"><span class="linenos">1852</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Join</span><span class="p">:</span>
+</span><span id="Join.on-1853"><a href="#Join.on-1853"><span class="linenos">1853</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Join.on-1854"><a href="#Join.on-1854"><span class="linenos">1854</span></a><span class="sd"> Append to or set the ON expressions.</span>
+</span><span id="Join.on-1855"><a href="#Join.on-1855"><span class="linenos">1855</span></a>
+</span><span id="Join.on-1856"><a href="#Join.on-1856"><span class="linenos">1856</span></a><span class="sd"> Example:</span>
+</span><span id="Join.on-1857"><a href="#Join.on-1857"><span class="linenos">1857</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="Join.on-1858"><a href="#Join.on-1858"><span class="linenos">1858</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-1859"><a href="#Join.on-1859"><span class="linenos">1859</span></a><span class="sd"> &#39;JOIN x ON y = 1&#39;</span>
+</span><span id="Join.on-1860"><a href="#Join.on-1860"><span class="linenos">1860</span></a>
+</span><span id="Join.on-1861"><a href="#Join.on-1861"><span class="linenos">1861</span></a><span class="sd"> Args:</span>
+</span><span id="Join.on-1862"><a href="#Join.on-1862"><span class="linenos">1862</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Join.on-1863"><a href="#Join.on-1863"><span class="linenos">1863</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Join.on-1864"><a href="#Join.on-1864"><span class="linenos">1864</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
+</span><span id="Join.on-1865"><a href="#Join.on-1865"><span class="linenos">1865</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
+</span><span id="Join.on-1866"><a href="#Join.on-1866"><span class="linenos">1866</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="Join.on-1867"><a href="#Join.on-1867"><span class="linenos">1867</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Join.on-1868"><a href="#Join.on-1868"><span class="linenos">1868</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Join.on-1869"><a href="#Join.on-1869"><span class="linenos">1869</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Join.on-1870"><a href="#Join.on-1870"><span class="linenos">1870</span></a>
+</span><span id="Join.on-1871"><a href="#Join.on-1871"><span class="linenos">1871</span></a><span class="sd"> Returns:</span>
+</span><span id="Join.on-1872"><a href="#Join.on-1872"><span class="linenos">1872</span></a><span class="sd"> The modified Join expression.</span>
+</span><span id="Join.on-1873"><a href="#Join.on-1873"><span class="linenos">1873</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Join.on-1874"><a href="#Join.on-1874"><span class="linenos">1874</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-1875"><a href="#Join.on-1875"><span class="linenos">1875</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Join.on-1876"><a href="#Join.on-1876"><span class="linenos">1876</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-1877"><a href="#Join.on-1877"><span class="linenos">1877</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-1878"><a href="#Join.on-1878"><span class="linenos">1878</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-1879"><a href="#Join.on-1879"><span class="linenos">1879</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-1880"><a href="#Join.on-1880"><span class="linenos">1880</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-1881"><a href="#Join.on-1881"><span class="linenos">1881</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Join.on-1882"><a href="#Join.on-1882"><span class="linenos">1882</span></a> <span class="p">)</span>
+</span><span id="Join.on-1883"><a href="#Join.on-1883"><span class="linenos">1883</span></a>
+</span><span id="Join.on-1884"><a href="#Join.on-1884"><span class="linenos">1884</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-1885"><a href="#Join.on-1885"><span class="linenos">1885</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-1886"><a href="#Join.on-1886"><span class="linenos">1886</span></a>
-</span><span id="Join.on-1887"><a href="#Join.on-1887"><span class="linenos">1887</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-1888"><a href="#Join.on-1888"><span class="linenos">1888</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-1889"><a href="#Join.on-1889"><span class="linenos">1889</span></a>
-</span><span id="Join.on-1890"><a href="#Join.on-1890"><span class="linenos">1890</span></a> <span class="k">return</span> <span class="n">join</span>
+</span><span id="Join.on-1887"><a href="#Join.on-1887"><span class="linenos">1887</span></a> <span class="k">return</span> <span class="n">join</span>
</span></pre></div>
@@ -28560,48 +29810,48 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Join.using"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Join.using-1892"><a href="#Join.using-1892"><span class="linenos">1892</span></a> <span class="k">def</span> <span class="nf">using</span><span class="p">(</span>
-</span><span id="Join.using-1893"><a href="#Join.using-1893"><span class="linenos">1893</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Join.using-1894"><a href="#Join.using-1894"><span class="linenos">1894</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Join.using-1895"><a href="#Join.using-1895"><span class="linenos">1895</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Join.using-1896"><a href="#Join.using-1896"><span class="linenos">1896</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Join.using-1897"><a href="#Join.using-1897"><span class="linenos">1897</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Join.using-1898"><a href="#Join.using-1898"><span class="linenos">1898</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Join.using-1899"><a href="#Join.using-1899"><span class="linenos">1899</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Join</span><span class="p">:</span>
-</span><span id="Join.using-1900"><a href="#Join.using-1900"><span class="linenos">1900</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Join.using-1901"><a href="#Join.using-1901"><span class="linenos">1901</span></a><span class="sd"> Append to or set the USING expressions.</span>
-</span><span id="Join.using-1902"><a href="#Join.using-1902"><span class="linenos">1902</span></a>
-</span><span id="Join.using-1903"><a href="#Join.using-1903"><span class="linenos">1903</span></a><span class="sd"> Example:</span>
-</span><span id="Join.using-1904"><a href="#Join.using-1904"><span class="linenos">1904</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="Join.using-1905"><a href="#Join.using-1905"><span class="linenos">1905</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-1906"><a href="#Join.using-1906"><span class="linenos">1906</span></a><span class="sd"> &#39;JOIN x USING (foo, bla)&#39;</span>
-</span><span id="Join.using-1907"><a href="#Join.using-1907"><span class="linenos">1907</span></a>
-</span><span id="Join.using-1908"><a href="#Join.using-1908"><span class="linenos">1908</span></a><span class="sd"> Args:</span>
-</span><span id="Join.using-1909"><a href="#Join.using-1909"><span class="linenos">1909</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Join.using-1910"><a href="#Join.using-1910"><span class="linenos">1910</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Join.using-1911"><a href="#Join.using-1911"><span class="linenos">1911</span></a><span class="sd"> append: if `True`, concatenate the new expressions to the existing &quot;using&quot; list.</span>
-</span><span id="Join.using-1912"><a href="#Join.using-1912"><span class="linenos">1912</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="Join.using-1913"><a href="#Join.using-1913"><span class="linenos">1913</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="Join.using-1914"><a href="#Join.using-1914"><span class="linenos">1914</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Join.using-1915"><a href="#Join.using-1915"><span class="linenos">1915</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Join.using-1916"><a href="#Join.using-1916"><span class="linenos">1916</span></a>
-</span><span id="Join.using-1917"><a href="#Join.using-1917"><span class="linenos">1917</span></a><span class="sd"> Returns:</span>
-</span><span id="Join.using-1918"><a href="#Join.using-1918"><span class="linenos">1918</span></a><span class="sd"> The modified Join expression.</span>
-</span><span id="Join.using-1919"><a href="#Join.using-1919"><span class="linenos">1919</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Join.using-1920"><a href="#Join.using-1920"><span class="linenos">1920</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-1921"><a href="#Join.using-1921"><span class="linenos">1921</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Join.using-1922"><a href="#Join.using-1922"><span class="linenos">1922</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-1923"><a href="#Join.using-1923"><span class="linenos">1923</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-1924"><a href="#Join.using-1924"><span class="linenos">1924</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-1925"><a href="#Join.using-1925"><span class="linenos">1925</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-1926"><a href="#Join.using-1926"><span class="linenos">1926</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-1927"><a href="#Join.using-1927"><span class="linenos">1927</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Join.using-1928"><a href="#Join.using-1928"><span class="linenos">1928</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Join.using-1889"><a href="#Join.using-1889"><span class="linenos">1889</span></a> <span class="k">def</span> <span class="nf">using</span><span class="p">(</span>
+</span><span id="Join.using-1890"><a href="#Join.using-1890"><span class="linenos">1890</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Join.using-1891"><a href="#Join.using-1891"><span class="linenos">1891</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Join.using-1892"><a href="#Join.using-1892"><span class="linenos">1892</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Join.using-1893"><a href="#Join.using-1893"><span class="linenos">1893</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Join.using-1894"><a href="#Join.using-1894"><span class="linenos">1894</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Join.using-1895"><a href="#Join.using-1895"><span class="linenos">1895</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Join.using-1896"><a href="#Join.using-1896"><span class="linenos">1896</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Join</span><span class="p">:</span>
+</span><span id="Join.using-1897"><a href="#Join.using-1897"><span class="linenos">1897</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Join.using-1898"><a href="#Join.using-1898"><span class="linenos">1898</span></a><span class="sd"> Append to or set the USING expressions.</span>
+</span><span id="Join.using-1899"><a href="#Join.using-1899"><span class="linenos">1899</span></a>
+</span><span id="Join.using-1900"><a href="#Join.using-1900"><span class="linenos">1900</span></a><span class="sd"> Example:</span>
+</span><span id="Join.using-1901"><a href="#Join.using-1901"><span class="linenos">1901</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="Join.using-1902"><a href="#Join.using-1902"><span class="linenos">1902</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-1903"><a href="#Join.using-1903"><span class="linenos">1903</span></a><span class="sd"> &#39;JOIN x USING (foo, bla)&#39;</span>
+</span><span id="Join.using-1904"><a href="#Join.using-1904"><span class="linenos">1904</span></a>
+</span><span id="Join.using-1905"><a href="#Join.using-1905"><span class="linenos">1905</span></a><span class="sd"> Args:</span>
+</span><span id="Join.using-1906"><a href="#Join.using-1906"><span class="linenos">1906</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Join.using-1907"><a href="#Join.using-1907"><span class="linenos">1907</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Join.using-1908"><a href="#Join.using-1908"><span class="linenos">1908</span></a><span class="sd"> append: if `True`, concatenate the new expressions to the existing &quot;using&quot; list.</span>
+</span><span id="Join.using-1909"><a href="#Join.using-1909"><span class="linenos">1909</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="Join.using-1910"><a href="#Join.using-1910"><span class="linenos">1910</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Join.using-1911"><a href="#Join.using-1911"><span class="linenos">1911</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Join.using-1912"><a href="#Join.using-1912"><span class="linenos">1912</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Join.using-1913"><a href="#Join.using-1913"><span class="linenos">1913</span></a>
+</span><span id="Join.using-1914"><a href="#Join.using-1914"><span class="linenos">1914</span></a><span class="sd"> Returns:</span>
+</span><span id="Join.using-1915"><a href="#Join.using-1915"><span class="linenos">1915</span></a><span class="sd"> The modified Join expression.</span>
+</span><span id="Join.using-1916"><a href="#Join.using-1916"><span class="linenos">1916</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Join.using-1917"><a href="#Join.using-1917"><span class="linenos">1917</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-1918"><a href="#Join.using-1918"><span class="linenos">1918</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Join.using-1919"><a href="#Join.using-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="Join.using-1920"><a href="#Join.using-1920"><span class="linenos">1920</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-1921"><a href="#Join.using-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="Join.using-1922"><a href="#Join.using-1922"><span class="linenos">1922</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-1923"><a href="#Join.using-1923"><span class="linenos">1923</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-1924"><a href="#Join.using-1924"><span class="linenos">1924</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Join.using-1925"><a href="#Join.using-1925"><span class="linenos">1925</span></a> <span class="p">)</span>
+</span><span id="Join.using-1926"><a href="#Join.using-1926"><span class="linenos">1926</span></a>
+</span><span id="Join.using-1927"><a href="#Join.using-1927"><span class="linenos">1927</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-1928"><a href="#Join.using-1928"><span class="linenos">1928</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-1929"><a href="#Join.using-1929"><span class="linenos">1929</span></a>
-</span><span id="Join.using-1930"><a href="#Join.using-1930"><span class="linenos">1930</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-1931"><a href="#Join.using-1931"><span class="linenos">1931</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-1932"><a href="#Join.using-1932"><span class="linenos">1932</span></a>
-</span><span id="Join.using-1933"><a href="#Join.using-1933"><span class="linenos">1933</span></a> <span class="k">return</span> <span class="n">join</span>
+</span><span id="Join.using-1930"><a href="#Join.using-1930"><span class="linenos">1930</span></a> <span class="k">return</span> <span class="n">join</span>
</span></pre></div>
@@ -28675,6 +29925,7 @@ Otherwise, this resets the expression.</li>
<dd id="Join.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Join.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Join.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Join.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Join.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Join.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Join.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -28695,6 +29946,7 @@ Otherwise, this resets the expression.</li>
<dd id="Join.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Join.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Join.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Join.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Join.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Join.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Join.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -28716,6 +29968,7 @@ Otherwise, this resets the expression.</li>
<dd id="Join.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Join.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Join.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Join.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -28732,8 +29985,14 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Lateral"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Lateral-1936"><a href="#Lateral-1936"><span class="linenos">1936</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-1937"><a href="#Lateral-1937"><span class="linenos">1937</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1933"><a href="#Lateral-1933"><span class="linenos">1933</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-1934"><a href="#Lateral-1934"><span class="linenos">1934</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Lateral-1935"><a href="#Lateral-1935"><span class="linenos">1935</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Lateral-1936"><a href="#Lateral-1936"><span class="linenos">1936</span></a> <span class="s2">&quot;view&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Lateral-1937"><a href="#Lateral-1937"><span class="linenos">1937</span></a> <span class="s2">&quot;outer&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Lateral-1938"><a href="#Lateral-1938"><span class="linenos">1938</span></a> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Lateral-1939"><a href="#Lateral-1939"><span class="linenos">1939</span></a> <span class="s2">&quot;cross_apply&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="c1"># True -&gt; CROSS APPLY, False -&gt; OUTER APPLY</span>
+</span><span id="Lateral-1940"><a href="#Lateral-1940"><span class="linenos">1940</span></a> <span class="p">}</span>
</span></pre></div>
@@ -28742,7 +30001,7 @@ Otherwise, this resets the expression.</li>
<div id="Lateral.arg_types" class="classattr">
<div class="attr variable">
<span class="name">arg_types</span> =
-<span class="default_value">{&#39;this&#39;: True, &#39;view&#39;: False, &#39;outer&#39;: False, &#39;alias&#39;: False}</span>
+<span class="default_value">{&#39;this&#39;: True, &#39;view&#39;: False, &#39;outer&#39;: False, &#39;alias&#39;: False, &#39;cross_apply&#39;: False}</span>
</div>
@@ -28788,6 +30047,7 @@ Otherwise, this resets the expression.</li>
<dd id="Lateral.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Lateral.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Lateral.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Lateral.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Lateral.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Lateral.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Lateral.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -28808,6 +30068,7 @@ Otherwise, this resets the expression.</li>
<dd id="Lateral.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Lateral.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Lateral.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Lateral.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Lateral.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Lateral.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Lateral.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -28829,6 +30090,7 @@ Otherwise, this resets the expression.</li>
<dd id="Lateral.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Lateral.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Lateral.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Lateral.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#UDTF">UDTF</a></dt>
@@ -28859,17 +30121,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-1940"><a href="#MatchRecognize-1940"><span class="linenos">1940</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-1941"><a href="#MatchRecognize-1941"><span class="linenos">1941</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="MatchRecognize-1942"><a href="#MatchRecognize-1942"><span class="linenos">1942</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-1943"><a href="#MatchRecognize-1943"><span class="linenos">1943</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-1944"><a href="#MatchRecognize-1944"><span class="linenos">1944</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-1945"><a href="#MatchRecognize-1945"><span class="linenos">1945</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-1946"><a href="#MatchRecognize-1946"><span class="linenos">1946</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-1947"><a href="#MatchRecognize-1947"><span class="linenos">1947</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-1948"><a href="#MatchRecognize-1948"><span class="linenos">1948</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-1949"><a href="#MatchRecognize-1949"><span class="linenos">1949</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-1950"><a href="#MatchRecognize-1950"><span class="linenos">1950</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="MatchRecognize-1943"><a href="#MatchRecognize-1943"><span class="linenos">1943</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-1944"><a href="#MatchRecognize-1944"><span class="linenos">1944</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="MatchRecognize-1945"><a href="#MatchRecognize-1945"><span class="linenos">1945</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-1946"><a href="#MatchRecognize-1946"><span class="linenos">1946</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-1947"><a href="#MatchRecognize-1947"><span class="linenos">1947</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-1948"><a href="#MatchRecognize-1948"><span class="linenos">1948</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-1949"><a href="#MatchRecognize-1949"><span class="linenos">1949</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-1950"><a href="#MatchRecognize-1950"><span class="linenos">1950</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-1951"><a href="#MatchRecognize-1951"><span class="linenos">1951</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-1952"><a href="#MatchRecognize-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="MatchRecognize-1953"><a href="#MatchRecognize-1953"><span class="linenos">1953</span></a> <span class="p">}</span>
</span></pre></div>
@@ -28925,6 +30187,7 @@ Otherwise, this resets the expression.</li>
<dd id="MatchRecognize.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="MatchRecognize.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="MatchRecognize.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="MatchRecognize.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="MatchRecognize.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="MatchRecognize.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="MatchRecognize.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -28945,6 +30208,7 @@ Otherwise, this resets the expression.</li>
<dd id="MatchRecognize.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="MatchRecognize.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="MatchRecognize.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="MatchRecognize.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="MatchRecognize.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="MatchRecognize.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="MatchRecognize.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -28966,6 +30230,7 @@ Otherwise, this resets the expression.</li>
<dd id="MatchRecognize.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="MatchRecognize.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="MatchRecognize.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="MatchRecognize.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -28982,8 +30247,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-1955"><a href="#Final-1955"><span class="linenos">1955</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-1956"><a href="#Final-1956"><span class="linenos">1956</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Final-1958"><a href="#Final-1958"><span class="linenos">1958</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-1959"><a href="#Final-1959"><span class="linenos">1959</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -29027,6 +30292,7 @@ Otherwise, this resets the expression.</li>
<dd id="Final.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Final.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Final.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Final.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Final.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Final.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Final.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -29047,6 +30313,7 @@ Otherwise, this resets the expression.</li>
<dd id="Final.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Final.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Final.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Final.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Final.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Final.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Final.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -29068,6 +30335,7 @@ Otherwise, this resets the expression.</li>
<dd id="Final.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Final.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Final.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Final.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -29084,8 +30352,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-1959"><a href="#Offset-1959"><span class="linenos">1959</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-1960"><a href="#Offset-1960"><span class="linenos">1960</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">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-1962"><a href="#Offset-1962"><span class="linenos">1962</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-1963"><a href="#Offset-1963"><span class="linenos">1963</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -29140,6 +30408,7 @@ Otherwise, this resets the expression.</li>
<dd id="Offset.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Offset.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Offset.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Offset.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Offset.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Offset.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Offset.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -29160,6 +30429,7 @@ Otherwise, this resets the expression.</li>
<dd id="Offset.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Offset.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Offset.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Offset.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Offset.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Offset.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Offset.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -29181,6 +30451,7 @@ Otherwise, this resets the expression.</li>
<dd id="Offset.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Offset.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Offset.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Offset.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -29197,8 +30468,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-1963"><a href="#Order-1963"><span class="linenos">1963</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-1964"><a href="#Order-1964"><span class="linenos">1964</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">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-1966"><a href="#Order-1966"><span class="linenos">1966</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-1967"><a href="#Order-1967"><span class="linenos">1967</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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 class="s2">&quot;interpolate&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -29207,7 +30478,7 @@ Otherwise, this resets the expression.</li>
<div id="Order.arg_types" class="classattr">
<div class="attr variable">
<span class="name">arg_types</span> =
-<span class="default_value">{&#39;this&#39;: False, &#39;expressions&#39;: True}</span>
+<span class="default_value">{&#39;this&#39;: False, &#39;expressions&#39;: True, &#39;interpolate&#39;: False}</span>
</div>
@@ -29253,6 +30524,7 @@ Otherwise, this resets the expression.</li>
<dd id="Order.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Order.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Order.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Order.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Order.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Order.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Order.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -29273,6 +30545,7 @@ Otherwise, this resets the expression.</li>
<dd id="Order.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Order.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Order.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Order.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Order.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Order.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Order.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -29294,6 +30567,123 @@ Otherwise, this resets the expression.</li>
<dd id="Order.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Order.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Order.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Order.desc" class="function"><a href="#Expression.desc">desc</a></dd>
+
+ </div>
+ </dl>
+ </div>
+ </section>
+ <section id="WithFill">
+ <input id="WithFill-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">WithFill</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
+
+ <label class="view-source-button" for="WithFill-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#WithFill"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="WithFill-1971"><a href="#WithFill-1971"><span class="linenos">1971</span></a><span class="k">class</span> <span class="nc">WithFill</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="WithFill-1972"><a href="#WithFill-1972"><span class="linenos">1972</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;from&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;to&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;step&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span></pre></div>
+
+
+
+
+ <div id="WithFill.arg_types" class="classattr">
+ <div class="attr variable">
+ <span class="name">arg_types</span> =
+<span class="default_value">{&#39;from&#39;: False, &#39;to&#39;: False, &#39;step&#39;: False}</span>
+
+
+ </div>
+ <a class="headerlink" href="#WithFill.arg_types"></a>
+
+
+
+ </div>
+ <div id="WithFill.key" class="classattr">
+ <div class="attr variable">
+ <span class="name">key</span> =
+<span class="default_value">&#39;withfill&#39;</span>
+
+
+ </div>
+ <a class="headerlink" href="#WithFill.key"></a>
+
+
+
+ </div>
+ <div class="inherited">
+ <h5>Inherited Members</h5>
+ <dl>
+ <div><dt><a href="#Expression">Expression</a></dt>
+ <dd id="WithFill.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
+ <dd id="WithFill.args" class="variable"><a href="#Expression.args">args</a></dd>
+ <dd id="WithFill.parent" class="variable"><a href="#Expression.parent">parent</a></dd>
+ <dd id="WithFill.arg_key" class="variable"><a href="#Expression.arg_key">arg_key</a></dd>
+ <dd id="WithFill.comments" class="variable"><a href="#Expression.comments">comments</a></dd>
+ <dd id="WithFill.hashable_args" class="variable"><a href="#Expression.hashable_args">hashable_args</a></dd>
+ <dd id="WithFill.this" class="variable"><a href="#Expression.this">this</a></dd>
+ <dd id="WithFill.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
+ <dd id="WithFill.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
+ <dd id="WithFill.text" class="function"><a href="#Expression.text">text</a></dd>
+ <dd id="WithFill.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
+ <dd id="WithFill.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
+ <dd id="WithFill.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
+ <dd id="WithFill.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
+ <dd id="WithFill.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="WithFill.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
+ <dd id="WithFill.name" class="variable"><a href="#Expression.name">name</a></dd>
+ <dd id="WithFill.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
+ <dd id="WithFill.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
+ <dd id="WithFill.type" class="variable"><a href="#Expression.type">type</a></dd>
+ <dd id="WithFill.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="WithFill.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
+ <dd id="WithFill.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
+ <dd id="WithFill.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="WithFill.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
+ <dd id="WithFill.append" class="function"><a href="#Expression.append">append</a></dd>
+ <dd id="WithFill.set" class="function"><a href="#Expression.set">set</a></dd>
+ <dd id="WithFill.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
+ <dd id="WithFill.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
+ <dd id="WithFill.find" class="function"><a href="#Expression.find">find</a></dd>
+ <dd id="WithFill.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
+ <dd id="WithFill.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
+ <dd id="WithFill.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
+ <dd id="WithFill.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
+ <dd id="WithFill.root" class="function"><a href="#Expression.root">root</a></dd>
+ <dd id="WithFill.walk" class="function"><a href="#Expression.walk">walk</a></dd>
+ <dd id="WithFill.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
+ <dd id="WithFill.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
+ <dd id="WithFill.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
+ <dd id="WithFill.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
+ <dd id="WithFill.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
+ <dd id="WithFill.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="WithFill.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
+ <dd id="WithFill.sql" class="function"><a href="#Expression.sql">sql</a></dd>
+ <dd id="WithFill.transform" class="function"><a href="#Expression.transform">transform</a></dd>
+ <dd id="WithFill.replace" class="function"><a href="#Expression.replace">replace</a></dd>
+ <dd id="WithFill.pop" class="function"><a href="#Expression.pop">pop</a></dd>
+ <dd id="WithFill.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
+ <dd id="WithFill.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
+ <dd id="WithFill.dump" class="function"><a href="#Expression.dump">dump</a></dd>
+ <dd id="WithFill.load" class="function"><a href="#Expression.load">load</a></dd>
+ <dd id="WithFill.and_" class="function"><a href="#Expression.and_">and_</a></dd>
+ <dd id="WithFill.or_" class="function"><a href="#Expression.or_">or_</a></dd>
+ <dd id="WithFill.not_" class="function"><a href="#Expression.not_">not_</a></dd>
+ <dd id="WithFill.as_" class="function"><a href="#Expression.as_">as_</a></dd>
+ <dd id="WithFill.isin" class="function"><a href="#Expression.isin">isin</a></dd>
+ <dd id="WithFill.between" class="function"><a href="#Expression.between">between</a></dd>
+ <dd id="WithFill.is_" class="function"><a href="#Expression.is_">is_</a></dd>
+ <dd id="WithFill.like" class="function"><a href="#Expression.like">like</a></dd>
+ <dd id="WithFill.ilike" class="function"><a href="#Expression.ilike">ilike</a></dd>
+ <dd id="WithFill.eq" class="function"><a href="#Expression.eq">eq</a></dd>
+ <dd id="WithFill.neq" class="function"><a href="#Expression.neq">neq</a></dd>
+ <dd id="WithFill.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
+ <dd id="WithFill.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="WithFill.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -29310,8 +30700,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-1969"><a href="#Cluster-1969"><span class="linenos">1969</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-1970"><a href="#Cluster-1970"><span class="linenos">1970</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Cluster-1977"><a href="#Cluster-1977"><span class="linenos">1977</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-1978"><a href="#Cluster-1978"><span class="linenos">1978</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -29354,6 +30744,7 @@ Otherwise, this resets the expression.</li>
<dd id="Cluster.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Cluster.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Cluster.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Cluster.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Cluster.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Cluster.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Cluster.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -29374,6 +30765,7 @@ Otherwise, this resets the expression.</li>
<dd id="Cluster.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Cluster.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Cluster.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Cluster.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Cluster.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Cluster.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Cluster.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -29395,6 +30787,7 @@ Otherwise, this resets the expression.</li>
<dd id="Cluster.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Cluster.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Cluster.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Cluster.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Order">Order</a></dt>
@@ -29415,8 +30808,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-1973"><a href="#Distribute-1973"><span class="linenos">1973</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-1974"><a href="#Distribute-1974"><span class="linenos">1974</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Distribute-1981"><a href="#Distribute-1981"><span class="linenos">1981</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-1982"><a href="#Distribute-1982"><span class="linenos">1982</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -29459,6 +30852,7 @@ Otherwise, this resets the expression.</li>
<dd id="Distribute.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Distribute.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Distribute.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Distribute.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Distribute.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Distribute.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Distribute.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -29479,6 +30873,7 @@ Otherwise, this resets the expression.</li>
<dd id="Distribute.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Distribute.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Distribute.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Distribute.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Distribute.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Distribute.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Distribute.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -29500,6 +30895,7 @@ Otherwise, this resets the expression.</li>
<dd id="Distribute.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Distribute.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Distribute.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Distribute.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Order">Order</a></dt>
@@ -29520,8 +30916,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-1977"><a href="#Sort-1977"><span class="linenos">1977</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-1978"><a href="#Sort-1978"><span class="linenos">1978</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Sort-1985"><a href="#Sort-1985"><span class="linenos">1985</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-1986"><a href="#Sort-1986"><span class="linenos">1986</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -29564,6 +30960,7 @@ Otherwise, this resets the expression.</li>
<dd id="Sort.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Sort.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Sort.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Sort.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Sort.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Sort.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Sort.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -29584,6 +30981,7 @@ Otherwise, this resets the expression.</li>
<dd id="Sort.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Sort.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Sort.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Sort.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Sort.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Sort.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Sort.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -29605,6 +31003,7 @@ Otherwise, this resets the expression.</li>
<dd id="Sort.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Sort.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Sort.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Sort.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Order">Order</a></dt>
@@ -29625,8 +31024,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-1981"><a href="#Ordered-1981"><span class="linenos">1981</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-1982"><a href="#Ordered-1982"><span class="linenos">1982</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;desc&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;nulls_first&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Ordered-1989"><a href="#Ordered-1989"><span class="linenos">1989</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-1990"><a href="#Ordered-1990"><span class="linenos">1990</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;desc&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;nulls_first&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;with_fill&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -29635,7 +31034,7 @@ Otherwise, this resets the expression.</li>
<div id="Ordered.arg_types" class="classattr">
<div class="attr variable">
<span class="name">arg_types</span> =
-<span class="default_value">{&#39;this&#39;: True, &#39;desc&#39;: False, &#39;nulls_first&#39;: True}</span>
+<span class="default_value">{&#39;this&#39;: True, &#39;desc&#39;: False, &#39;nulls_first&#39;: True, &#39;with_fill&#39;: False}</span>
</div>
@@ -29681,6 +31080,7 @@ Otherwise, this resets the expression.</li>
<dd id="Ordered.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Ordered.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Ordered.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Ordered.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Ordered.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Ordered.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Ordered.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -29701,6 +31101,7 @@ Otherwise, this resets the expression.</li>
<dd id="Ordered.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Ordered.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Ordered.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Ordered.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Ordered.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Ordered.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Ordered.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -29722,6 +31123,7 @@ Otherwise, this resets the expression.</li>
<dd id="Ordered.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Ordered.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Ordered.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Ordered.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -29738,8 +31140,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-1985"><a href="#Property-1985"><span class="linenos">1985</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-1986"><a href="#Property-1986"><span class="linenos">1986</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1993"><a href="#Property-1993"><span class="linenos">1993</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-1994"><a href="#Property-1994"><span class="linenos">1994</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -29794,6 +31196,7 @@ Otherwise, this resets the expression.</li>
<dd id="Property.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Property.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Property.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Property.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Property.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Property.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Property.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -29814,6 +31217,7 @@ Otherwise, this resets the expression.</li>
<dd id="Property.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Property.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Property.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Property.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Property.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Property.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Property.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -29835,6 +31239,7 @@ Otherwise, this resets the expression.</li>
<dd id="Property.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Property.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Property.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Property.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -29851,8 +31256,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-1989"><a href="#AlgorithmProperty-1989"><span class="linenos">1989</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-1990"><a href="#AlgorithmProperty-1990"><span class="linenos">1990</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="AlgorithmProperty-1997"><a href="#AlgorithmProperty-1997"><span class="linenos">1997</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-1998"><a href="#AlgorithmProperty-1998"><span class="linenos">1998</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -29907,6 +31312,7 @@ Otherwise, this resets the expression.</li>
<dd id="AlgorithmProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="AlgorithmProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="AlgorithmProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="AlgorithmProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="AlgorithmProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="AlgorithmProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="AlgorithmProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -29927,6 +31333,7 @@ Otherwise, this resets the expression.</li>
<dd id="AlgorithmProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="AlgorithmProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="AlgorithmProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="AlgorithmProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="AlgorithmProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="AlgorithmProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="AlgorithmProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -29948,6 +31355,7 @@ Otherwise, this resets the expression.</li>
<dd id="AlgorithmProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="AlgorithmProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="AlgorithmProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="AlgorithmProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -29964,8 +31372,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-1993"><a href="#AutoIncrementProperty-1993"><span class="linenos">1993</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-1994"><a href="#AutoIncrementProperty-1994"><span class="linenos">1994</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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-2001"><a href="#AutoIncrementProperty-2001"><span class="linenos">2001</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-2002"><a href="#AutoIncrementProperty-2002"><span class="linenos">2002</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -30020,6 +31428,7 @@ Otherwise, this resets the expression.</li>
<dd id="AutoIncrementProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="AutoIncrementProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="AutoIncrementProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="AutoIncrementProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="AutoIncrementProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="AutoIncrementProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="AutoIncrementProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -30040,6 +31449,7 @@ Otherwise, this resets the expression.</li>
<dd id="AutoIncrementProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="AutoIncrementProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="AutoIncrementProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="AutoIncrementProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="AutoIncrementProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="AutoIncrementProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="AutoIncrementProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -30061,6 +31471,123 @@ Otherwise, this resets the expression.</li>
<dd id="AutoIncrementProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="AutoIncrementProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="AutoIncrementProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="AutoIncrementProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
+
+ </div>
+ </dl>
+ </div>
+ </section>
+ <section id="AutoRefreshProperty">
+ <input id="AutoRefreshProperty-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">AutoRefreshProperty</span><wbr>(<span class="base"><a href="#Property">Property</a></span>):
+
+ <label class="view-source-button" for="AutoRefreshProperty-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#AutoRefreshProperty"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="AutoRefreshProperty-2006"><a href="#AutoRefreshProperty-2006"><span class="linenos">2006</span></a><span class="k">class</span> <span class="nc">AutoRefreshProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="AutoRefreshProperty-2007"><a href="#AutoRefreshProperty-2007"><span class="linenos">2007</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span></pre></div>
+
+
+
+
+ <div id="AutoRefreshProperty.arg_types" class="classattr">
+ <div class="attr variable">
+ <span class="name">arg_types</span> =
+<span class="default_value">{&#39;this&#39;: True}</span>
+
+
+ </div>
+ <a class="headerlink" href="#AutoRefreshProperty.arg_types"></a>
+
+
+
+ </div>
+ <div id="AutoRefreshProperty.key" class="classattr">
+ <div class="attr variable">
+ <span class="name">key</span> =
+<span class="default_value">&#39;autorefreshproperty&#39;</span>
+
+
+ </div>
+ <a class="headerlink" href="#AutoRefreshProperty.key"></a>
+
+
+
+ </div>
+ <div class="inherited">
+ <h5>Inherited Members</h5>
+ <dl>
+ <div><dt><a href="#Expression">Expression</a></dt>
+ <dd id="AutoRefreshProperty.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
+ <dd id="AutoRefreshProperty.args" class="variable"><a href="#Expression.args">args</a></dd>
+ <dd id="AutoRefreshProperty.parent" class="variable"><a href="#Expression.parent">parent</a></dd>
+ <dd id="AutoRefreshProperty.arg_key" class="variable"><a href="#Expression.arg_key">arg_key</a></dd>
+ <dd id="AutoRefreshProperty.comments" class="variable"><a href="#Expression.comments">comments</a></dd>
+ <dd id="AutoRefreshProperty.hashable_args" class="variable"><a href="#Expression.hashable_args">hashable_args</a></dd>
+ <dd id="AutoRefreshProperty.this" class="variable"><a href="#Expression.this">this</a></dd>
+ <dd id="AutoRefreshProperty.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
+ <dd id="AutoRefreshProperty.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
+ <dd id="AutoRefreshProperty.text" class="function"><a href="#Expression.text">text</a></dd>
+ <dd id="AutoRefreshProperty.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
+ <dd id="AutoRefreshProperty.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
+ <dd id="AutoRefreshProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
+ <dd id="AutoRefreshProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
+ <dd id="AutoRefreshProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="AutoRefreshProperty.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
+ <dd id="AutoRefreshProperty.name" class="variable"><a href="#Expression.name">name</a></dd>
+ <dd id="AutoRefreshProperty.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
+ <dd id="AutoRefreshProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
+ <dd id="AutoRefreshProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
+ <dd id="AutoRefreshProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="AutoRefreshProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
+ <dd id="AutoRefreshProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
+ <dd id="AutoRefreshProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="AutoRefreshProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
+ <dd id="AutoRefreshProperty.append" class="function"><a href="#Expression.append">append</a></dd>
+ <dd id="AutoRefreshProperty.set" class="function"><a href="#Expression.set">set</a></dd>
+ <dd id="AutoRefreshProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
+ <dd id="AutoRefreshProperty.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
+ <dd id="AutoRefreshProperty.find" class="function"><a href="#Expression.find">find</a></dd>
+ <dd id="AutoRefreshProperty.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
+ <dd id="AutoRefreshProperty.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
+ <dd id="AutoRefreshProperty.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
+ <dd id="AutoRefreshProperty.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
+ <dd id="AutoRefreshProperty.root" class="function"><a href="#Expression.root">root</a></dd>
+ <dd id="AutoRefreshProperty.walk" class="function"><a href="#Expression.walk">walk</a></dd>
+ <dd id="AutoRefreshProperty.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
+ <dd id="AutoRefreshProperty.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
+ <dd id="AutoRefreshProperty.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
+ <dd id="AutoRefreshProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
+ <dd id="AutoRefreshProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
+ <dd id="AutoRefreshProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="AutoRefreshProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
+ <dd id="AutoRefreshProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
+ <dd id="AutoRefreshProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
+ <dd id="AutoRefreshProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
+ <dd id="AutoRefreshProperty.pop" class="function"><a href="#Expression.pop">pop</a></dd>
+ <dd id="AutoRefreshProperty.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
+ <dd id="AutoRefreshProperty.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
+ <dd id="AutoRefreshProperty.dump" class="function"><a href="#Expression.dump">dump</a></dd>
+ <dd id="AutoRefreshProperty.load" class="function"><a href="#Expression.load">load</a></dd>
+ <dd id="AutoRefreshProperty.and_" class="function"><a href="#Expression.and_">and_</a></dd>
+ <dd id="AutoRefreshProperty.or_" class="function"><a href="#Expression.or_">or_</a></dd>
+ <dd id="AutoRefreshProperty.not_" class="function"><a href="#Expression.not_">not_</a></dd>
+ <dd id="AutoRefreshProperty.as_" class="function"><a href="#Expression.as_">as_</a></dd>
+ <dd id="AutoRefreshProperty.isin" class="function"><a href="#Expression.isin">isin</a></dd>
+ <dd id="AutoRefreshProperty.between" class="function"><a href="#Expression.between">between</a></dd>
+ <dd id="AutoRefreshProperty.is_" class="function"><a href="#Expression.is_">is_</a></dd>
+ <dd id="AutoRefreshProperty.like" class="function"><a href="#Expression.like">like</a></dd>
+ <dd id="AutoRefreshProperty.ilike" class="function"><a href="#Expression.ilike">ilike</a></dd>
+ <dd id="AutoRefreshProperty.eq" class="function"><a href="#Expression.eq">eq</a></dd>
+ <dd id="AutoRefreshProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
+ <dd id="AutoRefreshProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
+ <dd id="AutoRefreshProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="AutoRefreshProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -30077,8 +31604,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-1997"><a href="#BlockCompressionProperty-1997"><span class="linenos">1997</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-1998"><a href="#BlockCompressionProperty-1998"><span class="linenos">1998</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-2010"><a href="#BlockCompressionProperty-2010"><span class="linenos">2010</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-2011"><a href="#BlockCompressionProperty-2011"><span class="linenos">2011</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>
@@ -30133,6 +31660,7 @@ Otherwise, this resets the expression.</li>
<dd id="BlockCompressionProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="BlockCompressionProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="BlockCompressionProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="BlockCompressionProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="BlockCompressionProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="BlockCompressionProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="BlockCompressionProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -30153,6 +31681,7 @@ Otherwise, this resets the expression.</li>
<dd id="BlockCompressionProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="BlockCompressionProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="BlockCompressionProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="BlockCompressionProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="BlockCompressionProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="BlockCompressionProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="BlockCompressionProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -30174,6 +31703,7 @@ Otherwise, this resets the expression.</li>
<dd id="BlockCompressionProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="BlockCompressionProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="BlockCompressionProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="BlockCompressionProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -30190,8 +31720,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-2001"><a href="#CharacterSetProperty-2001"><span class="linenos">2001</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-2002"><a href="#CharacterSetProperty-2002"><span class="linenos">2002</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-2014"><a href="#CharacterSetProperty-2014"><span class="linenos">2014</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-2015"><a href="#CharacterSetProperty-2015"><span class="linenos">2015</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -30246,6 +31776,7 @@ Otherwise, this resets the expression.</li>
<dd id="CharacterSetProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="CharacterSetProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="CharacterSetProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="CharacterSetProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="CharacterSetProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="CharacterSetProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="CharacterSetProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -30266,6 +31797,7 @@ Otherwise, this resets the expression.</li>
<dd id="CharacterSetProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="CharacterSetProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="CharacterSetProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="CharacterSetProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="CharacterSetProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="CharacterSetProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="CharacterSetProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -30287,6 +31819,7 @@ Otherwise, this resets the expression.</li>
<dd id="CharacterSetProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="CharacterSetProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="CharacterSetProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="CharacterSetProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -30303,8 +31836,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-2005"><a href="#ChecksumProperty-2005"><span class="linenos">2005</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-2006"><a href="#ChecksumProperty-2006"><span class="linenos">2006</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-2018"><a href="#ChecksumProperty-2018"><span class="linenos">2018</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-2019"><a href="#ChecksumProperty-2019"><span class="linenos">2019</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>
@@ -30359,6 +31892,7 @@ Otherwise, this resets the expression.</li>
<dd id="ChecksumProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ChecksumProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="ChecksumProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="ChecksumProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="ChecksumProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="ChecksumProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ChecksumProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -30379,6 +31913,7 @@ Otherwise, this resets the expression.</li>
<dd id="ChecksumProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ChecksumProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ChecksumProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="ChecksumProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="ChecksumProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ChecksumProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ChecksumProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -30400,6 +31935,7 @@ Otherwise, this resets the expression.</li>
<dd id="ChecksumProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="ChecksumProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="ChecksumProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="ChecksumProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -30416,8 +31952,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-2009"><a href="#CollateProperty-2009"><span class="linenos">2009</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-2010"><a href="#CollateProperty-2010"><span class="linenos">2010</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;default&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="CollateProperty-2022"><a href="#CollateProperty-2022"><span class="linenos">2022</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-2023"><a href="#CollateProperty-2023"><span class="linenos">2023</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -30472,6 +32008,7 @@ Otherwise, this resets the expression.</li>
<dd id="CollateProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="CollateProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="CollateProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="CollateProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="CollateProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="CollateProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="CollateProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -30492,6 +32029,7 @@ Otherwise, this resets the expression.</li>
<dd id="CollateProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="CollateProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="CollateProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="CollateProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="CollateProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="CollateProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="CollateProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -30513,6 +32051,7 @@ Otherwise, this resets the expression.</li>
<dd id="CollateProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="CollateProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="CollateProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="CollateProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -30529,8 +32068,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#CopyGrantsProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="CopyGrantsProperty-2013"><a href="#CopyGrantsProperty-2013"><span class="linenos">2013</span></a><span class="k">class</span> <span class="nc">CopyGrantsProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="CopyGrantsProperty-2014"><a href="#CopyGrantsProperty-2014"><span class="linenos">2014</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="CopyGrantsProperty-2026"><a href="#CopyGrantsProperty-2026"><span class="linenos">2026</span></a><span class="k">class</span> <span class="nc">CopyGrantsProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="CopyGrantsProperty-2027"><a href="#CopyGrantsProperty-2027"><span class="linenos">2027</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
</span></pre></div>
@@ -30585,6 +32124,7 @@ Otherwise, this resets the expression.</li>
<dd id="CopyGrantsProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="CopyGrantsProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="CopyGrantsProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="CopyGrantsProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="CopyGrantsProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="CopyGrantsProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="CopyGrantsProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -30605,6 +32145,7 @@ Otherwise, this resets the expression.</li>
<dd id="CopyGrantsProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="CopyGrantsProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="CopyGrantsProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="CopyGrantsProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="CopyGrantsProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="CopyGrantsProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="CopyGrantsProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -30626,6 +32167,7 @@ Otherwise, this resets the expression.</li>
<dd id="CopyGrantsProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="CopyGrantsProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="CopyGrantsProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="CopyGrantsProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -30642,14 +32184,14 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#DataBlocksizeProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DataBlocksizeProperty-2017"><a href="#DataBlocksizeProperty-2017"><span class="linenos">2017</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-2018"><a href="#DataBlocksizeProperty-2018"><span class="linenos">2018</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="DataBlocksizeProperty-2019"><a href="#DataBlocksizeProperty-2019"><span class="linenos">2019</span></a> <span class="s2">&quot;size&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="DataBlocksizeProperty-2020"><a href="#DataBlocksizeProperty-2020"><span class="linenos">2020</span></a> <span class="s2">&quot;units&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="DataBlocksizeProperty-2021"><a href="#DataBlocksizeProperty-2021"><span class="linenos">2021</span></a> <span class="s2">&quot;minimum&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="DataBlocksizeProperty-2022"><a href="#DataBlocksizeProperty-2022"><span class="linenos">2022</span></a> <span class="s2">&quot;maximum&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="DataBlocksizeProperty-2023"><a href="#DataBlocksizeProperty-2023"><span class="linenos">2023</span></a> <span class="s2">&quot;default&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="DataBlocksizeProperty-2024"><a href="#DataBlocksizeProperty-2024"><span class="linenos">2024</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DataBlocksizeProperty-2030"><a href="#DataBlocksizeProperty-2030"><span class="linenos">2030</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-2031"><a href="#DataBlocksizeProperty-2031"><span class="linenos">2031</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="DataBlocksizeProperty-2032"><a href="#DataBlocksizeProperty-2032"><span class="linenos">2032</span></a> <span class="s2">&quot;size&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="DataBlocksizeProperty-2033"><a href="#DataBlocksizeProperty-2033"><span class="linenos">2033</span></a> <span class="s2">&quot;units&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="DataBlocksizeProperty-2034"><a href="#DataBlocksizeProperty-2034"><span class="linenos">2034</span></a> <span class="s2">&quot;minimum&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="DataBlocksizeProperty-2035"><a href="#DataBlocksizeProperty-2035"><span class="linenos">2035</span></a> <span class="s2">&quot;maximum&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="DataBlocksizeProperty-2036"><a href="#DataBlocksizeProperty-2036"><span class="linenos">2036</span></a> <span class="s2">&quot;default&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="DataBlocksizeProperty-2037"><a href="#DataBlocksizeProperty-2037"><span class="linenos">2037</span></a> <span class="p">}</span>
</span></pre></div>
@@ -30704,6 +32246,7 @@ Otherwise, this resets the expression.</li>
<dd id="DataBlocksizeProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DataBlocksizeProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="DataBlocksizeProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="DataBlocksizeProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="DataBlocksizeProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="DataBlocksizeProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DataBlocksizeProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -30724,6 +32267,7 @@ Otherwise, this resets the expression.</li>
<dd id="DataBlocksizeProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DataBlocksizeProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DataBlocksizeProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="DataBlocksizeProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="DataBlocksizeProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DataBlocksizeProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DataBlocksizeProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -30745,6 +32289,7 @@ Otherwise, this resets the expression.</li>
<dd id="DataBlocksizeProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="DataBlocksizeProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="DataBlocksizeProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="DataBlocksizeProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -30761,8 +32306,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-2027"><a href="#DefinerProperty-2027"><span class="linenos">2027</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-2028"><a href="#DefinerProperty-2028"><span class="linenos">2028</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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-2040"><a href="#DefinerProperty-2040"><span class="linenos">2040</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-2041"><a href="#DefinerProperty-2041"><span class="linenos">2041</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -30817,6 +32362,7 @@ Otherwise, this resets the expression.</li>
<dd id="DefinerProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DefinerProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="DefinerProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="DefinerProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="DefinerProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="DefinerProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DefinerProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -30837,6 +32383,7 @@ Otherwise, this resets the expression.</li>
<dd id="DefinerProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DefinerProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DefinerProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="DefinerProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="DefinerProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DefinerProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DefinerProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -30858,6 +32405,7 @@ Otherwise, this resets the expression.</li>
<dd id="DefinerProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="DefinerProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="DefinerProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="DefinerProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -30874,8 +32422,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-2031"><a href="#DistKeyProperty-2031"><span class="linenos">2031</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-2032"><a href="#DistKeyProperty-2032"><span class="linenos">2032</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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-2044"><a href="#DistKeyProperty-2044"><span class="linenos">2044</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-2045"><a href="#DistKeyProperty-2045"><span class="linenos">2045</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -30930,6 +32478,7 @@ Otherwise, this resets the expression.</li>
<dd id="DistKeyProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DistKeyProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="DistKeyProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="DistKeyProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="DistKeyProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="DistKeyProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DistKeyProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -30950,6 +32499,7 @@ Otherwise, this resets the expression.</li>
<dd id="DistKeyProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DistKeyProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DistKeyProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="DistKeyProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="DistKeyProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DistKeyProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DistKeyProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -30971,6 +32521,7 @@ Otherwise, this resets the expression.</li>
<dd id="DistKeyProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="DistKeyProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="DistKeyProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="DistKeyProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -30987,8 +32538,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-2035"><a href="#DistStyleProperty-2035"><span class="linenos">2035</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-2036"><a href="#DistStyleProperty-2036"><span class="linenos">2036</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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-2048"><a href="#DistStyleProperty-2048"><span class="linenos">2048</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-2049"><a href="#DistStyleProperty-2049"><span class="linenos">2049</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -31043,6 +32594,7 @@ Otherwise, this resets the expression.</li>
<dd id="DistStyleProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DistStyleProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="DistStyleProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="DistStyleProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="DistStyleProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="DistStyleProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DistStyleProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -31063,6 +32615,7 @@ Otherwise, this resets the expression.</li>
<dd id="DistStyleProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DistStyleProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DistStyleProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="DistStyleProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="DistStyleProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DistStyleProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DistStyleProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -31084,6 +32637,7 @@ Otherwise, this resets the expression.</li>
<dd id="DistStyleProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="DistStyleProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="DistStyleProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="DistStyleProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -31100,8 +32654,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-2039"><a href="#EngineProperty-2039"><span class="linenos">2039</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-2040"><a href="#EngineProperty-2040"><span class="linenos">2040</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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-2052"><a href="#EngineProperty-2052"><span class="linenos">2052</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-2053"><a href="#EngineProperty-2053"><span class="linenos">2053</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -31156,6 +32710,7 @@ Otherwise, this resets the expression.</li>
<dd id="EngineProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="EngineProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="EngineProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="EngineProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="EngineProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="EngineProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="EngineProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -31176,6 +32731,7 @@ Otherwise, this resets the expression.</li>
<dd id="EngineProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="EngineProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="EngineProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="EngineProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="EngineProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="EngineProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="EngineProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -31197,6 +32753,7 @@ Otherwise, this resets the expression.</li>
<dd id="EngineProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="EngineProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="EngineProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="EngineProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -31213,8 +32770,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#HeapProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="HeapProperty-2043"><a href="#HeapProperty-2043"><span class="linenos">2043</span></a><span class="k">class</span> <span class="nc">HeapProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="HeapProperty-2044"><a href="#HeapProperty-2044"><span class="linenos">2044</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="HeapProperty-2056"><a href="#HeapProperty-2056"><span class="linenos">2056</span></a><span class="k">class</span> <span class="nc">HeapProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="HeapProperty-2057"><a href="#HeapProperty-2057"><span class="linenos">2057</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
</span></pre></div>
@@ -31269,6 +32826,7 @@ Otherwise, this resets the expression.</li>
<dd id="HeapProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="HeapProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="HeapProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="HeapProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="HeapProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="HeapProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="HeapProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -31289,6 +32847,7 @@ Otherwise, this resets the expression.</li>
<dd id="HeapProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="HeapProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="HeapProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="HeapProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="HeapProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="HeapProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="HeapProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -31310,6 +32869,7 @@ Otherwise, this resets the expression.</li>
<dd id="HeapProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="HeapProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="HeapProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="HeapProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -31326,8 +32886,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#ToTableProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ToTableProperty-2047"><a href="#ToTableProperty-2047"><span class="linenos">2047</span></a><span class="k">class</span> <span class="nc">ToTableProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="ToTableProperty-2048"><a href="#ToTableProperty-2048"><span class="linenos">2048</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ToTableProperty-2060"><a href="#ToTableProperty-2060"><span class="linenos">2060</span></a><span class="k">class</span> <span class="nc">ToTableProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="ToTableProperty-2061"><a href="#ToTableProperty-2061"><span class="linenos">2061</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -31382,6 +32942,7 @@ Otherwise, this resets the expression.</li>
<dd id="ToTableProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ToTableProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="ToTableProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="ToTableProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="ToTableProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="ToTableProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ToTableProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -31402,6 +32963,7 @@ Otherwise, this resets the expression.</li>
<dd id="ToTableProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ToTableProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ToTableProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="ToTableProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="ToTableProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ToTableProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ToTableProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -31423,6 +32985,7 @@ Otherwise, this resets the expression.</li>
<dd id="ToTableProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="ToTableProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="ToTableProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="ToTableProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -31439,8 +33002,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-2051"><a href="#ExecuteAsProperty-2051"><span class="linenos">2051</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-2052"><a href="#ExecuteAsProperty-2052"><span class="linenos">2052</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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-2064"><a href="#ExecuteAsProperty-2064"><span class="linenos">2064</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-2065"><a href="#ExecuteAsProperty-2065"><span class="linenos">2065</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -31495,6 +33058,7 @@ Otherwise, this resets the expression.</li>
<dd id="ExecuteAsProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ExecuteAsProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="ExecuteAsProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="ExecuteAsProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="ExecuteAsProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="ExecuteAsProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ExecuteAsProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -31515,6 +33079,7 @@ Otherwise, this resets the expression.</li>
<dd id="ExecuteAsProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ExecuteAsProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ExecuteAsProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="ExecuteAsProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="ExecuteAsProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ExecuteAsProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ExecuteAsProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -31536,6 +33101,7 @@ Otherwise, this resets the expression.</li>
<dd id="ExecuteAsProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="ExecuteAsProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="ExecuteAsProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="ExecuteAsProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -31552,8 +33118,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-2055"><a href="#ExternalProperty-2055"><span class="linenos">2055</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-2056"><a href="#ExternalProperty-2056"><span class="linenos">2056</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ExternalProperty-2068"><a href="#ExternalProperty-2068"><span class="linenos">2068</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-2069"><a href="#ExternalProperty-2069"><span class="linenos">2069</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -31608,6 +33174,7 @@ Otherwise, this resets the expression.</li>
<dd id="ExternalProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ExternalProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="ExternalProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="ExternalProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="ExternalProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="ExternalProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ExternalProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -31628,6 +33195,7 @@ Otherwise, this resets the expression.</li>
<dd id="ExternalProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ExternalProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ExternalProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="ExternalProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="ExternalProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ExternalProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ExternalProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -31649,6 +33217,7 @@ Otherwise, this resets the expression.</li>
<dd id="ExternalProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="ExternalProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="ExternalProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="ExternalProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -31665,8 +33234,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-2059"><a href="#FallbackProperty-2059"><span class="linenos">2059</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-2060"><a href="#FallbackProperty-2060"><span class="linenos">2060</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-2072"><a href="#FallbackProperty-2072"><span class="linenos">2072</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-2073"><a href="#FallbackProperty-2073"><span class="linenos">2073</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>
@@ -31721,6 +33290,7 @@ Otherwise, this resets the expression.</li>
<dd id="FallbackProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="FallbackProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="FallbackProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="FallbackProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="FallbackProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="FallbackProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="FallbackProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -31741,6 +33311,7 @@ Otherwise, this resets the expression.</li>
<dd id="FallbackProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="FallbackProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="FallbackProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="FallbackProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="FallbackProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="FallbackProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="FallbackProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -31762,6 +33333,7 @@ Otherwise, this resets the expression.</li>
<dd id="FallbackProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="FallbackProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="FallbackProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="FallbackProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -31778,8 +33350,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-2063"><a href="#FileFormatProperty-2063"><span class="linenos">2063</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-2064"><a href="#FileFormatProperty-2064"><span class="linenos">2064</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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-2076"><a href="#FileFormatProperty-2076"><span class="linenos">2076</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-2077"><a href="#FileFormatProperty-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;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -31834,6 +33406,7 @@ Otherwise, this resets the expression.</li>
<dd id="FileFormatProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="FileFormatProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="FileFormatProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="FileFormatProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="FileFormatProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="FileFormatProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="FileFormatProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -31854,6 +33427,7 @@ Otherwise, this resets the expression.</li>
<dd id="FileFormatProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="FileFormatProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="FileFormatProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="FileFormatProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="FileFormatProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="FileFormatProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="FileFormatProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -31875,6 +33449,7 @@ Otherwise, this resets the expression.</li>
<dd id="FileFormatProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="FileFormatProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="FileFormatProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="FileFormatProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -31891,8 +33466,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-2067"><a href="#FreespaceProperty-2067"><span class="linenos">2067</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-2068"><a href="#FreespaceProperty-2068"><span class="linenos">2068</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-2080"><a href="#FreespaceProperty-2080"><span class="linenos">2080</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-2081"><a href="#FreespaceProperty-2081"><span class="linenos">2081</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -31947,6 +33522,7 @@ Otherwise, this resets the expression.</li>
<dd id="FreespaceProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="FreespaceProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="FreespaceProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="FreespaceProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="FreespaceProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="FreespaceProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="FreespaceProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -31967,6 +33543,7 @@ Otherwise, this resets the expression.</li>
<dd id="FreespaceProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="FreespaceProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="FreespaceProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="FreespaceProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="FreespaceProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="FreespaceProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="FreespaceProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -31988,6 +33565,7 @@ Otherwise, this resets the expression.</li>
<dd id="FreespaceProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="FreespaceProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="FreespaceProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="FreespaceProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -32004,8 +33582,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#InputModelProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="InputModelProperty-2071"><a href="#InputModelProperty-2071"><span class="linenos">2071</span></a><span class="k">class</span> <span class="nc">InputModelProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="InputModelProperty-2072"><a href="#InputModelProperty-2072"><span class="linenos">2072</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="InputModelProperty-2084"><a href="#InputModelProperty-2084"><span class="linenos">2084</span></a><span class="k">class</span> <span class="nc">InputModelProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="InputModelProperty-2085"><a href="#InputModelProperty-2085"><span class="linenos">2085</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -32060,6 +33638,7 @@ Otherwise, this resets the expression.</li>
<dd id="InputModelProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="InputModelProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="InputModelProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="InputModelProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="InputModelProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="InputModelProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="InputModelProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -32080,6 +33659,7 @@ Otherwise, this resets the expression.</li>
<dd id="InputModelProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="InputModelProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="InputModelProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="InputModelProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="InputModelProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="InputModelProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="InputModelProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -32101,6 +33681,7 @@ Otherwise, this resets the expression.</li>
<dd id="InputModelProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="InputModelProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="InputModelProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="InputModelProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -32117,8 +33698,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#OutputModelProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="OutputModelProperty-2075"><a href="#OutputModelProperty-2075"><span class="linenos">2075</span></a><span class="k">class</span> <span class="nc">OutputModelProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="OutputModelProperty-2076"><a href="#OutputModelProperty-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;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="OutputModelProperty-2088"><a href="#OutputModelProperty-2088"><span class="linenos">2088</span></a><span class="k">class</span> <span class="nc">OutputModelProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="OutputModelProperty-2089"><a href="#OutputModelProperty-2089"><span class="linenos">2089</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -32173,6 +33754,7 @@ Otherwise, this resets the expression.</li>
<dd id="OutputModelProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="OutputModelProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="OutputModelProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="OutputModelProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="OutputModelProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="OutputModelProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="OutputModelProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -32193,6 +33775,7 @@ Otherwise, this resets the expression.</li>
<dd id="OutputModelProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="OutputModelProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="OutputModelProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="OutputModelProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="OutputModelProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="OutputModelProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="OutputModelProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -32214,6 +33797,7 @@ Otherwise, this resets the expression.</li>
<dd id="OutputModelProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="OutputModelProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="OutputModelProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="OutputModelProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -32230,14 +33814,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-2079"><a href="#IsolatedLoadingProperty-2079"><span class="linenos">2079</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-2080"><a href="#IsolatedLoadingProperty-2080"><span class="linenos">2080</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="IsolatedLoadingProperty-2081"><a href="#IsolatedLoadingProperty-2081"><span class="linenos">2081</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-2082"><a href="#IsolatedLoadingProperty-2082"><span class="linenos">2082</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-2083"><a href="#IsolatedLoadingProperty-2083"><span class="linenos">2083</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-2084"><a href="#IsolatedLoadingProperty-2084"><span class="linenos">2084</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-2085"><a href="#IsolatedLoadingProperty-2085"><span class="linenos">2085</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-2086"><a href="#IsolatedLoadingProperty-2086"><span class="linenos">2086</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="IsolatedLoadingProperty-2092"><a href="#IsolatedLoadingProperty-2092"><span class="linenos">2092</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-2093"><a href="#IsolatedLoadingProperty-2093"><span class="linenos">2093</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="IsolatedLoadingProperty-2094"><a href="#IsolatedLoadingProperty-2094"><span class="linenos">2094</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-2095"><a href="#IsolatedLoadingProperty-2095"><span class="linenos">2095</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-2096"><a href="#IsolatedLoadingProperty-2096"><span class="linenos">2096</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-2097"><a href="#IsolatedLoadingProperty-2097"><span class="linenos">2097</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-2098"><a href="#IsolatedLoadingProperty-2098"><span class="linenos">2098</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-2099"><a href="#IsolatedLoadingProperty-2099"><span class="linenos">2099</span></a> <span class="p">}</span>
</span></pre></div>
@@ -32292,6 +33876,7 @@ Otherwise, this resets the expression.</li>
<dd id="IsolatedLoadingProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="IsolatedLoadingProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="IsolatedLoadingProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="IsolatedLoadingProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="IsolatedLoadingProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="IsolatedLoadingProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="IsolatedLoadingProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -32312,6 +33897,7 @@ Otherwise, this resets the expression.</li>
<dd id="IsolatedLoadingProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="IsolatedLoadingProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="IsolatedLoadingProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="IsolatedLoadingProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="IsolatedLoadingProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="IsolatedLoadingProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="IsolatedLoadingProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -32333,6 +33919,7 @@ Otherwise, this resets the expression.</li>
<dd id="IsolatedLoadingProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="IsolatedLoadingProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="IsolatedLoadingProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="IsolatedLoadingProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -32349,14 +33936,14 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#JournalProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JournalProperty-2089"><a href="#JournalProperty-2089"><span class="linenos">2089</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-2090"><a href="#JournalProperty-2090"><span class="linenos">2090</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="JournalProperty-2091"><a href="#JournalProperty-2091"><span class="linenos">2091</span></a> <span class="s2">&quot;no&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JournalProperty-2092"><a href="#JournalProperty-2092"><span class="linenos">2092</span></a> <span class="s2">&quot;dual&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JournalProperty-2093"><a href="#JournalProperty-2093"><span class="linenos">2093</span></a> <span class="s2">&quot;before&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JournalProperty-2094"><a href="#JournalProperty-2094"><span class="linenos">2094</span></a> <span class="s2">&quot;local&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JournalProperty-2095"><a href="#JournalProperty-2095"><span class="linenos">2095</span></a> <span class="s2">&quot;after&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JournalProperty-2096"><a href="#JournalProperty-2096"><span class="linenos">2096</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="JournalProperty-2102"><a href="#JournalProperty-2102"><span class="linenos">2102</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-2103"><a href="#JournalProperty-2103"><span class="linenos">2103</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="JournalProperty-2104"><a href="#JournalProperty-2104"><span class="linenos">2104</span></a> <span class="s2">&quot;no&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JournalProperty-2105"><a href="#JournalProperty-2105"><span class="linenos">2105</span></a> <span class="s2">&quot;dual&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JournalProperty-2106"><a href="#JournalProperty-2106"><span class="linenos">2106</span></a> <span class="s2">&quot;before&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JournalProperty-2107"><a href="#JournalProperty-2107"><span class="linenos">2107</span></a> <span class="s2">&quot;local&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JournalProperty-2108"><a href="#JournalProperty-2108"><span class="linenos">2108</span></a> <span class="s2">&quot;after&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JournalProperty-2109"><a href="#JournalProperty-2109"><span class="linenos">2109</span></a> <span class="p">}</span>
</span></pre></div>
@@ -32411,6 +33998,7 @@ Otherwise, this resets the expression.</li>
<dd id="JournalProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="JournalProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="JournalProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="JournalProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="JournalProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="JournalProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="JournalProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -32431,6 +34019,7 @@ Otherwise, this resets the expression.</li>
<dd id="JournalProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="JournalProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="JournalProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="JournalProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="JournalProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="JournalProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="JournalProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -32452,6 +34041,7 @@ Otherwise, this resets the expression.</li>
<dd id="JournalProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="JournalProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="JournalProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="JournalProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -32468,8 +34058,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-2099"><a href="#LanguageProperty-2099"><span class="linenos">2099</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-2100"><a href="#LanguageProperty-2100"><span class="linenos">2100</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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-2112"><a href="#LanguageProperty-2112"><span class="linenos">2112</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-2113"><a href="#LanguageProperty-2113"><span class="linenos">2113</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -32524,6 +34114,7 @@ Otherwise, this resets the expression.</li>
<dd id="LanguageProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="LanguageProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="LanguageProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="LanguageProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="LanguageProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="LanguageProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="LanguageProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -32544,6 +34135,7 @@ Otherwise, this resets the expression.</li>
<dd id="LanguageProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="LanguageProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="LanguageProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="LanguageProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="LanguageProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="LanguageProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="LanguageProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -32565,6 +34157,7 @@ Otherwise, this resets the expression.</li>
<dd id="LanguageProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="LanguageProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="LanguageProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="LanguageProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -32581,8 +34174,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#ClusteredByProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ClusteredByProperty-2104"><a href="#ClusteredByProperty-2104"><span class="linenos">2104</span></a><span class="k">class</span> <span class="nc">ClusteredByProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="ClusteredByProperty-2105"><a href="#ClusteredByProperty-2105"><span class="linenos">2105</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;sorted_by&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;buckets&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ClusteredByProperty-2117"><a href="#ClusteredByProperty-2117"><span class="linenos">2117</span></a><span class="k">class</span> <span class="nc">ClusteredByProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="ClusteredByProperty-2118"><a href="#ClusteredByProperty-2118"><span class="linenos">2118</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;sorted_by&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;buckets&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -32637,6 +34230,7 @@ Otherwise, this resets the expression.</li>
<dd id="ClusteredByProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ClusteredByProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="ClusteredByProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="ClusteredByProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="ClusteredByProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="ClusteredByProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ClusteredByProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -32657,6 +34251,7 @@ Otherwise, this resets the expression.</li>
<dd id="ClusteredByProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ClusteredByProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ClusteredByProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="ClusteredByProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="ClusteredByProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ClusteredByProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ClusteredByProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -32678,6 +34273,7 @@ Otherwise, this resets the expression.</li>
<dd id="ClusteredByProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="ClusteredByProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="ClusteredByProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="ClusteredByProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -32694,8 +34290,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#DictProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DictProperty-2108"><a href="#DictProperty-2108"><span class="linenos">2108</span></a><span class="k">class</span> <span class="nc">DictProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="DictProperty-2109"><a href="#DictProperty-2109"><span class="linenos">2109</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;settings&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DictProperty-2121"><a href="#DictProperty-2121"><span class="linenos">2121</span></a><span class="k">class</span> <span class="nc">DictProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="DictProperty-2122"><a href="#DictProperty-2122"><span class="linenos">2122</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;settings&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -32750,6 +34346,7 @@ Otherwise, this resets the expression.</li>
<dd id="DictProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DictProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="DictProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="DictProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="DictProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="DictProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DictProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -32770,6 +34367,7 @@ Otherwise, this resets the expression.</li>
<dd id="DictProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DictProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DictProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="DictProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="DictProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DictProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DictProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -32791,6 +34389,7 @@ Otherwise, this resets the expression.</li>
<dd id="DictProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="DictProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="DictProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="DictProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -32807,8 +34406,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#DictSubProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DictSubProperty-2112"><a href="#DictSubProperty-2112"><span class="linenos">2112</span></a><span class="k">class</span> <span class="nc">DictSubProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="DictSubProperty-2113"><a href="#DictSubProperty-2113"><span class="linenos">2113</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DictSubProperty-2125"><a href="#DictSubProperty-2125"><span class="linenos">2125</span></a><span class="k">class</span> <span class="nc">DictSubProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="DictSubProperty-2126"><a href="#DictSubProperty-2126"><span class="linenos">2126</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -32851,6 +34450,7 @@ Otherwise, this resets the expression.</li>
<dd id="DictSubProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DictSubProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="DictSubProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="DictSubProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="DictSubProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="DictSubProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DictSubProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -32871,6 +34471,7 @@ Otherwise, this resets the expression.</li>
<dd id="DictSubProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DictSubProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DictSubProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="DictSubProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="DictSubProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DictSubProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DictSubProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -32892,6 +34493,7 @@ Otherwise, this resets the expression.</li>
<dd id="DictSubProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="DictSubProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="DictSubProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="DictSubProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Property">Property</a></dt>
@@ -32912,8 +34514,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#DictRange"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DictRange-2116"><a href="#DictRange-2116"><span class="linenos">2116</span></a><span class="k">class</span> <span class="nc">DictRange</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="DictRange-2117"><a href="#DictRange-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;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;min&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;max&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DictRange-2129"><a href="#DictRange-2129"><span class="linenos">2129</span></a><span class="k">class</span> <span class="nc">DictRange</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="DictRange-2130"><a href="#DictRange-2130"><span class="linenos">2130</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;min&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;max&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -32968,6 +34570,7 @@ Otherwise, this resets the expression.</li>
<dd id="DictRange.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DictRange.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="DictRange.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="DictRange.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="DictRange.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="DictRange.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DictRange.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -32988,6 +34591,7 @@ Otherwise, this resets the expression.</li>
<dd id="DictRange.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DictRange.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DictRange.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="DictRange.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="DictRange.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DictRange.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DictRange.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -33009,6 +34613,7 @@ Otherwise, this resets the expression.</li>
<dd id="DictRange.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="DictRange.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="DictRange.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="DictRange.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -33025,8 +34630,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#OnCluster"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="OnCluster-2122"><a href="#OnCluster-2122"><span class="linenos">2122</span></a><span class="k">class</span> <span class="nc">OnCluster</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="OnCluster-2123"><a href="#OnCluster-2123"><span class="linenos">2123</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="OnCluster-2135"><a href="#OnCluster-2135"><span class="linenos">2135</span></a><span class="k">class</span> <span class="nc">OnCluster</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="OnCluster-2136"><a href="#OnCluster-2136"><span class="linenos">2136</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -33081,6 +34686,7 @@ Otherwise, this resets the expression.</li>
<dd id="OnCluster.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="OnCluster.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="OnCluster.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="OnCluster.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="OnCluster.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="OnCluster.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="OnCluster.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -33101,6 +34707,7 @@ Otherwise, this resets the expression.</li>
<dd id="OnCluster.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="OnCluster.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="OnCluster.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="OnCluster.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="OnCluster.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="OnCluster.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="OnCluster.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -33122,6 +34729,7 @@ Otherwise, this resets the expression.</li>
<dd id="OnCluster.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="OnCluster.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="OnCluster.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="OnCluster.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -33138,8 +34746,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-2126"><a href="#LikeProperty-2126"><span class="linenos">2126</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-2127"><a href="#LikeProperty-2127"><span class="linenos">2127</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-2139"><a href="#LikeProperty-2139"><span class="linenos">2139</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-2140"><a href="#LikeProperty-2140"><span class="linenos">2140</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -33194,6 +34802,7 @@ Otherwise, this resets the expression.</li>
<dd id="LikeProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="LikeProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="LikeProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="LikeProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="LikeProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="LikeProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="LikeProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -33214,6 +34823,7 @@ Otherwise, this resets the expression.</li>
<dd id="LikeProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="LikeProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="LikeProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="LikeProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="LikeProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="LikeProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="LikeProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -33235,6 +34845,7 @@ Otherwise, this resets the expression.</li>
<dd id="LikeProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="LikeProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="LikeProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="LikeProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -33251,8 +34862,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-2130"><a href="#LocationProperty-2130"><span class="linenos">2130</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-2131"><a href="#LocationProperty-2131"><span class="linenos">2131</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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-2143"><a href="#LocationProperty-2143"><span class="linenos">2143</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-2144"><a href="#LocationProperty-2144"><span class="linenos">2144</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -33307,6 +34918,7 @@ Otherwise, this resets the expression.</li>
<dd id="LocationProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="LocationProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="LocationProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="LocationProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="LocationProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="LocationProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="LocationProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -33327,6 +34939,7 @@ Otherwise, this resets the expression.</li>
<dd id="LocationProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="LocationProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="LocationProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="LocationProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="LocationProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="LocationProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="LocationProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -33348,6 +34961,7 @@ Otherwise, this resets the expression.</li>
<dd id="LocationProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="LocationProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="LocationProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="LocationProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -33364,14 +34978,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-2134"><a href="#LockingProperty-2134"><span class="linenos">2134</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-2135"><a href="#LockingProperty-2135"><span class="linenos">2135</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="LockingProperty-2136"><a href="#LockingProperty-2136"><span class="linenos">2136</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-2137"><a href="#LockingProperty-2137"><span class="linenos">2137</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-2138"><a href="#LockingProperty-2138"><span class="linenos">2138</span></a> <span class="s2">&quot;for_or_in&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="LockingProperty-2139"><a href="#LockingProperty-2139"><span class="linenos">2139</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-2140"><a href="#LockingProperty-2140"><span class="linenos">2140</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-2141"><a href="#LockingProperty-2141"><span class="linenos">2141</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="LockingProperty-2147"><a href="#LockingProperty-2147"><span class="linenos">2147</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-2148"><a href="#LockingProperty-2148"><span class="linenos">2148</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="LockingProperty-2149"><a href="#LockingProperty-2149"><span class="linenos">2149</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-2150"><a href="#LockingProperty-2150"><span class="linenos">2150</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-2151"><a href="#LockingProperty-2151"><span class="linenos">2151</span></a> <span class="s2">&quot;for_or_in&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="LockingProperty-2152"><a href="#LockingProperty-2152"><span class="linenos">2152</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-2153"><a href="#LockingProperty-2153"><span class="linenos">2153</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-2154"><a href="#LockingProperty-2154"><span class="linenos">2154</span></a> <span class="p">}</span>
</span></pre></div>
@@ -33426,6 +35040,7 @@ Otherwise, this resets the expression.</li>
<dd id="LockingProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="LockingProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="LockingProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="LockingProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="LockingProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="LockingProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="LockingProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -33446,6 +35061,7 @@ Otherwise, this resets the expression.</li>
<dd id="LockingProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="LockingProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="LockingProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="LockingProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="LockingProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="LockingProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="LockingProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -33467,6 +35083,7 @@ Otherwise, this resets the expression.</li>
<dd id="LockingProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="LockingProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="LockingProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="LockingProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -33483,8 +35100,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-2144"><a href="#LogProperty-2144"><span class="linenos">2144</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-2145"><a href="#LogProperty-2145"><span class="linenos">2145</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-2157"><a href="#LogProperty-2157"><span class="linenos">2157</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-2158"><a href="#LogProperty-2158"><span class="linenos">2158</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>
@@ -33539,6 +35156,7 @@ Otherwise, this resets the expression.</li>
<dd id="LogProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="LogProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="LogProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="LogProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="LogProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="LogProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="LogProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -33559,6 +35177,7 @@ Otherwise, this resets the expression.</li>
<dd id="LogProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="LogProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="LogProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="LogProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="LogProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="LogProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="LogProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -33580,6 +35199,7 @@ Otherwise, this resets the expression.</li>
<dd id="LogProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="LogProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="LogProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="LogProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -33596,8 +35216,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-2148"><a href="#MaterializedProperty-2148"><span class="linenos">2148</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-2149"><a href="#MaterializedProperty-2149"><span class="linenos">2149</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-2161"><a href="#MaterializedProperty-2161"><span class="linenos">2161</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-2162"><a href="#MaterializedProperty-2162"><span class="linenos">2162</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -33652,6 +35272,7 @@ Otherwise, this resets the expression.</li>
<dd id="MaterializedProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="MaterializedProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="MaterializedProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="MaterializedProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="MaterializedProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="MaterializedProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="MaterializedProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -33672,6 +35293,7 @@ Otherwise, this resets the expression.</li>
<dd id="MaterializedProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="MaterializedProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="MaterializedProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="MaterializedProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="MaterializedProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="MaterializedProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="MaterializedProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -33693,6 +35315,7 @@ Otherwise, this resets the expression.</li>
<dd id="MaterializedProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="MaterializedProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="MaterializedProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="MaterializedProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -33709,8 +35332,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-2152"><a href="#MergeBlockRatioProperty-2152"><span class="linenos">2152</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-2153"><a href="#MergeBlockRatioProperty-2153"><span class="linenos">2153</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">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-2165"><a href="#MergeBlockRatioProperty-2165"><span class="linenos">2165</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-2166"><a href="#MergeBlockRatioProperty-2166"><span class="linenos">2166</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -33765,6 +35388,7 @@ Otherwise, this resets the expression.</li>
<dd id="MergeBlockRatioProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="MergeBlockRatioProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="MergeBlockRatioProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="MergeBlockRatioProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="MergeBlockRatioProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="MergeBlockRatioProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="MergeBlockRatioProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -33785,6 +35409,7 @@ Otherwise, this resets the expression.</li>
<dd id="MergeBlockRatioProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="MergeBlockRatioProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="MergeBlockRatioProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="MergeBlockRatioProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="MergeBlockRatioProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="MergeBlockRatioProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="MergeBlockRatioProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -33806,6 +35431,7 @@ Otherwise, this resets the expression.</li>
<dd id="MergeBlockRatioProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="MergeBlockRatioProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="MergeBlockRatioProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="MergeBlockRatioProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -33822,8 +35448,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-2156"><a href="#NoPrimaryIndexProperty-2156"><span class="linenos">2156</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-2157"><a href="#NoPrimaryIndexProperty-2157"><span class="linenos">2157</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="NoPrimaryIndexProperty-2169"><a href="#NoPrimaryIndexProperty-2169"><span class="linenos">2169</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-2170"><a href="#NoPrimaryIndexProperty-2170"><span class="linenos">2170</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
</span></pre></div>
@@ -33878,6 +35504,7 @@ Otherwise, this resets the expression.</li>
<dd id="NoPrimaryIndexProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="NoPrimaryIndexProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="NoPrimaryIndexProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="NoPrimaryIndexProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="NoPrimaryIndexProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="NoPrimaryIndexProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="NoPrimaryIndexProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -33898,6 +35525,7 @@ Otherwise, this resets the expression.</li>
<dd id="NoPrimaryIndexProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="NoPrimaryIndexProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="NoPrimaryIndexProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="NoPrimaryIndexProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="NoPrimaryIndexProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="NoPrimaryIndexProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="NoPrimaryIndexProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -33919,6 +35547,7 @@ Otherwise, this resets the expression.</li>
<dd id="NoPrimaryIndexProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="NoPrimaryIndexProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="NoPrimaryIndexProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="NoPrimaryIndexProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -33935,8 +35564,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#OnProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="OnProperty-2160"><a href="#OnProperty-2160"><span class="linenos">2160</span></a><span class="k">class</span> <span class="nc">OnProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="OnProperty-2161"><a href="#OnProperty-2161"><span class="linenos">2161</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="OnProperty-2173"><a href="#OnProperty-2173"><span class="linenos">2173</span></a><span class="k">class</span> <span class="nc">OnProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="OnProperty-2174"><a href="#OnProperty-2174"><span class="linenos">2174</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -33991,6 +35620,7 @@ Otherwise, this resets the expression.</li>
<dd id="OnProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="OnProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="OnProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="OnProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="OnProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="OnProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="OnProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -34011,6 +35641,7 @@ Otherwise, this resets the expression.</li>
<dd id="OnProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="OnProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="OnProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="OnProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="OnProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="OnProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="OnProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -34032,6 +35663,7 @@ Otherwise, this resets the expression.</li>
<dd id="OnProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="OnProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="OnProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="OnProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -34048,8 +35680,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-2164"><a href="#OnCommitProperty-2164"><span class="linenos">2164</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-2165"><a href="#OnCommitProperty-2165"><span class="linenos">2165</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;delete&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="OnCommitProperty-2177"><a href="#OnCommitProperty-2177"><span class="linenos">2177</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-2178"><a href="#OnCommitProperty-2178"><span class="linenos">2178</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;delete&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -34104,6 +35736,7 @@ Otherwise, this resets the expression.</li>
<dd id="OnCommitProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="OnCommitProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="OnCommitProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="OnCommitProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="OnCommitProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="OnCommitProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="OnCommitProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -34124,6 +35757,7 @@ Otherwise, this resets the expression.</li>
<dd id="OnCommitProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="OnCommitProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="OnCommitProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="OnCommitProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="OnCommitProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="OnCommitProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="OnCommitProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -34145,6 +35779,7 @@ Otherwise, this resets the expression.</li>
<dd id="OnCommitProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="OnCommitProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="OnCommitProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="OnCommitProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -34161,8 +35796,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-2168"><a href="#PartitionedByProperty-2168"><span class="linenos">2168</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-2169"><a href="#PartitionedByProperty-2169"><span class="linenos">2169</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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-2181"><a href="#PartitionedByProperty-2181"><span class="linenos">2181</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-2182"><a href="#PartitionedByProperty-2182"><span class="linenos">2182</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -34217,6 +35852,7 @@ Otherwise, this resets the expression.</li>
<dd id="PartitionedByProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="PartitionedByProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="PartitionedByProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="PartitionedByProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="PartitionedByProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="PartitionedByProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="PartitionedByProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -34237,6 +35873,7 @@ Otherwise, this resets the expression.</li>
<dd id="PartitionedByProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="PartitionedByProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="PartitionedByProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="PartitionedByProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="PartitionedByProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="PartitionedByProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="PartitionedByProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -34258,6 +35895,7 @@ Otherwise, this resets the expression.</li>
<dd id="PartitionedByProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="PartitionedByProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="PartitionedByProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="PartitionedByProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -34274,14 +35912,14 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#PartitionBoundSpec"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="PartitionBoundSpec-2173"><a href="#PartitionBoundSpec-2173"><span class="linenos">2173</span></a><span class="k">class</span> <span class="nc">PartitionBoundSpec</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="PartitionBoundSpec-2174"><a href="#PartitionBoundSpec-2174"><span class="linenos">2174</span></a> <span class="c1"># this -&gt; IN / MODULUS, expression -&gt; REMAINDER, from_expressions -&gt; FROM (...), to_expressions -&gt; TO (...)</span>
-</span><span id="PartitionBoundSpec-2175"><a href="#PartitionBoundSpec-2175"><span class="linenos">2175</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="PartitionBoundSpec-2176"><a href="#PartitionBoundSpec-2176"><span class="linenos">2176</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="PartitionBoundSpec-2177"><a href="#PartitionBoundSpec-2177"><span class="linenos">2177</span></a> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="PartitionBoundSpec-2178"><a href="#PartitionBoundSpec-2178"><span class="linenos">2178</span></a> <span class="s2">&quot;from_expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="PartitionBoundSpec-2179"><a href="#PartitionBoundSpec-2179"><span class="linenos">2179</span></a> <span class="s2">&quot;to_expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="PartitionBoundSpec-2180"><a href="#PartitionBoundSpec-2180"><span class="linenos">2180</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="PartitionBoundSpec-2186"><a href="#PartitionBoundSpec-2186"><span class="linenos">2186</span></a><span class="k">class</span> <span class="nc">PartitionBoundSpec</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="PartitionBoundSpec-2187"><a href="#PartitionBoundSpec-2187"><span class="linenos">2187</span></a> <span class="c1"># this -&gt; IN / MODULUS, expression -&gt; REMAINDER, from_expressions -&gt; FROM (...), to_expressions -&gt; TO (...)</span>
+</span><span id="PartitionBoundSpec-2188"><a href="#PartitionBoundSpec-2188"><span class="linenos">2188</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="PartitionBoundSpec-2189"><a href="#PartitionBoundSpec-2189"><span class="linenos">2189</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="PartitionBoundSpec-2190"><a href="#PartitionBoundSpec-2190"><span class="linenos">2190</span></a> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="PartitionBoundSpec-2191"><a href="#PartitionBoundSpec-2191"><span class="linenos">2191</span></a> <span class="s2">&quot;from_expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="PartitionBoundSpec-2192"><a href="#PartitionBoundSpec-2192"><span class="linenos">2192</span></a> <span class="s2">&quot;to_expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="PartitionBoundSpec-2193"><a href="#PartitionBoundSpec-2193"><span class="linenos">2193</span></a> <span class="p">}</span>
</span></pre></div>
@@ -34336,6 +35974,7 @@ Otherwise, this resets the expression.</li>
<dd id="PartitionBoundSpec.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="PartitionBoundSpec.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="PartitionBoundSpec.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="PartitionBoundSpec.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="PartitionBoundSpec.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="PartitionBoundSpec.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="PartitionBoundSpec.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -34356,6 +35995,7 @@ Otherwise, this resets the expression.</li>
<dd id="PartitionBoundSpec.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="PartitionBoundSpec.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="PartitionBoundSpec.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="PartitionBoundSpec.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="PartitionBoundSpec.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="PartitionBoundSpec.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="PartitionBoundSpec.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -34377,6 +36017,7 @@ Otherwise, this resets the expression.</li>
<dd id="PartitionBoundSpec.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="PartitionBoundSpec.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="PartitionBoundSpec.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="PartitionBoundSpec.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -34393,9 +36034,9 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#PartitionedOfProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="PartitionedOfProperty-2183"><a href="#PartitionedOfProperty-2183"><span class="linenos">2183</span></a><span class="k">class</span> <span class="nc">PartitionedOfProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="PartitionedOfProperty-2184"><a href="#PartitionedOfProperty-2184"><span class="linenos">2184</span></a> <span class="c1"># this -&gt; parent_table (schema), expression -&gt; FOR VALUES ... / DEFAULT</span>
-</span><span id="PartitionedOfProperty-2185"><a href="#PartitionedOfProperty-2185"><span class="linenos">2185</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="PartitionedOfProperty-2196"><a href="#PartitionedOfProperty-2196"><span class="linenos">2196</span></a><span class="k">class</span> <span class="nc">PartitionedOfProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="PartitionedOfProperty-2197"><a href="#PartitionedOfProperty-2197"><span class="linenos">2197</span></a> <span class="c1"># this -&gt; parent_table (schema), expression -&gt; FOR VALUES ... / DEFAULT</span>
+</span><span id="PartitionedOfProperty-2198"><a href="#PartitionedOfProperty-2198"><span class="linenos">2198</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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>
@@ -34450,6 +36091,7 @@ Otherwise, this resets the expression.</li>
<dd id="PartitionedOfProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="PartitionedOfProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="PartitionedOfProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="PartitionedOfProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="PartitionedOfProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="PartitionedOfProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="PartitionedOfProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -34470,6 +36112,7 @@ Otherwise, this resets the expression.</li>
<dd id="PartitionedOfProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="PartitionedOfProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="PartitionedOfProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="PartitionedOfProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="PartitionedOfProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="PartitionedOfProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="PartitionedOfProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -34491,6 +36134,7 @@ Otherwise, this resets the expression.</li>
<dd id="PartitionedOfProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="PartitionedOfProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="PartitionedOfProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="PartitionedOfProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -34507,8 +36151,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#RemoteWithConnectionModelProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="RemoteWithConnectionModelProperty-2188"><a href="#RemoteWithConnectionModelProperty-2188"><span class="linenos">2188</span></a><span class="k">class</span> <span class="nc">RemoteWithConnectionModelProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="RemoteWithConnectionModelProperty-2189"><a href="#RemoteWithConnectionModelProperty-2189"><span class="linenos">2189</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="RemoteWithConnectionModelProperty-2201"><a href="#RemoteWithConnectionModelProperty-2201"><span class="linenos">2201</span></a><span class="k">class</span> <span class="nc">RemoteWithConnectionModelProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="RemoteWithConnectionModelProperty-2202"><a href="#RemoteWithConnectionModelProperty-2202"><span class="linenos">2202</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -34563,6 +36207,7 @@ Otherwise, this resets the expression.</li>
<dd id="RemoteWithConnectionModelProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="RemoteWithConnectionModelProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="RemoteWithConnectionModelProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="RemoteWithConnectionModelProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="RemoteWithConnectionModelProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="RemoteWithConnectionModelProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="RemoteWithConnectionModelProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -34583,6 +36228,7 @@ Otherwise, this resets the expression.</li>
<dd id="RemoteWithConnectionModelProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="RemoteWithConnectionModelProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="RemoteWithConnectionModelProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="RemoteWithConnectionModelProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="RemoteWithConnectionModelProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="RemoteWithConnectionModelProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="RemoteWithConnectionModelProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -34604,6 +36250,7 @@ Otherwise, this resets the expression.</li>
<dd id="RemoteWithConnectionModelProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="RemoteWithConnectionModelProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="RemoteWithConnectionModelProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="RemoteWithConnectionModelProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -34620,8 +36267,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-2192"><a href="#ReturnsProperty-2192"><span class="linenos">2192</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-2193"><a href="#ReturnsProperty-2193"><span class="linenos">2193</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-2205"><a href="#ReturnsProperty-2205"><span class="linenos">2205</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-2206"><a href="#ReturnsProperty-2206"><span class="linenos">2206</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">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>
@@ -34676,6 +36323,7 @@ Otherwise, this resets the expression.</li>
<dd id="ReturnsProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ReturnsProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="ReturnsProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="ReturnsProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="ReturnsProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="ReturnsProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ReturnsProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -34696,6 +36344,7 @@ Otherwise, this resets the expression.</li>
<dd id="ReturnsProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ReturnsProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ReturnsProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="ReturnsProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="ReturnsProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ReturnsProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ReturnsProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -34717,6 +36366,7 @@ Otherwise, this resets the expression.</li>
<dd id="ReturnsProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="ReturnsProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="ReturnsProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="ReturnsProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -34733,8 +36383,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#RowFormatProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="RowFormatProperty-2196"><a href="#RowFormatProperty-2196"><span class="linenos">2196</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-2197"><a href="#RowFormatProperty-2197"><span class="linenos">2197</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="RowFormatProperty-2209"><a href="#RowFormatProperty-2209"><span class="linenos">2209</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-2210"><a href="#RowFormatProperty-2210"><span class="linenos">2210</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -34789,6 +36439,7 @@ Otherwise, this resets the expression.</li>
<dd id="RowFormatProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="RowFormatProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="RowFormatProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="RowFormatProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="RowFormatProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="RowFormatProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="RowFormatProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -34809,6 +36460,7 @@ Otherwise, this resets the expression.</li>
<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.to_s" class="function"><a href="#Expression.to_s">to_s</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>
@@ -34830,6 +36482,7 @@ Otherwise, this resets the expression.</li>
<dd id="RowFormatProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="RowFormatProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="RowFormatProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="RowFormatProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -34846,17 +36499,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-2200"><a href="#RowFormatDelimitedProperty-2200"><span class="linenos">2200</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-2201"><a href="#RowFormatDelimitedProperty-2201"><span class="linenos">2201</span></a> <span class="c1"># https://cwiki.apache.org/confluence/display/hive/languagemanual+dml</span>
-</span><span id="RowFormatDelimitedProperty-2202"><a href="#RowFormatDelimitedProperty-2202"><span class="linenos">2202</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="RowFormatDelimitedProperty-2203"><a href="#RowFormatDelimitedProperty-2203"><span class="linenos">2203</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-2204"><a href="#RowFormatDelimitedProperty-2204"><span class="linenos">2204</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-2205"><a href="#RowFormatDelimitedProperty-2205"><span class="linenos">2205</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-2206"><a href="#RowFormatDelimitedProperty-2206"><span class="linenos">2206</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-2207"><a href="#RowFormatDelimitedProperty-2207"><span class="linenos">2207</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-2208"><a href="#RowFormatDelimitedProperty-2208"><span class="linenos">2208</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-2209"><a href="#RowFormatDelimitedProperty-2209"><span class="linenos">2209</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-2210"><a href="#RowFormatDelimitedProperty-2210"><span class="linenos">2210</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="RowFormatDelimitedProperty-2213"><a href="#RowFormatDelimitedProperty-2213"><span class="linenos">2213</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-2214"><a href="#RowFormatDelimitedProperty-2214"><span class="linenos">2214</span></a> <span class="c1"># https://cwiki.apache.org/confluence/display/hive/languagemanual+dml</span>
+</span><span id="RowFormatDelimitedProperty-2215"><a href="#RowFormatDelimitedProperty-2215"><span class="linenos">2215</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="RowFormatDelimitedProperty-2216"><a href="#RowFormatDelimitedProperty-2216"><span class="linenos">2216</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-2217"><a href="#RowFormatDelimitedProperty-2217"><span class="linenos">2217</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-2218"><a href="#RowFormatDelimitedProperty-2218"><span class="linenos">2218</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-2219"><a href="#RowFormatDelimitedProperty-2219"><span class="linenos">2219</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-2220"><a href="#RowFormatDelimitedProperty-2220"><span class="linenos">2220</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-2221"><a href="#RowFormatDelimitedProperty-2221"><span class="linenos">2221</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-2222"><a href="#RowFormatDelimitedProperty-2222"><span class="linenos">2222</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-2223"><a href="#RowFormatDelimitedProperty-2223"><span class="linenos">2223</span></a> <span class="p">}</span>
</span></pre></div>
@@ -34912,6 +36565,7 @@ Otherwise, this resets the expression.</li>
<dd id="RowFormatDelimitedProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="RowFormatDelimitedProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="RowFormatDelimitedProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="RowFormatDelimitedProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="RowFormatDelimitedProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="RowFormatDelimitedProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="RowFormatDelimitedProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -34932,6 +36586,7 @@ Otherwise, this resets the expression.</li>
<dd id="RowFormatDelimitedProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="RowFormatDelimitedProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="RowFormatDelimitedProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="RowFormatDelimitedProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="RowFormatDelimitedProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="RowFormatDelimitedProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="RowFormatDelimitedProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -34953,6 +36608,7 @@ Otherwise, this resets the expression.</li>
<dd id="RowFormatDelimitedProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="RowFormatDelimitedProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="RowFormatDelimitedProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="RowFormatDelimitedProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -34969,8 +36625,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-2213"><a href="#RowFormatSerdeProperty-2213"><span class="linenos">2213</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-2214"><a href="#RowFormatSerdeProperty-2214"><span class="linenos">2214</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;serde_properties&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="RowFormatSerdeProperty-2226"><a href="#RowFormatSerdeProperty-2226"><span class="linenos">2226</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-2227"><a href="#RowFormatSerdeProperty-2227"><span class="linenos">2227</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;serde_properties&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -35025,6 +36681,7 @@ Otherwise, this resets the expression.</li>
<dd id="RowFormatSerdeProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="RowFormatSerdeProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="RowFormatSerdeProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="RowFormatSerdeProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="RowFormatSerdeProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="RowFormatSerdeProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="RowFormatSerdeProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -35045,6 +36702,7 @@ Otherwise, this resets the expression.</li>
<dd id="RowFormatSerdeProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="RowFormatSerdeProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="RowFormatSerdeProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="RowFormatSerdeProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="RowFormatSerdeProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="RowFormatSerdeProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="RowFormatSerdeProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -35066,6 +36724,7 @@ Otherwise, this resets the expression.</li>
<dd id="RowFormatSerdeProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="RowFormatSerdeProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="RowFormatSerdeProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="RowFormatSerdeProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -35082,16 +36741,16 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#QueryTransform"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="QueryTransform-2218"><a href="#QueryTransform-2218"><span class="linenos">2218</span></a><span class="k">class</span> <span class="nc">QueryTransform</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="QueryTransform-2219"><a href="#QueryTransform-2219"><span class="linenos">2219</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="QueryTransform-2220"><a href="#QueryTransform-2220"><span class="linenos">2220</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="QueryTransform-2221"><a href="#QueryTransform-2221"><span class="linenos">2221</span></a> <span class="s2">&quot;command_script&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="QueryTransform-2222"><a href="#QueryTransform-2222"><span class="linenos">2222</span></a> <span class="s2">&quot;schema&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="QueryTransform-2223"><a href="#QueryTransform-2223"><span class="linenos">2223</span></a> <span class="s2">&quot;row_format_before&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="QueryTransform-2224"><a href="#QueryTransform-2224"><span class="linenos">2224</span></a> <span class="s2">&quot;record_writer&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="QueryTransform-2225"><a href="#QueryTransform-2225"><span class="linenos">2225</span></a> <span class="s2">&quot;row_format_after&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="QueryTransform-2226"><a href="#QueryTransform-2226"><span class="linenos">2226</span></a> <span class="s2">&quot;record_reader&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="QueryTransform-2227"><a href="#QueryTransform-2227"><span class="linenos">2227</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="QueryTransform-2231"><a href="#QueryTransform-2231"><span class="linenos">2231</span></a><span class="k">class</span> <span class="nc">QueryTransform</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="QueryTransform-2232"><a href="#QueryTransform-2232"><span class="linenos">2232</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="QueryTransform-2233"><a href="#QueryTransform-2233"><span class="linenos">2233</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="QueryTransform-2234"><a href="#QueryTransform-2234"><span class="linenos">2234</span></a> <span class="s2">&quot;command_script&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="QueryTransform-2235"><a href="#QueryTransform-2235"><span class="linenos">2235</span></a> <span class="s2">&quot;schema&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="QueryTransform-2236"><a href="#QueryTransform-2236"><span class="linenos">2236</span></a> <span class="s2">&quot;row_format_before&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="QueryTransform-2237"><a href="#QueryTransform-2237"><span class="linenos">2237</span></a> <span class="s2">&quot;record_writer&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="QueryTransform-2238"><a href="#QueryTransform-2238"><span class="linenos">2238</span></a> <span class="s2">&quot;row_format_after&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="QueryTransform-2239"><a href="#QueryTransform-2239"><span class="linenos">2239</span></a> <span class="s2">&quot;record_reader&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="QueryTransform-2240"><a href="#QueryTransform-2240"><span class="linenos">2240</span></a> <span class="p">}</span>
</span></pre></div>
@@ -35147,6 +36806,7 @@ Otherwise, this resets the expression.</li>
<dd id="QueryTransform.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="QueryTransform.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="QueryTransform.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="QueryTransform.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="QueryTransform.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="QueryTransform.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="QueryTransform.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -35167,6 +36827,7 @@ Otherwise, this resets the expression.</li>
<dd id="QueryTransform.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="QueryTransform.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="QueryTransform.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="QueryTransform.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="QueryTransform.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="QueryTransform.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="QueryTransform.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -35188,6 +36849,7 @@ Otherwise, this resets the expression.</li>
<dd id="QueryTransform.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="QueryTransform.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="QueryTransform.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="QueryTransform.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -35204,8 +36866,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#SampleProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SampleProperty-2230"><a href="#SampleProperty-2230"><span class="linenos">2230</span></a><span class="k">class</span> <span class="nc">SampleProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="SampleProperty-2231"><a href="#SampleProperty-2231"><span class="linenos">2231</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="SampleProperty-2243"><a href="#SampleProperty-2243"><span class="linenos">2243</span></a><span class="k">class</span> <span class="nc">SampleProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="SampleProperty-2244"><a href="#SampleProperty-2244"><span class="linenos">2244</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -35260,6 +36922,7 @@ Otherwise, this resets the expression.</li>
<dd id="SampleProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="SampleProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="SampleProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="SampleProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="SampleProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="SampleProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="SampleProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -35280,6 +36943,7 @@ Otherwise, this resets the expression.</li>
<dd id="SampleProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="SampleProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="SampleProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="SampleProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="SampleProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="SampleProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="SampleProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -35301,6 +36965,7 @@ Otherwise, this resets the expression.</li>
<dd id="SampleProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="SampleProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="SampleProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="SampleProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -35317,8 +36982,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-2234"><a href="#SchemaCommentProperty-2234"><span class="linenos">2234</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-2235"><a href="#SchemaCommentProperty-2235"><span class="linenos">2235</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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-2247"><a href="#SchemaCommentProperty-2247"><span class="linenos">2247</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-2248"><a href="#SchemaCommentProperty-2248"><span class="linenos">2248</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -35373,6 +37038,7 @@ Otherwise, this resets the expression.</li>
<dd id="SchemaCommentProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="SchemaCommentProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="SchemaCommentProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="SchemaCommentProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="SchemaCommentProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="SchemaCommentProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="SchemaCommentProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -35393,6 +37059,7 @@ Otherwise, this resets the expression.</li>
<dd id="SchemaCommentProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="SchemaCommentProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="SchemaCommentProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="SchemaCommentProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="SchemaCommentProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="SchemaCommentProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="SchemaCommentProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -35414,6 +37081,7 @@ Otherwise, this resets the expression.</li>
<dd id="SchemaCommentProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="SchemaCommentProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="SchemaCommentProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="SchemaCommentProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -35430,8 +37098,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-2238"><a href="#SerdeProperties-2238"><span class="linenos">2238</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-2239"><a href="#SerdeProperties-2239"><span class="linenos">2239</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-2251"><a href="#SerdeProperties-2251"><span class="linenos">2251</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-2252"><a href="#SerdeProperties-2252"><span class="linenos">2252</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>
@@ -35486,6 +37154,7 @@ Otherwise, this resets the expression.</li>
<dd id="SerdeProperties.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="SerdeProperties.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="SerdeProperties.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="SerdeProperties.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="SerdeProperties.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="SerdeProperties.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="SerdeProperties.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -35506,6 +37175,7 @@ Otherwise, this resets the expression.</li>
<dd id="SerdeProperties.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="SerdeProperties.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="SerdeProperties.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="SerdeProperties.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="SerdeProperties.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="SerdeProperties.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="SerdeProperties.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -35527,6 +37197,7 @@ Otherwise, this resets the expression.</li>
<dd id="SerdeProperties.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="SerdeProperties.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="SerdeProperties.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="SerdeProperties.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -35543,8 +37214,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-2242"><a href="#SetProperty-2242"><span class="linenos">2242</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-2243"><a href="#SetProperty-2243"><span class="linenos">2243</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-2255"><a href="#SetProperty-2255"><span class="linenos">2255</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-2256"><a href="#SetProperty-2256"><span class="linenos">2256</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>
@@ -35599,6 +37270,7 @@ Otherwise, this resets the expression.</li>
<dd id="SetProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="SetProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="SetProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="SetProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="SetProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="SetProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="SetProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -35619,6 +37291,7 @@ Otherwise, this resets the expression.</li>
<dd id="SetProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="SetProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="SetProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="SetProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="SetProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="SetProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="SetProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -35640,6 +37313,7 @@ Otherwise, this resets the expression.</li>
<dd id="SetProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="SetProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="SetProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="SetProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -35656,8 +37330,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#SettingsProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SettingsProperty-2246"><a href="#SettingsProperty-2246"><span class="linenos">2246</span></a><span class="k">class</span> <span class="nc">SettingsProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="SettingsProperty-2247"><a href="#SettingsProperty-2247"><span class="linenos">2247</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="SettingsProperty-2259"><a href="#SettingsProperty-2259"><span class="linenos">2259</span></a><span class="k">class</span> <span class="nc">SettingsProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="SettingsProperty-2260"><a href="#SettingsProperty-2260"><span class="linenos">2260</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>
@@ -35712,6 +37386,7 @@ Otherwise, this resets the expression.</li>
<dd id="SettingsProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="SettingsProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="SettingsProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="SettingsProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="SettingsProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="SettingsProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="SettingsProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -35732,6 +37407,7 @@ Otherwise, this resets the expression.</li>
<dd id="SettingsProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="SettingsProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="SettingsProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="SettingsProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="SettingsProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="SettingsProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="SettingsProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -35753,6 +37429,7 @@ Otherwise, this resets the expression.</li>
<dd id="SettingsProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="SettingsProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="SettingsProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="SettingsProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -35769,8 +37446,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-2250"><a href="#SortKeyProperty-2250"><span class="linenos">2250</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-2251"><a href="#SortKeyProperty-2251"><span class="linenos">2251</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-2263"><a href="#SortKeyProperty-2263"><span class="linenos">2263</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-2264"><a href="#SortKeyProperty-2264"><span class="linenos">2264</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -35825,6 +37502,7 @@ Otherwise, this resets the expression.</li>
<dd id="SortKeyProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="SortKeyProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="SortKeyProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="SortKeyProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="SortKeyProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="SortKeyProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="SortKeyProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -35845,6 +37523,7 @@ Otherwise, this resets the expression.</li>
<dd id="SortKeyProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="SortKeyProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="SortKeyProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="SortKeyProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="SortKeyProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="SortKeyProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="SortKeyProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -35866,6 +37545,123 @@ Otherwise, this resets the expression.</li>
<dd id="SortKeyProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="SortKeyProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="SortKeyProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="SortKeyProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
+
+ </div>
+ </dl>
+ </div>
+ </section>
+ <section id="SqlReadWriteProperty">
+ <input id="SqlReadWriteProperty-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">SqlReadWriteProperty</span><wbr>(<span class="base"><a href="#Property">Property</a></span>):
+
+ <label class="view-source-button" for="SqlReadWriteProperty-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#SqlReadWriteProperty"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="SqlReadWriteProperty-2267"><a href="#SqlReadWriteProperty-2267"><span class="linenos">2267</span></a><span class="k">class</span> <span class="nc">SqlReadWriteProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="SqlReadWriteProperty-2268"><a href="#SqlReadWriteProperty-2268"><span class="linenos">2268</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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 id="SqlReadWriteProperty.arg_types" class="classattr">
+ <div class="attr variable">
+ <span class="name">arg_types</span> =
+<span class="default_value">{&#39;this&#39;: True}</span>
+
+
+ </div>
+ <a class="headerlink" href="#SqlReadWriteProperty.arg_types"></a>
+
+
+
+ </div>
+ <div id="SqlReadWriteProperty.key" class="classattr">
+ <div class="attr variable">
+ <span class="name">key</span> =
+<span class="default_value">&#39;sqlreadwriteproperty&#39;</span>
+
+
+ </div>
+ <a class="headerlink" href="#SqlReadWriteProperty.key"></a>
+
+
+
+ </div>
+ <div class="inherited">
+ <h5>Inherited Members</h5>
+ <dl>
+ <div><dt><a href="#Expression">Expression</a></dt>
+ <dd id="SqlReadWriteProperty.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
+ <dd id="SqlReadWriteProperty.args" class="variable"><a href="#Expression.args">args</a></dd>
+ <dd id="SqlReadWriteProperty.parent" class="variable"><a href="#Expression.parent">parent</a></dd>
+ <dd id="SqlReadWriteProperty.arg_key" class="variable"><a href="#Expression.arg_key">arg_key</a></dd>
+ <dd id="SqlReadWriteProperty.comments" class="variable"><a href="#Expression.comments">comments</a></dd>
+ <dd id="SqlReadWriteProperty.hashable_args" class="variable"><a href="#Expression.hashable_args">hashable_args</a></dd>
+ <dd id="SqlReadWriteProperty.this" class="variable"><a href="#Expression.this">this</a></dd>
+ <dd id="SqlReadWriteProperty.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
+ <dd id="SqlReadWriteProperty.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
+ <dd id="SqlReadWriteProperty.text" class="function"><a href="#Expression.text">text</a></dd>
+ <dd id="SqlReadWriteProperty.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
+ <dd id="SqlReadWriteProperty.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
+ <dd id="SqlReadWriteProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
+ <dd id="SqlReadWriteProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
+ <dd id="SqlReadWriteProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="SqlReadWriteProperty.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
+ <dd id="SqlReadWriteProperty.name" class="variable"><a href="#Expression.name">name</a></dd>
+ <dd id="SqlReadWriteProperty.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
+ <dd id="SqlReadWriteProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
+ <dd id="SqlReadWriteProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
+ <dd id="SqlReadWriteProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="SqlReadWriteProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
+ <dd id="SqlReadWriteProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
+ <dd id="SqlReadWriteProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="SqlReadWriteProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
+ <dd id="SqlReadWriteProperty.append" class="function"><a href="#Expression.append">append</a></dd>
+ <dd id="SqlReadWriteProperty.set" class="function"><a href="#Expression.set">set</a></dd>
+ <dd id="SqlReadWriteProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
+ <dd id="SqlReadWriteProperty.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
+ <dd id="SqlReadWriteProperty.find" class="function"><a href="#Expression.find">find</a></dd>
+ <dd id="SqlReadWriteProperty.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
+ <dd id="SqlReadWriteProperty.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
+ <dd id="SqlReadWriteProperty.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
+ <dd id="SqlReadWriteProperty.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
+ <dd id="SqlReadWriteProperty.root" class="function"><a href="#Expression.root">root</a></dd>
+ <dd id="SqlReadWriteProperty.walk" class="function"><a href="#Expression.walk">walk</a></dd>
+ <dd id="SqlReadWriteProperty.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
+ <dd id="SqlReadWriteProperty.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
+ <dd id="SqlReadWriteProperty.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
+ <dd id="SqlReadWriteProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
+ <dd id="SqlReadWriteProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
+ <dd id="SqlReadWriteProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="SqlReadWriteProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
+ <dd id="SqlReadWriteProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
+ <dd id="SqlReadWriteProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
+ <dd id="SqlReadWriteProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
+ <dd id="SqlReadWriteProperty.pop" class="function"><a href="#Expression.pop">pop</a></dd>
+ <dd id="SqlReadWriteProperty.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
+ <dd id="SqlReadWriteProperty.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
+ <dd id="SqlReadWriteProperty.dump" class="function"><a href="#Expression.dump">dump</a></dd>
+ <dd id="SqlReadWriteProperty.load" class="function"><a href="#Expression.load">load</a></dd>
+ <dd id="SqlReadWriteProperty.and_" class="function"><a href="#Expression.and_">and_</a></dd>
+ <dd id="SqlReadWriteProperty.or_" class="function"><a href="#Expression.or_">or_</a></dd>
+ <dd id="SqlReadWriteProperty.not_" class="function"><a href="#Expression.not_">not_</a></dd>
+ <dd id="SqlReadWriteProperty.as_" class="function"><a href="#Expression.as_">as_</a></dd>
+ <dd id="SqlReadWriteProperty.isin" class="function"><a href="#Expression.isin">isin</a></dd>
+ <dd id="SqlReadWriteProperty.between" class="function"><a href="#Expression.between">between</a></dd>
+ <dd id="SqlReadWriteProperty.is_" class="function"><a href="#Expression.is_">is_</a></dd>
+ <dd id="SqlReadWriteProperty.like" class="function"><a href="#Expression.like">like</a></dd>
+ <dd id="SqlReadWriteProperty.ilike" class="function"><a href="#Expression.ilike">ilike</a></dd>
+ <dd id="SqlReadWriteProperty.eq" class="function"><a href="#Expression.eq">eq</a></dd>
+ <dd id="SqlReadWriteProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
+ <dd id="SqlReadWriteProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
+ <dd id="SqlReadWriteProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="SqlReadWriteProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -35882,8 +37678,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-2254"><a href="#SqlSecurityProperty-2254"><span class="linenos">2254</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-2255"><a href="#SqlSecurityProperty-2255"><span class="linenos">2255</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-2271"><a href="#SqlSecurityProperty-2271"><span class="linenos">2271</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-2272"><a href="#SqlSecurityProperty-2272"><span class="linenos">2272</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>
@@ -35938,6 +37734,7 @@ Otherwise, this resets the expression.</li>
<dd id="SqlSecurityProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="SqlSecurityProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="SqlSecurityProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="SqlSecurityProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="SqlSecurityProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="SqlSecurityProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="SqlSecurityProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -35958,6 +37755,7 @@ Otherwise, this resets the expression.</li>
<dd id="SqlSecurityProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="SqlSecurityProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="SqlSecurityProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="SqlSecurityProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="SqlSecurityProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="SqlSecurityProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="SqlSecurityProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -35979,6 +37777,7 @@ Otherwise, this resets the expression.</li>
<dd id="SqlSecurityProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="SqlSecurityProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="SqlSecurityProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="SqlSecurityProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -35995,8 +37794,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#StabilityProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StabilityProperty-2258"><a href="#StabilityProperty-2258"><span class="linenos">2258</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-2259"><a href="#StabilityProperty-2259"><span class="linenos">2259</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="StabilityProperty-2275"><a href="#StabilityProperty-2275"><span class="linenos">2275</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-2276"><a href="#StabilityProperty-2276"><span class="linenos">2276</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -36051,6 +37850,7 @@ Otherwise, this resets the expression.</li>
<dd id="StabilityProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="StabilityProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="StabilityProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="StabilityProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="StabilityProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="StabilityProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="StabilityProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -36071,6 +37871,7 @@ Otherwise, this resets the expression.</li>
<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.to_s" class="function"><a href="#Expression.to_s">to_s</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>
@@ -36092,6 +37893,7 @@ Otherwise, this resets the expression.</li>
<dd id="StabilityProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="StabilityProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="StabilityProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="StabilityProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -36108,8 +37910,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-2262"><a href="#TemporaryProperty-2262"><span class="linenos">2262</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-2263"><a href="#TemporaryProperty-2263"><span class="linenos">2263</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TemporaryProperty-2279"><a href="#TemporaryProperty-2279"><span class="linenos">2279</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-2280"><a href="#TemporaryProperty-2280"><span class="linenos">2280</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
</span></pre></div>
@@ -36164,6 +37966,7 @@ Otherwise, this resets the expression.</li>
<dd id="TemporaryProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="TemporaryProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="TemporaryProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="TemporaryProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="TemporaryProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="TemporaryProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="TemporaryProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -36184,6 +37987,7 @@ Otherwise, this resets the expression.</li>
<dd id="TemporaryProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="TemporaryProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="TemporaryProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="TemporaryProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="TemporaryProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="TemporaryProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="TemporaryProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -36205,6 +38009,7 @@ Otherwise, this resets the expression.</li>
<dd id="TemporaryProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="TemporaryProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="TemporaryProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="TemporaryProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -36221,8 +38026,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#TransformModelProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TransformModelProperty-2266"><a href="#TransformModelProperty-2266"><span class="linenos">2266</span></a><span class="k">class</span> <span class="nc">TransformModelProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="TransformModelProperty-2267"><a href="#TransformModelProperty-2267"><span class="linenos">2267</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TransformModelProperty-2283"><a href="#TransformModelProperty-2283"><span class="linenos">2283</span></a><span class="k">class</span> <span class="nc">TransformModelProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="TransformModelProperty-2284"><a href="#TransformModelProperty-2284"><span class="linenos">2284</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>
@@ -36277,6 +38082,7 @@ Otherwise, this resets the expression.</li>
<dd id="TransformModelProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="TransformModelProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="TransformModelProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="TransformModelProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="TransformModelProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="TransformModelProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="TransformModelProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -36297,6 +38103,7 @@ Otherwise, this resets the expression.</li>
<dd id="TransformModelProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="TransformModelProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="TransformModelProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="TransformModelProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="TransformModelProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="TransformModelProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="TransformModelProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -36318,6 +38125,7 @@ Otherwise, this resets the expression.</li>
<dd id="TransformModelProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="TransformModelProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="TransformModelProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="TransformModelProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -36334,8 +38142,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-2270"><a href="#TransientProperty-2270"><span class="linenos">2270</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-2271"><a href="#TransientProperty-2271"><span class="linenos">2271</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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-2287"><a href="#TransientProperty-2287"><span class="linenos">2287</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-2288"><a href="#TransientProperty-2288"><span class="linenos">2288</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -36390,6 +38198,7 @@ Otherwise, this resets the expression.</li>
<dd id="TransientProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="TransientProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="TransientProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="TransientProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="TransientProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="TransientProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="TransientProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -36410,6 +38219,7 @@ Otherwise, this resets the expression.</li>
<dd id="TransientProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="TransientProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="TransientProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="TransientProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="TransientProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="TransientProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="TransientProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -36431,6 +38241,7 @@ Otherwise, this resets the expression.</li>
<dd id="TransientProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="TransientProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="TransientProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="TransientProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -36447,8 +38258,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#VolatileProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="VolatileProperty-2274"><a href="#VolatileProperty-2274"><span class="linenos">2274</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-2275"><a href="#VolatileProperty-2275"><span class="linenos">2275</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="VolatileProperty-2291"><a href="#VolatileProperty-2291"><span class="linenos">2291</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-2292"><a href="#VolatileProperty-2292"><span class="linenos">2292</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -36503,6 +38314,7 @@ Otherwise, this resets the expression.</li>
<dd id="VolatileProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="VolatileProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="VolatileProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="VolatileProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="VolatileProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="VolatileProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="VolatileProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -36523,6 +38335,7 @@ Otherwise, this resets the expression.</li>
<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.to_s" class="function"><a href="#Expression.to_s">to_s</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>
@@ -36544,6 +38357,7 @@ Otherwise, this resets the expression.</li>
<dd id="VolatileProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="VolatileProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="VolatileProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="VolatileProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -36560,8 +38374,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-2278"><a href="#WithDataProperty-2278"><span class="linenos">2278</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-2279"><a href="#WithDataProperty-2279"><span class="linenos">2279</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-2295"><a href="#WithDataProperty-2295"><span class="linenos">2295</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-2296"><a href="#WithDataProperty-2296"><span class="linenos">2296</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>
@@ -36616,6 +38430,7 @@ Otherwise, this resets the expression.</li>
<dd id="WithDataProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="WithDataProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="WithDataProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="WithDataProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="WithDataProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="WithDataProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="WithDataProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -36636,6 +38451,7 @@ Otherwise, this resets the expression.</li>
<dd id="WithDataProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="WithDataProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="WithDataProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="WithDataProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="WithDataProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="WithDataProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="WithDataProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -36657,6 +38473,7 @@ Otherwise, this resets the expression.</li>
<dd id="WithDataProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="WithDataProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="WithDataProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="WithDataProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -36673,8 +38490,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-2282"><a href="#WithJournalTableProperty-2282"><span class="linenos">2282</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-2283"><a href="#WithJournalTableProperty-2283"><span class="linenos">2283</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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-2299"><a href="#WithJournalTableProperty-2299"><span class="linenos">2299</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-2300"><a href="#WithJournalTableProperty-2300"><span class="linenos">2300</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -36729,6 +38546,7 @@ Otherwise, this resets the expression.</li>
<dd id="WithJournalTableProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="WithJournalTableProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="WithJournalTableProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="WithJournalTableProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="WithJournalTableProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="WithJournalTableProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="WithJournalTableProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -36749,6 +38567,7 @@ Otherwise, this resets the expression.</li>
<dd id="WithJournalTableProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="WithJournalTableProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="WithJournalTableProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="WithJournalTableProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="WithJournalTableProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="WithJournalTableProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="WithJournalTableProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -36770,6 +38589,7 @@ Otherwise, this resets the expression.</li>
<dd id="WithJournalTableProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="WithJournalTableProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="WithJournalTableProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="WithJournalTableProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -36786,9 +38606,9 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#WithSystemVersioningProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="WithSystemVersioningProperty-2286"><a href="#WithSystemVersioningProperty-2286"><span class="linenos">2286</span></a><span class="k">class</span> <span class="nc">WithSystemVersioningProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="WithSystemVersioningProperty-2287"><a href="#WithSystemVersioningProperty-2287"><span class="linenos">2287</span></a> <span class="c1"># this -&gt; history table name, expression -&gt; data consistency check</span>
-</span><span id="WithSystemVersioningProperty-2288"><a href="#WithSystemVersioningProperty-2288"><span class="linenos">2288</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="WithSystemVersioningProperty-2303"><a href="#WithSystemVersioningProperty-2303"><span class="linenos">2303</span></a><span class="k">class</span> <span class="nc">WithSystemVersioningProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="WithSystemVersioningProperty-2304"><a href="#WithSystemVersioningProperty-2304"><span class="linenos">2304</span></a> <span class="c1"># this -&gt; history table name, expression -&gt; data consistency check</span>
+</span><span id="WithSystemVersioningProperty-2305"><a href="#WithSystemVersioningProperty-2305"><span class="linenos">2305</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -36843,6 +38663,7 @@ Otherwise, this resets the expression.</li>
<dd id="WithSystemVersioningProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="WithSystemVersioningProperty.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="WithSystemVersioningProperty.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="WithSystemVersioningProperty.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="WithSystemVersioningProperty.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="WithSystemVersioningProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="WithSystemVersioningProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -36863,6 +38684,7 @@ Otherwise, this resets the expression.</li>
<dd id="WithSystemVersioningProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="WithSystemVersioningProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="WithSystemVersioningProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="WithSystemVersioningProperty.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="WithSystemVersioningProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="WithSystemVersioningProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="WithSystemVersioningProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -36884,6 +38706,7 @@ Otherwise, this resets the expression.</li>
<dd id="WithSystemVersioningProperty.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="WithSystemVersioningProperty.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="WithSystemVersioningProperty.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="WithSystemVersioningProperty.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -36900,66 +38723,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-2291"><a href="#Properties-2291"><span class="linenos">2291</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-2292"><a href="#Properties-2292"><span class="linenos">2292</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-2293"><a href="#Properties-2293"><span class="linenos">2293</span></a>
-</span><span id="Properties-2294"><a href="#Properties-2294"><span class="linenos">2294</span></a> <span class="n">NAME_TO_PROPERTY</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Properties-2295"><a href="#Properties-2295"><span class="linenos">2295</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-2296"><a href="#Properties-2296"><span class="linenos">2296</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-2297"><a href="#Properties-2297"><span class="linenos">2297</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-2298"><a href="#Properties-2298"><span class="linenos">2298</span></a> <span class="s2">&quot;CLUSTERED_BY&quot;</span><span class="p">:</span> <span class="n">ClusteredByProperty</span><span class="p">,</span>
-</span><span id="Properties-2299"><a href="#Properties-2299"><span class="linenos">2299</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-2300"><a href="#Properties-2300"><span class="linenos">2300</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-2301"><a href="#Properties-2301"><span class="linenos">2301</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-2302"><a href="#Properties-2302"><span class="linenos">2302</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-2303"><a href="#Properties-2303"><span class="linenos">2303</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-2304"><a href="#Properties-2304"><span class="linenos">2304</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-2305"><a href="#Properties-2305"><span class="linenos">2305</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-2306"><a href="#Properties-2306"><span class="linenos">2306</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-2307"><a href="#Properties-2307"><span class="linenos">2307</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-2308"><a href="#Properties-2308"><span class="linenos">2308</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-2309"><a href="#Properties-2309"><span class="linenos">2309</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-2310"><a href="#Properties-2310"><span class="linenos">2310</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-2311"><a href="#Properties-2311"><span class="linenos">2311</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-2312"><a href="#Properties-2312"><span class="linenos">2312</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-2313"><a href="#Properties-2313"><span class="linenos">2313</span></a> <span class="p">}</span>
-</span><span id="Properties-2314"><a href="#Properties-2314"><span class="linenos">2314</span></a>
-</span><span id="Properties-2315"><a href="#Properties-2315"><span class="linenos">2315</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-2316"><a href="#Properties-2316"><span class="linenos">2316</span></a>
-</span><span id="Properties-2317"><a href="#Properties-2317"><span class="linenos">2317</span></a> <span class="c1"># CREATE property locations</span>
-</span><span id="Properties-2318"><a href="#Properties-2318"><span class="linenos">2318</span></a> <span class="c1"># Form: schema specified</span>
-</span><span id="Properties-2319"><a href="#Properties-2319"><span class="linenos">2319</span></a> <span class="c1"># create [POST_CREATE]</span>
-</span><span id="Properties-2320"><a href="#Properties-2320"><span class="linenos">2320</span></a> <span class="c1"># table a [POST_NAME]</span>
-</span><span id="Properties-2321"><a href="#Properties-2321"><span class="linenos">2321</span></a> <span class="c1"># (b int) [POST_SCHEMA]</span>
-</span><span id="Properties-2322"><a href="#Properties-2322"><span class="linenos">2322</span></a> <span class="c1"># with ([POST_WITH])</span>
-</span><span id="Properties-2323"><a href="#Properties-2323"><span class="linenos">2323</span></a> <span class="c1"># index (b) [POST_INDEX]</span>
-</span><span id="Properties-2324"><a href="#Properties-2324"><span class="linenos">2324</span></a> <span class="c1">#</span>
-</span><span id="Properties-2325"><a href="#Properties-2325"><span class="linenos">2325</span></a> <span class="c1"># Form: alias selection</span>
-</span><span id="Properties-2326"><a href="#Properties-2326"><span class="linenos">2326</span></a> <span class="c1"># create [POST_CREATE]</span>
-</span><span id="Properties-2327"><a href="#Properties-2327"><span class="linenos">2327</span></a> <span class="c1"># table a [POST_NAME]</span>
-</span><span id="Properties-2328"><a href="#Properties-2328"><span class="linenos">2328</span></a> <span class="c1"># as [POST_ALIAS] (select * from b) [POST_EXPRESSION]</span>
-</span><span id="Properties-2329"><a href="#Properties-2329"><span class="linenos">2329</span></a> <span class="c1"># index (c) [POST_INDEX]</span>
-</span><span id="Properties-2330"><a href="#Properties-2330"><span class="linenos">2330</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-2331"><a href="#Properties-2331"><span class="linenos">2331</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-2332"><a href="#Properties-2332"><span class="linenos">2332</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-2333"><a href="#Properties-2333"><span class="linenos">2333</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-2334"><a href="#Properties-2334"><span class="linenos">2334</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-2335"><a href="#Properties-2335"><span class="linenos">2335</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-2336"><a href="#Properties-2336"><span class="linenos">2336</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-2337"><a href="#Properties-2337"><span class="linenos">2337</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-2338"><a href="#Properties-2338"><span class="linenos">2338</span></a> <span class="n">UNSUPPORTED</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="Properties-2339"><a href="#Properties-2339"><span class="linenos">2339</span></a>
-</span><span id="Properties-2340"><a href="#Properties-2340"><span class="linenos">2340</span></a> <span class="nd">@classmethod</span>
-</span><span id="Properties-2341"><a href="#Properties-2341"><span class="linenos">2341</span></a> <span class="k">def</span> <span class="nf">from_dict</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">properties_dict</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Properties</span><span class="p">:</span>
-</span><span id="Properties-2342"><a href="#Properties-2342"><span class="linenos">2342</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[]</span>
-</span><span id="Properties-2343"><a href="#Properties-2343"><span class="linenos">2343</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-2344"><a href="#Properties-2344"><span class="linenos">2344</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-2345"><a href="#Properties-2345"><span class="linenos">2345</span></a> <span class="k">if</span> <span class="n">property_cls</span><span class="p">:</span>
-</span><span id="Properties-2346"><a href="#Properties-2346"><span class="linenos">2346</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-2347"><a href="#Properties-2347"><span class="linenos">2347</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="Properties-2348"><a href="#Properties-2348"><span class="linenos">2348</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-2349"><a href="#Properties-2349"><span class="linenos">2349</span></a>
-</span><span id="Properties-2350"><a href="#Properties-2350"><span class="linenos">2350</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-2308"><a href="#Properties-2308"><span class="linenos">2308</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-2309"><a href="#Properties-2309"><span class="linenos">2309</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-2310"><a href="#Properties-2310"><span class="linenos">2310</span></a>
+</span><span id="Properties-2311"><a href="#Properties-2311"><span class="linenos">2311</span></a> <span class="n">NAME_TO_PROPERTY</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Properties-2312"><a href="#Properties-2312"><span class="linenos">2312</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-2313"><a href="#Properties-2313"><span class="linenos">2313</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-2314"><a href="#Properties-2314"><span class="linenos">2314</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-2315"><a href="#Properties-2315"><span class="linenos">2315</span></a> <span class="s2">&quot;CLUSTERED_BY&quot;</span><span class="p">:</span> <span class="n">ClusteredByProperty</span><span class="p">,</span>
+</span><span id="Properties-2316"><a href="#Properties-2316"><span class="linenos">2316</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-2317"><a href="#Properties-2317"><span class="linenos">2317</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-2318"><a href="#Properties-2318"><span class="linenos">2318</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-2319"><a href="#Properties-2319"><span class="linenos">2319</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-2320"><a href="#Properties-2320"><span class="linenos">2320</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-2321"><a href="#Properties-2321"><span class="linenos">2321</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-2322"><a href="#Properties-2322"><span class="linenos">2322</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-2323"><a href="#Properties-2323"><span class="linenos">2323</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-2324"><a href="#Properties-2324"><span class="linenos">2324</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-2325"><a href="#Properties-2325"><span class="linenos">2325</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-2326"><a href="#Properties-2326"><span class="linenos">2326</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-2327"><a href="#Properties-2327"><span class="linenos">2327</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-2328"><a href="#Properties-2328"><span class="linenos">2328</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-2329"><a href="#Properties-2329"><span class="linenos">2329</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-2330"><a href="#Properties-2330"><span class="linenos">2330</span></a> <span class="p">}</span>
+</span><span id="Properties-2331"><a href="#Properties-2331"><span class="linenos">2331</span></a>
+</span><span id="Properties-2332"><a href="#Properties-2332"><span class="linenos">2332</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-2333"><a href="#Properties-2333"><span class="linenos">2333</span></a>
+</span><span id="Properties-2334"><a href="#Properties-2334"><span class="linenos">2334</span></a> <span class="c1"># CREATE property locations</span>
+</span><span id="Properties-2335"><a href="#Properties-2335"><span class="linenos">2335</span></a> <span class="c1"># Form: schema specified</span>
+</span><span id="Properties-2336"><a href="#Properties-2336"><span class="linenos">2336</span></a> <span class="c1"># create [POST_CREATE]</span>
+</span><span id="Properties-2337"><a href="#Properties-2337"><span class="linenos">2337</span></a> <span class="c1"># table a [POST_NAME]</span>
+</span><span id="Properties-2338"><a href="#Properties-2338"><span class="linenos">2338</span></a> <span class="c1"># (b int) [POST_SCHEMA]</span>
+</span><span id="Properties-2339"><a href="#Properties-2339"><span class="linenos">2339</span></a> <span class="c1"># with ([POST_WITH])</span>
+</span><span id="Properties-2340"><a href="#Properties-2340"><span class="linenos">2340</span></a> <span class="c1"># index (b) [POST_INDEX]</span>
+</span><span id="Properties-2341"><a href="#Properties-2341"><span class="linenos">2341</span></a> <span class="c1">#</span>
+</span><span id="Properties-2342"><a href="#Properties-2342"><span class="linenos">2342</span></a> <span class="c1"># Form: alias selection</span>
+</span><span id="Properties-2343"><a href="#Properties-2343"><span class="linenos">2343</span></a> <span class="c1"># create [POST_CREATE]</span>
+</span><span id="Properties-2344"><a href="#Properties-2344"><span class="linenos">2344</span></a> <span class="c1"># table a [POST_NAME]</span>
+</span><span id="Properties-2345"><a href="#Properties-2345"><span class="linenos">2345</span></a> <span class="c1"># as [POST_ALIAS] (select * from b) [POST_EXPRESSION]</span>
+</span><span id="Properties-2346"><a href="#Properties-2346"><span class="linenos">2346</span></a> <span class="c1"># index (c) [POST_INDEX]</span>
+</span><span id="Properties-2347"><a href="#Properties-2347"><span class="linenos">2347</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-2348"><a href="#Properties-2348"><span class="linenos">2348</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-2349"><a href="#Properties-2349"><span class="linenos">2349</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-2350"><a href="#Properties-2350"><span class="linenos">2350</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-2351"><a href="#Properties-2351"><span class="linenos">2351</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-2352"><a href="#Properties-2352"><span class="linenos">2352</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-2353"><a href="#Properties-2353"><span class="linenos">2353</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-2354"><a href="#Properties-2354"><span class="linenos">2354</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-2355"><a href="#Properties-2355"><span class="linenos">2355</span></a> <span class="n">UNSUPPORTED</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="Properties-2356"><a href="#Properties-2356"><span class="linenos">2356</span></a>
+</span><span id="Properties-2357"><a href="#Properties-2357"><span class="linenos">2357</span></a> <span class="nd">@classmethod</span>
+</span><span id="Properties-2358"><a href="#Properties-2358"><span class="linenos">2358</span></a> <span class="k">def</span> <span class="nf">from_dict</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">properties_dict</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Properties</span><span class="p">:</span>
+</span><span id="Properties-2359"><a href="#Properties-2359"><span class="linenos">2359</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="Properties-2360"><a href="#Properties-2360"><span class="linenos">2360</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-2361"><a href="#Properties-2361"><span class="linenos">2361</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-2362"><a href="#Properties-2362"><span class="linenos">2362</span></a> <span class="k">if</span> <span class="n">property_cls</span><span class="p">:</span>
+</span><span id="Properties-2363"><a href="#Properties-2363"><span class="linenos">2363</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-2364"><a href="#Properties-2364"><span class="linenos">2364</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="Properties-2365"><a href="#Properties-2365"><span class="linenos">2365</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-2366"><a href="#Properties-2366"><span class="linenos">2366</span></a>
+</span><span id="Properties-2367"><a href="#Properties-2367"><span class="linenos">2367</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>
@@ -37015,17 +38838,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-2340"><a href="#Properties.from_dict-2340"><span class="linenos">2340</span></a> <span class="nd">@classmethod</span>
-</span><span id="Properties.from_dict-2341"><a href="#Properties.from_dict-2341"><span class="linenos">2341</span></a> <span class="k">def</span> <span class="nf">from_dict</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">properties_dict</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Properties</span><span class="p">:</span>
-</span><span id="Properties.from_dict-2342"><a href="#Properties.from_dict-2342"><span class="linenos">2342</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[]</span>
-</span><span id="Properties.from_dict-2343"><a href="#Properties.from_dict-2343"><span class="linenos">2343</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-2344"><a href="#Properties.from_dict-2344"><span class="linenos">2344</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-2345"><a href="#Properties.from_dict-2345"><span class="linenos">2345</span></a> <span class="k">if</span> <span class="n">property_cls</span><span class="p">:</span>
-</span><span id="Properties.from_dict-2346"><a href="#Properties.from_dict-2346"><span class="linenos">2346</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-2347"><a href="#Properties.from_dict-2347"><span class="linenos">2347</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="Properties.from_dict-2348"><a href="#Properties.from_dict-2348"><span class="linenos">2348</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-2349"><a href="#Properties.from_dict-2349"><span class="linenos">2349</span></a>
-</span><span id="Properties.from_dict-2350"><a href="#Properties.from_dict-2350"><span class="linenos">2350</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-2357"><a href="#Properties.from_dict-2357"><span class="linenos">2357</span></a> <span class="nd">@classmethod</span>
+</span><span id="Properties.from_dict-2358"><a href="#Properties.from_dict-2358"><span class="linenos">2358</span></a> <span class="k">def</span> <span class="nf">from_dict</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">properties_dict</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Properties</span><span class="p">:</span>
+</span><span id="Properties.from_dict-2359"><a href="#Properties.from_dict-2359"><span class="linenos">2359</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="Properties.from_dict-2360"><a href="#Properties.from_dict-2360"><span class="linenos">2360</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-2361"><a href="#Properties.from_dict-2361"><span class="linenos">2361</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-2362"><a href="#Properties.from_dict-2362"><span class="linenos">2362</span></a> <span class="k">if</span> <span class="n">property_cls</span><span class="p">:</span>
+</span><span id="Properties.from_dict-2363"><a href="#Properties.from_dict-2363"><span class="linenos">2363</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-2364"><a href="#Properties.from_dict-2364"><span class="linenos">2364</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="Properties.from_dict-2365"><a href="#Properties.from_dict-2365"><span class="linenos">2365</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-2366"><a href="#Properties.from_dict-2366"><span class="linenos">2366</span></a>
+</span><span id="Properties.from_dict-2367"><a href="#Properties.from_dict-2367"><span class="linenos">2367</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>
@@ -37069,6 +38892,7 @@ Otherwise, this resets the expression.</li>
<dd id="Properties.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Properties.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Properties.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Properties.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Properties.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Properties.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Properties.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -37089,6 +38913,7 @@ Otherwise, this resets the expression.</li>
<dd id="Properties.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Properties.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Properties.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Properties.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Properties.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Properties.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Properties.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -37110,6 +38935,7 @@ Otherwise, this resets the expression.</li>
<dd id="Properties.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Properties.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Properties.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Properties.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -37126,15 +38952,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-2330"><a href="#Properties.Location-2330"><span class="linenos">2330</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-2331"><a href="#Properties.Location-2331"><span class="linenos">2331</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-2332"><a href="#Properties.Location-2332"><span class="linenos">2332</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-2333"><a href="#Properties.Location-2333"><span class="linenos">2333</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-2334"><a href="#Properties.Location-2334"><span class="linenos">2334</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-2335"><a href="#Properties.Location-2335"><span class="linenos">2335</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-2336"><a href="#Properties.Location-2336"><span class="linenos">2336</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-2337"><a href="#Properties.Location-2337"><span class="linenos">2337</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-2338"><a href="#Properties.Location-2338"><span class="linenos">2338</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-2347"><a href="#Properties.Location-2347"><span class="linenos">2347</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-2348"><a href="#Properties.Location-2348"><span class="linenos">2348</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-2349"><a href="#Properties.Location-2349"><span class="linenos">2349</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-2350"><a href="#Properties.Location-2350"><span class="linenos">2350</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-2351"><a href="#Properties.Location-2351"><span class="linenos">2351</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-2352"><a href="#Properties.Location-2352"><span class="linenos">2352</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-2353"><a href="#Properties.Location-2353"><span class="linenos">2353</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-2354"><a href="#Properties.Location-2354"><span class="linenos">2354</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-2355"><a href="#Properties.Location-2355"><span class="linenos">2355</span></a> <span class="n">UNSUPPORTED</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span></pre></div>
@@ -37260,8 +39086,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-2353"><a href="#Qualify-2353"><span class="linenos">2353</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-2354"><a href="#Qualify-2354"><span class="linenos">2354</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Qualify-2370"><a href="#Qualify-2370"><span class="linenos">2370</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-2371"><a href="#Qualify-2371"><span class="linenos">2371</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -37305,6 +39131,7 @@ Otherwise, this resets the expression.</li>
<dd id="Qualify.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Qualify.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Qualify.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Qualify.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Qualify.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Qualify.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Qualify.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -37325,6 +39152,7 @@ Otherwise, this resets the expression.</li>
<dd id="Qualify.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Qualify.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Qualify.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Qualify.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Qualify.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Qualify.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Qualify.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -37346,6 +39174,7 @@ Otherwise, this resets the expression.</li>
<dd id="Qualify.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Qualify.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Qualify.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Qualify.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -37362,8 +39191,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#InputOutputFormat"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="InputOutputFormat-2357"><a href="#InputOutputFormat-2357"><span class="linenos">2357</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-2358"><a href="#InputOutputFormat-2358"><span class="linenos">2358</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;input_format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;output_format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="InputOutputFormat-2374"><a href="#InputOutputFormat-2374"><span class="linenos">2374</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-2375"><a href="#InputOutputFormat-2375"><span class="linenos">2375</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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>
@@ -37418,6 +39247,7 @@ Otherwise, this resets the expression.</li>
<dd id="InputOutputFormat.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="InputOutputFormat.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="InputOutputFormat.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="InputOutputFormat.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="InputOutputFormat.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="InputOutputFormat.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="InputOutputFormat.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -37438,6 +39268,7 @@ Otherwise, this resets the expression.</li>
<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.to_s" class="function"><a href="#Expression.to_s">to_s</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>
@@ -37459,6 +39290,7 @@ Otherwise, this resets the expression.</li>
<dd id="InputOutputFormat.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="InputOutputFormat.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="InputOutputFormat.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="InputOutputFormat.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -37475,8 +39307,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-2362"><a href="#Return-2362"><span class="linenos">2362</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-2363"><a href="#Return-2363"><span class="linenos">2363</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Return-2379"><a href="#Return-2379"><span class="linenos">2379</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-2380"><a href="#Return-2380"><span class="linenos">2380</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -37520,6 +39352,7 @@ Otherwise, this resets the expression.</li>
<dd id="Return.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Return.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Return.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Return.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Return.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Return.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Return.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -37540,6 +39373,7 @@ Otherwise, this resets the expression.</li>
<dd id="Return.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Return.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Return.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Return.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Return.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Return.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Return.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -37561,6 +39395,7 @@ Otherwise, this resets the expression.</li>
<dd id="Return.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Return.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Return.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Return.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -37577,8 +39412,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-2366"><a href="#Reference-2366"><span class="linenos">2366</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-2367"><a href="#Reference-2367"><span class="linenos">2367</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-2383"><a href="#Reference-2383"><span class="linenos">2383</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-2384"><a href="#Reference-2384"><span class="linenos">2384</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -37633,6 +39468,7 @@ Otherwise, this resets the expression.</li>
<dd id="Reference.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Reference.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Reference.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Reference.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Reference.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Reference.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Reference.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -37653,6 +39489,7 @@ Otherwise, this resets the expression.</li>
<dd id="Reference.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Reference.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Reference.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Reference.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Reference.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Reference.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Reference.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -37674,6 +39511,7 @@ Otherwise, this resets the expression.</li>
<dd id="Reference.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Reference.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Reference.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Reference.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -37690,29 +39528,29 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Tuple"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Tuple-2370"><a href="#Tuple-2370"><span class="linenos">2370</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-2371"><a href="#Tuple-2371"><span class="linenos">2371</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="Tuple-2372"><a href="#Tuple-2372"><span class="linenos">2372</span></a>
-</span><span id="Tuple-2373"><a href="#Tuple-2373"><span class="linenos">2373</span></a> <span class="k">def</span> <span class="nf">isin</span><span class="p">(</span>
-</span><span id="Tuple-2374"><a href="#Tuple-2374"><span class="linenos">2374</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Tuple-2375"><a href="#Tuple-2375"><span class="linenos">2375</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span>
-</span><span id="Tuple-2376"><a href="#Tuple-2376"><span class="linenos">2376</span></a> <span class="n">query</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Tuple-2377"><a href="#Tuple-2377"><span class="linenos">2377</span></a> <span class="n">unnest</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Collection</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Tuple-2378"><a href="#Tuple-2378"><span class="linenos">2378</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Tuple-2379"><a href="#Tuple-2379"><span class="linenos">2379</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Tuple-2380"><a href="#Tuple-2380"><span class="linenos">2380</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">In</span><span class="p">:</span>
-</span><span id="Tuple-2381"><a href="#Tuple-2381"><span class="linenos">2381</span></a> <span class="k">return</span> <span class="n">In</span><span class="p">(</span>
-</span><span id="Tuple-2382"><a href="#Tuple-2382"><span class="linenos">2382</span></a> <span class="n">this</span><span class="o">=</span><span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">),</span>
-</span><span id="Tuple-2383"><a href="#Tuple-2383"><span class="linenos">2383</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">],</span>
-</span><span id="Tuple-2384"><a href="#Tuple-2384"><span class="linenos">2384</span></a> <span class="n">query</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">query</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="k">if</span> <span class="n">query</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Tuple-2385"><a href="#Tuple-2385"><span class="linenos">2385</span></a> <span class="n">unnest</span><span class="o">=</span><span class="n">Unnest</span><span class="p">(</span>
-</span><span id="Tuple-2386"><a href="#Tuple-2386"><span class="linenos">2386</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span>
-</span><span id="Tuple-2387"><a href="#Tuple-2387"><span class="linenos">2387</span></a> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">e</span><span class="p">),</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">ensure_list</span><span class="p">(</span><span class="n">unnest</span><span class="p">)</span>
-</span><span id="Tuple-2388"><a href="#Tuple-2388"><span class="linenos">2388</span></a> <span class="p">]</span>
-</span><span id="Tuple-2389"><a href="#Tuple-2389"><span class="linenos">2389</span></a> <span class="p">)</span>
-</span><span id="Tuple-2390"><a href="#Tuple-2390"><span class="linenos">2390</span></a> <span class="k">if</span> <span class="n">unnest</span>
-</span><span id="Tuple-2391"><a href="#Tuple-2391"><span class="linenos">2391</span></a> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Tuple-2392"><a href="#Tuple-2392"><span class="linenos">2392</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Tuple-2387"><a href="#Tuple-2387"><span class="linenos">2387</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-2388"><a href="#Tuple-2388"><span class="linenos">2388</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="Tuple-2389"><a href="#Tuple-2389"><span class="linenos">2389</span></a>
+</span><span id="Tuple-2390"><a href="#Tuple-2390"><span class="linenos">2390</span></a> <span class="k">def</span> <span class="nf">isin</span><span class="p">(</span>
+</span><span id="Tuple-2391"><a href="#Tuple-2391"><span class="linenos">2391</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Tuple-2392"><a href="#Tuple-2392"><span class="linenos">2392</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span>
+</span><span id="Tuple-2393"><a href="#Tuple-2393"><span class="linenos">2393</span></a> <span class="n">query</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Tuple-2394"><a href="#Tuple-2394"><span class="linenos">2394</span></a> <span class="n">unnest</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Collection</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Tuple-2395"><a href="#Tuple-2395"><span class="linenos">2395</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Tuple-2396"><a href="#Tuple-2396"><span class="linenos">2396</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Tuple-2397"><a href="#Tuple-2397"><span class="linenos">2397</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">In</span><span class="p">:</span>
+</span><span id="Tuple-2398"><a href="#Tuple-2398"><span class="linenos">2398</span></a> <span class="k">return</span> <span class="n">In</span><span class="p">(</span>
+</span><span id="Tuple-2399"><a href="#Tuple-2399"><span class="linenos">2399</span></a> <span class="n">this</span><span class="o">=</span><span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">),</span>
+</span><span id="Tuple-2400"><a href="#Tuple-2400"><span class="linenos">2400</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">],</span>
+</span><span id="Tuple-2401"><a href="#Tuple-2401"><span class="linenos">2401</span></a> <span class="n">query</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">query</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="k">if</span> <span class="n">query</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Tuple-2402"><a href="#Tuple-2402"><span class="linenos">2402</span></a> <span class="n">unnest</span><span class="o">=</span><span class="n">Unnest</span><span class="p">(</span>
+</span><span id="Tuple-2403"><a href="#Tuple-2403"><span class="linenos">2403</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span>
+</span><span id="Tuple-2404"><a href="#Tuple-2404"><span class="linenos">2404</span></a> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">e</span><span class="p">),</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">ensure_list</span><span class="p">(</span><span class="n">unnest</span><span class="p">)</span>
+</span><span id="Tuple-2405"><a href="#Tuple-2405"><span class="linenos">2405</span></a> <span class="p">]</span>
+</span><span id="Tuple-2406"><a href="#Tuple-2406"><span class="linenos">2406</span></a> <span class="p">)</span>
+</span><span id="Tuple-2407"><a href="#Tuple-2407"><span class="linenos">2407</span></a> <span class="k">if</span> <span class="n">unnest</span>
+</span><span id="Tuple-2408"><a href="#Tuple-2408"><span class="linenos">2408</span></a> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Tuple-2409"><a href="#Tuple-2409"><span class="linenos">2409</span></a> <span class="p">)</span>
</span></pre></div>
@@ -37741,26 +39579,26 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Tuple.isin"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Tuple.isin-2373"><a href="#Tuple.isin-2373"><span class="linenos">2373</span></a> <span class="k">def</span> <span class="nf">isin</span><span class="p">(</span>
-</span><span id="Tuple.isin-2374"><a href="#Tuple.isin-2374"><span class="linenos">2374</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Tuple.isin-2375"><a href="#Tuple.isin-2375"><span class="linenos">2375</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span>
-</span><span id="Tuple.isin-2376"><a href="#Tuple.isin-2376"><span class="linenos">2376</span></a> <span class="n">query</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Tuple.isin-2377"><a href="#Tuple.isin-2377"><span class="linenos">2377</span></a> <span class="n">unnest</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Collection</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Tuple.isin-2378"><a href="#Tuple.isin-2378"><span class="linenos">2378</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Tuple.isin-2379"><a href="#Tuple.isin-2379"><span class="linenos">2379</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Tuple.isin-2380"><a href="#Tuple.isin-2380"><span class="linenos">2380</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">In</span><span class="p">:</span>
-</span><span id="Tuple.isin-2381"><a href="#Tuple.isin-2381"><span class="linenos">2381</span></a> <span class="k">return</span> <span class="n">In</span><span class="p">(</span>
-</span><span id="Tuple.isin-2382"><a href="#Tuple.isin-2382"><span class="linenos">2382</span></a> <span class="n">this</span><span class="o">=</span><span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">),</span>
-</span><span id="Tuple.isin-2383"><a href="#Tuple.isin-2383"><span class="linenos">2383</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">],</span>
-</span><span id="Tuple.isin-2384"><a href="#Tuple.isin-2384"><span class="linenos">2384</span></a> <span class="n">query</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">query</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="k">if</span> <span class="n">query</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Tuple.isin-2385"><a href="#Tuple.isin-2385"><span class="linenos">2385</span></a> <span class="n">unnest</span><span class="o">=</span><span class="n">Unnest</span><span class="p">(</span>
-</span><span id="Tuple.isin-2386"><a href="#Tuple.isin-2386"><span class="linenos">2386</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span>
-</span><span id="Tuple.isin-2387"><a href="#Tuple.isin-2387"><span class="linenos">2387</span></a> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">e</span><span class="p">),</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">ensure_list</span><span class="p">(</span><span class="n">unnest</span><span class="p">)</span>
-</span><span id="Tuple.isin-2388"><a href="#Tuple.isin-2388"><span class="linenos">2388</span></a> <span class="p">]</span>
-</span><span id="Tuple.isin-2389"><a href="#Tuple.isin-2389"><span class="linenos">2389</span></a> <span class="p">)</span>
-</span><span id="Tuple.isin-2390"><a href="#Tuple.isin-2390"><span class="linenos">2390</span></a> <span class="k">if</span> <span class="n">unnest</span>
-</span><span id="Tuple.isin-2391"><a href="#Tuple.isin-2391"><span class="linenos">2391</span></a> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Tuple.isin-2392"><a href="#Tuple.isin-2392"><span class="linenos">2392</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Tuple.isin-2390"><a href="#Tuple.isin-2390"><span class="linenos">2390</span></a> <span class="k">def</span> <span class="nf">isin</span><span class="p">(</span>
+</span><span id="Tuple.isin-2391"><a href="#Tuple.isin-2391"><span class="linenos">2391</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Tuple.isin-2392"><a href="#Tuple.isin-2392"><span class="linenos">2392</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span>
+</span><span id="Tuple.isin-2393"><a href="#Tuple.isin-2393"><span class="linenos">2393</span></a> <span class="n">query</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Tuple.isin-2394"><a href="#Tuple.isin-2394"><span class="linenos">2394</span></a> <span class="n">unnest</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Collection</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Tuple.isin-2395"><a href="#Tuple.isin-2395"><span class="linenos">2395</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Tuple.isin-2396"><a href="#Tuple.isin-2396"><span class="linenos">2396</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Tuple.isin-2397"><a href="#Tuple.isin-2397"><span class="linenos">2397</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">In</span><span class="p">:</span>
+</span><span id="Tuple.isin-2398"><a href="#Tuple.isin-2398"><span class="linenos">2398</span></a> <span class="k">return</span> <span class="n">In</span><span class="p">(</span>
+</span><span id="Tuple.isin-2399"><a href="#Tuple.isin-2399"><span class="linenos">2399</span></a> <span class="n">this</span><span class="o">=</span><span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">),</span>
+</span><span id="Tuple.isin-2400"><a href="#Tuple.isin-2400"><span class="linenos">2400</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">],</span>
+</span><span id="Tuple.isin-2401"><a href="#Tuple.isin-2401"><span class="linenos">2401</span></a> <span class="n">query</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">query</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="k">if</span> <span class="n">query</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Tuple.isin-2402"><a href="#Tuple.isin-2402"><span class="linenos">2402</span></a> <span class="n">unnest</span><span class="o">=</span><span class="n">Unnest</span><span class="p">(</span>
+</span><span id="Tuple.isin-2403"><a href="#Tuple.isin-2403"><span class="linenos">2403</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span>
+</span><span id="Tuple.isin-2404"><a href="#Tuple.isin-2404"><span class="linenos">2404</span></a> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">e</span><span class="p">),</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">ensure_list</span><span class="p">(</span><span class="n">unnest</span><span class="p">)</span>
+</span><span id="Tuple.isin-2405"><a href="#Tuple.isin-2405"><span class="linenos">2405</span></a> <span class="p">]</span>
+</span><span id="Tuple.isin-2406"><a href="#Tuple.isin-2406"><span class="linenos">2406</span></a> <span class="p">)</span>
+</span><span id="Tuple.isin-2407"><a href="#Tuple.isin-2407"><span class="linenos">2407</span></a> <span class="k">if</span> <span class="n">unnest</span>
+</span><span id="Tuple.isin-2408"><a href="#Tuple.isin-2408"><span class="linenos">2408</span></a> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Tuple.isin-2409"><a href="#Tuple.isin-2409"><span class="linenos">2409</span></a> <span class="p">)</span>
</span></pre></div>
@@ -37804,6 +39642,7 @@ Otherwise, this resets the expression.</li>
<dd id="Tuple.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Tuple.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Tuple.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Tuple.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Tuple.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Tuple.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Tuple.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -37824,6 +39663,7 @@ Otherwise, this resets the expression.</li>
<dd id="Tuple.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Tuple.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Tuple.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Tuple.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Tuple.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Tuple.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Tuple.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -37844,6 +39684,7 @@ Otherwise, this resets the expression.</li>
<dd id="Tuple.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Tuple.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Tuple.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Tuple.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -37860,94 +39701,94 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Subqueryable"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Subqueryable-2395"><a href="#Subqueryable-2395"><span class="linenos">2395</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-2396"><a href="#Subqueryable-2396"><span class="linenos">2396</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="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 class="n">copy</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">Subquery</span><span class="p">:</span>
-</span><span id="Subqueryable-2397"><a href="#Subqueryable-2397"><span class="linenos">2397</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Subqueryable-2398"><a href="#Subqueryable-2398"><span class="linenos">2398</span></a><span class="sd"> Convert this expression to an aliased expression that can be used as a Subquery.</span>
-</span><span id="Subqueryable-2399"><a href="#Subqueryable-2399"><span class="linenos">2399</span></a>
-</span><span id="Subqueryable-2400"><a href="#Subqueryable-2400"><span class="linenos">2400</span></a><span class="sd"> Example:</span>
-</span><span id="Subqueryable-2401"><a href="#Subqueryable-2401"><span class="linenos">2401</span></a><span class="sd"> &gt;&gt;&gt; subquery = Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).subquery()</span>
-</span><span id="Subqueryable-2402"><a href="#Subqueryable-2402"><span class="linenos">2402</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(subquery).sql()</span>
-</span><span id="Subqueryable-2403"><a href="#Subqueryable-2403"><span class="linenos">2403</span></a><span class="sd"> &#39;SELECT x FROM (SELECT x FROM tbl)&#39;</span>
-</span><span id="Subqueryable-2404"><a href="#Subqueryable-2404"><span class="linenos">2404</span></a>
-</span><span id="Subqueryable-2405"><a href="#Subqueryable-2405"><span class="linenos">2405</span></a><span class="sd"> Args:</span>
-</span><span id="Subqueryable-2406"><a href="#Subqueryable-2406"><span class="linenos">2406</span></a><span class="sd"> alias (str | Identifier): an optional alias for the subquery</span>
-</span><span id="Subqueryable-2407"><a href="#Subqueryable-2407"><span class="linenos">2407</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Subqueryable-2408"><a href="#Subqueryable-2408"><span class="linenos">2408</span></a>
-</span><span id="Subqueryable-2409"><a href="#Subqueryable-2409"><span class="linenos">2409</span></a><span class="sd"> Returns:</span>
-</span><span id="Subqueryable-2410"><a href="#Subqueryable-2410"><span class="linenos">2410</span></a><span class="sd"> Alias: the subquery</span>
-</span><span id="Subqueryable-2411"><a href="#Subqueryable-2411"><span class="linenos">2411</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Subqueryable-2412"><a href="#Subqueryable-2412"><span class="linenos">2412</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-2413"><a href="#Subqueryable-2413"><span class="linenos">2413</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">alias</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
-</span><span id="Subqueryable-2414"><a href="#Subqueryable-2414"><span class="linenos">2414</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><span id="Subqueryable-2415"><a href="#Subqueryable-2415"><span class="linenos">2415</span></a>
-</span><span id="Subqueryable-2416"><a href="#Subqueryable-2416"><span class="linenos">2416</span></a> <span class="k">return</span> <span class="n">Subquery</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">instance</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="Subqueryable-2417"><a href="#Subqueryable-2417"><span class="linenos">2417</span></a>
-</span><span id="Subqueryable-2418"><a href="#Subqueryable-2418"><span class="linenos">2418</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span>
-</span><span id="Subqueryable-2419"><a href="#Subqueryable-2419"><span class="linenos">2419</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span> <span class="o">|</span> <span class="nb">int</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="Subqueryable-2420"><a href="#Subqueryable-2420"><span class="linenos">2420</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Subqueryable-2421"><a href="#Subqueryable-2421"><span class="linenos">2421</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span>
-</span><span id="Subqueryable-2422"><a href="#Subqueryable-2422"><span class="linenos">2422</span></a>
-</span><span id="Subqueryable-2423"><a href="#Subqueryable-2423"><span class="linenos">2423</span></a> <span class="nd">@property</span>
-</span><span id="Subqueryable-2424"><a href="#Subqueryable-2424"><span class="linenos">2424</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-2425"><a href="#Subqueryable-2425"><span class="linenos">2425</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-2426"><a href="#Subqueryable-2426"><span class="linenos">2426</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-2427"><a href="#Subqueryable-2427"><span class="linenos">2427</span></a> <span class="k">return</span> <span class="p">[]</span>
-</span><span id="Subqueryable-2428"><a href="#Subqueryable-2428"><span class="linenos">2428</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-2429"><a href="#Subqueryable-2429"><span class="linenos">2429</span></a>
-</span><span id="Subqueryable-2430"><a href="#Subqueryable-2430"><span class="linenos">2430</span></a> <span class="nd">@property</span>
-</span><span id="Subqueryable-2431"><a href="#Subqueryable-2431"><span class="linenos">2431</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="Subqueryable-2432"><a href="#Subqueryable-2432"><span class="linenos">2432</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-2433"><a href="#Subqueryable-2433"><span class="linenos">2433</span></a>
-</span><span id="Subqueryable-2434"><a href="#Subqueryable-2434"><span class="linenos">2434</span></a> <span class="nd">@property</span>
-</span><span id="Subqueryable-2435"><a href="#Subqueryable-2435"><span class="linenos">2435</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="Subqueryable-2436"><a href="#Subqueryable-2436"><span class="linenos">2436</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-2437"><a href="#Subqueryable-2437"><span class="linenos">2437</span></a>
-</span><span id="Subqueryable-2438"><a href="#Subqueryable-2438"><span class="linenos">2438</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
-</span><span id="Subqueryable-2439"><a href="#Subqueryable-2439"><span class="linenos">2439</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Subqueryable-2440"><a href="#Subqueryable-2440"><span class="linenos">2440</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Subqueryable-2441"><a href="#Subqueryable-2441"><span class="linenos">2441</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="Subqueryable-2442"><a href="#Subqueryable-2442"><span class="linenos">2442</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Subqueryable-2443"><a href="#Subqueryable-2443"><span class="linenos">2443</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="Subqueryable-2444"><a href="#Subqueryable-2444"><span class="linenos">2444</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Subqueryable-2445"><a href="#Subqueryable-2445"><span class="linenos">2445</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Subqueryable</span><span class="p">:</span>
-</span><span id="Subqueryable-2446"><a href="#Subqueryable-2446"><span class="linenos">2446</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span><span class="s2">&quot;Subqueryable objects must implement `select`&quot;</span><span class="p">)</span>
-</span><span id="Subqueryable-2447"><a href="#Subqueryable-2447"><span class="linenos">2447</span></a>
-</span><span id="Subqueryable-2448"><a href="#Subqueryable-2448"><span class="linenos">2448</span></a> <span class="k">def</span> <span class="nf">with_</span><span class="p">(</span>
-</span><span id="Subqueryable-2449"><a href="#Subqueryable-2449"><span class="linenos">2449</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Subqueryable-2450"><a href="#Subqueryable-2450"><span class="linenos">2450</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="Subqueryable-2451"><a href="#Subqueryable-2451"><span class="linenos">2451</span></a> <span class="n">as_</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="Subqueryable-2452"><a href="#Subqueryable-2452"><span class="linenos">2452</span></a> <span class="n">recursive</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Subqueryable-2453"><a href="#Subqueryable-2453"><span class="linenos">2453</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="Subqueryable-2454"><a href="#Subqueryable-2454"><span class="linenos">2454</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Subqueryable-2455"><a href="#Subqueryable-2455"><span class="linenos">2455</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="Subqueryable-2456"><a href="#Subqueryable-2456"><span class="linenos">2456</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Subqueryable-2457"><a href="#Subqueryable-2457"><span class="linenos">2457</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Subqueryable</span><span class="p">:</span>
-</span><span id="Subqueryable-2458"><a href="#Subqueryable-2458"><span class="linenos">2458</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Subqueryable-2459"><a href="#Subqueryable-2459"><span class="linenos">2459</span></a><span class="sd"> Append to or set the common table expressions.</span>
-</span><span id="Subqueryable-2460"><a href="#Subqueryable-2460"><span class="linenos">2460</span></a>
-</span><span id="Subqueryable-2461"><a href="#Subqueryable-2461"><span class="linenos">2461</span></a><span class="sd"> Example:</span>
-</span><span id="Subqueryable-2462"><a href="#Subqueryable-2462"><span class="linenos">2462</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-2463"><a href="#Subqueryable-2463"><span class="linenos">2463</span></a><span class="sd"> &#39;WITH tbl2 AS (SELECT * FROM tbl) SELECT x FROM tbl2&#39;</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Subqueryable-2412"><a href="#Subqueryable-2412"><span class="linenos">2412</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-2413"><a href="#Subqueryable-2413"><span class="linenos">2413</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="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 class="n">copy</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">Subquery</span><span class="p">:</span>
+</span><span id="Subqueryable-2414"><a href="#Subqueryable-2414"><span class="linenos">2414</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Subqueryable-2415"><a href="#Subqueryable-2415"><span class="linenos">2415</span></a><span class="sd"> Convert this expression to an aliased expression that can be used as a Subquery.</span>
+</span><span id="Subqueryable-2416"><a href="#Subqueryable-2416"><span class="linenos">2416</span></a>
+</span><span id="Subqueryable-2417"><a href="#Subqueryable-2417"><span class="linenos">2417</span></a><span class="sd"> Example:</span>
+</span><span id="Subqueryable-2418"><a href="#Subqueryable-2418"><span class="linenos">2418</span></a><span class="sd"> &gt;&gt;&gt; subquery = Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).subquery()</span>
+</span><span id="Subqueryable-2419"><a href="#Subqueryable-2419"><span class="linenos">2419</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(subquery).sql()</span>
+</span><span id="Subqueryable-2420"><a href="#Subqueryable-2420"><span class="linenos">2420</span></a><span class="sd"> &#39;SELECT x FROM (SELECT x FROM tbl)&#39;</span>
+</span><span id="Subqueryable-2421"><a href="#Subqueryable-2421"><span class="linenos">2421</span></a>
+</span><span id="Subqueryable-2422"><a href="#Subqueryable-2422"><span class="linenos">2422</span></a><span class="sd"> Args:</span>
+</span><span id="Subqueryable-2423"><a href="#Subqueryable-2423"><span class="linenos">2423</span></a><span class="sd"> alias (str | Identifier): an optional alias for the subquery</span>
+</span><span id="Subqueryable-2424"><a href="#Subqueryable-2424"><span class="linenos">2424</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="Subqueryable-2425"><a href="#Subqueryable-2425"><span class="linenos">2425</span></a>
+</span><span id="Subqueryable-2426"><a href="#Subqueryable-2426"><span class="linenos">2426</span></a><span class="sd"> Returns:</span>
+</span><span id="Subqueryable-2427"><a href="#Subqueryable-2427"><span class="linenos">2427</span></a><span class="sd"> Alias: the subquery</span>
+</span><span id="Subqueryable-2428"><a href="#Subqueryable-2428"><span class="linenos">2428</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Subqueryable-2429"><a href="#Subqueryable-2429"><span class="linenos">2429</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-2430"><a href="#Subqueryable-2430"><span class="linenos">2430</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">alias</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
+</span><span id="Subqueryable-2431"><a href="#Subqueryable-2431"><span class="linenos">2431</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><span id="Subqueryable-2432"><a href="#Subqueryable-2432"><span class="linenos">2432</span></a>
+</span><span id="Subqueryable-2433"><a href="#Subqueryable-2433"><span class="linenos">2433</span></a> <span class="k">return</span> <span class="n">Subquery</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">instance</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="Subqueryable-2434"><a href="#Subqueryable-2434"><span class="linenos">2434</span></a>
+</span><span id="Subqueryable-2435"><a href="#Subqueryable-2435"><span class="linenos">2435</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span>
+</span><span id="Subqueryable-2436"><a href="#Subqueryable-2436"><span class="linenos">2436</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span> <span class="o">|</span> <span class="nb">int</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="Subqueryable-2437"><a href="#Subqueryable-2437"><span class="linenos">2437</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Subqueryable-2438"><a href="#Subqueryable-2438"><span class="linenos">2438</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span>
+</span><span id="Subqueryable-2439"><a href="#Subqueryable-2439"><span class="linenos">2439</span></a>
+</span><span id="Subqueryable-2440"><a href="#Subqueryable-2440"><span class="linenos">2440</span></a> <span class="nd">@property</span>
+</span><span id="Subqueryable-2441"><a href="#Subqueryable-2441"><span class="linenos">2441</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-2442"><a href="#Subqueryable-2442"><span class="linenos">2442</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-2443"><a href="#Subqueryable-2443"><span class="linenos">2443</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-2444"><a href="#Subqueryable-2444"><span class="linenos">2444</span></a> <span class="k">return</span> <span class="p">[]</span>
+</span><span id="Subqueryable-2445"><a href="#Subqueryable-2445"><span class="linenos">2445</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-2446"><a href="#Subqueryable-2446"><span class="linenos">2446</span></a>
+</span><span id="Subqueryable-2447"><a href="#Subqueryable-2447"><span class="linenos">2447</span></a> <span class="nd">@property</span>
+</span><span id="Subqueryable-2448"><a href="#Subqueryable-2448"><span class="linenos">2448</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="Subqueryable-2449"><a href="#Subqueryable-2449"><span class="linenos">2449</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-2450"><a href="#Subqueryable-2450"><span class="linenos">2450</span></a>
+</span><span id="Subqueryable-2451"><a href="#Subqueryable-2451"><span class="linenos">2451</span></a> <span class="nd">@property</span>
+</span><span id="Subqueryable-2452"><a href="#Subqueryable-2452"><span class="linenos">2452</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="Subqueryable-2453"><a href="#Subqueryable-2453"><span class="linenos">2453</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-2454"><a href="#Subqueryable-2454"><span class="linenos">2454</span></a>
+</span><span id="Subqueryable-2455"><a href="#Subqueryable-2455"><span class="linenos">2455</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
+</span><span id="Subqueryable-2456"><a href="#Subqueryable-2456"><span class="linenos">2456</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Subqueryable-2457"><a href="#Subqueryable-2457"><span class="linenos">2457</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Subqueryable-2458"><a href="#Subqueryable-2458"><span class="linenos">2458</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="Subqueryable-2459"><a href="#Subqueryable-2459"><span class="linenos">2459</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Subqueryable-2460"><a href="#Subqueryable-2460"><span class="linenos">2460</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="Subqueryable-2461"><a href="#Subqueryable-2461"><span class="linenos">2461</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Subqueryable-2462"><a href="#Subqueryable-2462"><span class="linenos">2462</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Subqueryable</span><span class="p">:</span>
+</span><span id="Subqueryable-2463"><a href="#Subqueryable-2463"><span class="linenos">2463</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span><span class="s2">&quot;Subqueryable objects must implement `select`&quot;</span><span class="p">)</span>
</span><span id="Subqueryable-2464"><a href="#Subqueryable-2464"><span class="linenos">2464</span></a>
-</span><span id="Subqueryable-2465"><a href="#Subqueryable-2465"><span class="linenos">2465</span></a><span class="sd"> Args:</span>
-</span><span id="Subqueryable-2466"><a href="#Subqueryable-2466"><span class="linenos">2466</span></a><span class="sd"> alias: the SQL code string to parse as the table name.</span>
-</span><span id="Subqueryable-2467"><a href="#Subqueryable-2467"><span class="linenos">2467</span></a><span class="sd"> If an `Expression` instance is passed, this is used as-is.</span>
-</span><span id="Subqueryable-2468"><a href="#Subqueryable-2468"><span class="linenos">2468</span></a><span class="sd"> as_: the SQL code string to parse as the table expression.</span>
-</span><span id="Subqueryable-2469"><a href="#Subqueryable-2469"><span class="linenos">2469</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Subqueryable-2470"><a href="#Subqueryable-2470"><span class="linenos">2470</span></a><span class="sd"> recursive: set the RECURSIVE part of the expression. Defaults to `False`.</span>
-</span><span id="Subqueryable-2471"><a href="#Subqueryable-2471"><span class="linenos">2471</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="Subqueryable-2472"><a href="#Subqueryable-2472"><span class="linenos">2472</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="Subqueryable-2473"><a href="#Subqueryable-2473"><span class="linenos">2473</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="Subqueryable-2474"><a href="#Subqueryable-2474"><span class="linenos">2474</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Subqueryable-2475"><a href="#Subqueryable-2475"><span class="linenos">2475</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Subqueryable-2476"><a href="#Subqueryable-2476"><span class="linenos">2476</span></a>
-</span><span id="Subqueryable-2477"><a href="#Subqueryable-2477"><span class="linenos">2477</span></a><span class="sd"> Returns:</span>
-</span><span id="Subqueryable-2478"><a href="#Subqueryable-2478"><span class="linenos">2478</span></a><span class="sd"> The modified expression.</span>
-</span><span id="Subqueryable-2479"><a href="#Subqueryable-2479"><span class="linenos">2479</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Subqueryable-2480"><a href="#Subqueryable-2480"><span class="linenos">2480</span></a> <span class="k">return</span> <span class="n">_apply_cte_builder</span><span class="p">(</span>
-</span><span id="Subqueryable-2481"><a href="#Subqueryable-2481"><span class="linenos">2481</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="p">,</span> <span class="n">as_</span><span class="p">,</span> <span class="n">recursive</span><span class="o">=</span><span class="n">recursive</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="Subqueryable-2482"><a href="#Subqueryable-2482"><span class="linenos">2482</span></a> <span class="p">)</span>
+</span><span id="Subqueryable-2465"><a href="#Subqueryable-2465"><span class="linenos">2465</span></a> <span class="k">def</span> <span class="nf">with_</span><span class="p">(</span>
+</span><span id="Subqueryable-2466"><a href="#Subqueryable-2466"><span class="linenos">2466</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Subqueryable-2467"><a href="#Subqueryable-2467"><span class="linenos">2467</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="Subqueryable-2468"><a href="#Subqueryable-2468"><span class="linenos">2468</span></a> <span class="n">as_</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="Subqueryable-2469"><a href="#Subqueryable-2469"><span class="linenos">2469</span></a> <span class="n">recursive</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Subqueryable-2470"><a href="#Subqueryable-2470"><span class="linenos">2470</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="Subqueryable-2471"><a href="#Subqueryable-2471"><span class="linenos">2471</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Subqueryable-2472"><a href="#Subqueryable-2472"><span class="linenos">2472</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="Subqueryable-2473"><a href="#Subqueryable-2473"><span class="linenos">2473</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Subqueryable-2474"><a href="#Subqueryable-2474"><span class="linenos">2474</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Subqueryable</span><span class="p">:</span>
+</span><span id="Subqueryable-2475"><a href="#Subqueryable-2475"><span class="linenos">2475</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Subqueryable-2476"><a href="#Subqueryable-2476"><span class="linenos">2476</span></a><span class="sd"> Append to or set the common table expressions.</span>
+</span><span id="Subqueryable-2477"><a href="#Subqueryable-2477"><span class="linenos">2477</span></a>
+</span><span id="Subqueryable-2478"><a href="#Subqueryable-2478"><span class="linenos">2478</span></a><span class="sd"> Example:</span>
+</span><span id="Subqueryable-2479"><a href="#Subqueryable-2479"><span class="linenos">2479</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-2480"><a href="#Subqueryable-2480"><span class="linenos">2480</span></a><span class="sd"> &#39;WITH tbl2 AS (SELECT * FROM tbl) SELECT x FROM tbl2&#39;</span>
+</span><span id="Subqueryable-2481"><a href="#Subqueryable-2481"><span class="linenos">2481</span></a>
+</span><span id="Subqueryable-2482"><a href="#Subqueryable-2482"><span class="linenos">2482</span></a><span class="sd"> Args:</span>
+</span><span id="Subqueryable-2483"><a href="#Subqueryable-2483"><span class="linenos">2483</span></a><span class="sd"> alias: the SQL code string to parse as the table name.</span>
+</span><span id="Subqueryable-2484"><a href="#Subqueryable-2484"><span class="linenos">2484</span></a><span class="sd"> If an `Expression` instance is passed, this is used as-is.</span>
+</span><span id="Subqueryable-2485"><a href="#Subqueryable-2485"><span class="linenos">2485</span></a><span class="sd"> as_: the SQL code string to parse as the table expression.</span>
+</span><span id="Subqueryable-2486"><a href="#Subqueryable-2486"><span class="linenos">2486</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Subqueryable-2487"><a href="#Subqueryable-2487"><span class="linenos">2487</span></a><span class="sd"> recursive: set the RECURSIVE part of the expression. Defaults to `False`.</span>
+</span><span id="Subqueryable-2488"><a href="#Subqueryable-2488"><span class="linenos">2488</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Subqueryable-2489"><a href="#Subqueryable-2489"><span class="linenos">2489</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="Subqueryable-2490"><a href="#Subqueryable-2490"><span class="linenos">2490</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Subqueryable-2491"><a href="#Subqueryable-2491"><span class="linenos">2491</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Subqueryable-2492"><a href="#Subqueryable-2492"><span class="linenos">2492</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Subqueryable-2493"><a href="#Subqueryable-2493"><span class="linenos">2493</span></a>
+</span><span id="Subqueryable-2494"><a href="#Subqueryable-2494"><span class="linenos">2494</span></a><span class="sd"> Returns:</span>
+</span><span id="Subqueryable-2495"><a href="#Subqueryable-2495"><span class="linenos">2495</span></a><span class="sd"> The modified expression.</span>
+</span><span id="Subqueryable-2496"><a href="#Subqueryable-2496"><span class="linenos">2496</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Subqueryable-2497"><a href="#Subqueryable-2497"><span class="linenos">2497</span></a> <span class="k">return</span> <span class="n">_apply_cte_builder</span><span class="p">(</span>
+</span><span id="Subqueryable-2498"><a href="#Subqueryable-2498"><span class="linenos">2498</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="p">,</span> <span class="n">as_</span><span class="p">,</span> <span class="n">recursive</span><span class="o">=</span><span class="n">recursive</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="Subqueryable-2499"><a href="#Subqueryable-2499"><span class="linenos">2499</span></a> <span class="p">)</span>
</span></pre></div>
@@ -37964,27 +39805,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-2396"><a href="#Subqueryable.subquery-2396"><span class="linenos">2396</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="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 class="n">copy</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">Subquery</span><span class="p">:</span>
-</span><span id="Subqueryable.subquery-2397"><a href="#Subqueryable.subquery-2397"><span class="linenos">2397</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Subqueryable.subquery-2398"><a href="#Subqueryable.subquery-2398"><span class="linenos">2398</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-2399"><a href="#Subqueryable.subquery-2399"><span class="linenos">2399</span></a>
-</span><span id="Subqueryable.subquery-2400"><a href="#Subqueryable.subquery-2400"><span class="linenos">2400</span></a><span class="sd"> Example:</span>
-</span><span id="Subqueryable.subquery-2401"><a href="#Subqueryable.subquery-2401"><span class="linenos">2401</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-2402"><a href="#Subqueryable.subquery-2402"><span class="linenos">2402</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(subquery).sql()</span>
-</span><span id="Subqueryable.subquery-2403"><a href="#Subqueryable.subquery-2403"><span class="linenos">2403</span></a><span class="sd"> &#39;SELECT x FROM (SELECT x FROM tbl)&#39;</span>
-</span><span id="Subqueryable.subquery-2404"><a href="#Subqueryable.subquery-2404"><span class="linenos">2404</span></a>
-</span><span id="Subqueryable.subquery-2405"><a href="#Subqueryable.subquery-2405"><span class="linenos">2405</span></a><span class="sd"> Args:</span>
-</span><span id="Subqueryable.subquery-2406"><a href="#Subqueryable.subquery-2406"><span class="linenos">2406</span></a><span class="sd"> alias (str | Identifier): an optional alias for the subquery</span>
-</span><span id="Subqueryable.subquery-2407"><a href="#Subqueryable.subquery-2407"><span class="linenos">2407</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Subqueryable.subquery-2408"><a href="#Subqueryable.subquery-2408"><span class="linenos">2408</span></a>
-</span><span id="Subqueryable.subquery-2409"><a href="#Subqueryable.subquery-2409"><span class="linenos">2409</span></a><span class="sd"> Returns:</span>
-</span><span id="Subqueryable.subquery-2410"><a href="#Subqueryable.subquery-2410"><span class="linenos">2410</span></a><span class="sd"> Alias: the subquery</span>
-</span><span id="Subqueryable.subquery-2411"><a href="#Subqueryable.subquery-2411"><span class="linenos">2411</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Subqueryable.subquery-2412"><a href="#Subqueryable.subquery-2412"><span class="linenos">2412</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-2413"><a href="#Subqueryable.subquery-2413"><span class="linenos">2413</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">alias</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
-</span><span id="Subqueryable.subquery-2414"><a href="#Subqueryable.subquery-2414"><span class="linenos">2414</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><span id="Subqueryable.subquery-2415"><a href="#Subqueryable.subquery-2415"><span class="linenos">2415</span></a>
-</span><span id="Subqueryable.subquery-2416"><a href="#Subqueryable.subquery-2416"><span class="linenos">2416</span></a> <span class="k">return</span> <span class="n">Subquery</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">instance</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="Subqueryable.subquery-2413"><a href="#Subqueryable.subquery-2413"><span class="linenos">2413</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="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 class="n">copy</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">Subquery</span><span class="p">:</span>
+</span><span id="Subqueryable.subquery-2414"><a href="#Subqueryable.subquery-2414"><span class="linenos">2414</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Subqueryable.subquery-2415"><a href="#Subqueryable.subquery-2415"><span class="linenos">2415</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-2416"><a href="#Subqueryable.subquery-2416"><span class="linenos">2416</span></a>
+</span><span id="Subqueryable.subquery-2417"><a href="#Subqueryable.subquery-2417"><span class="linenos">2417</span></a><span class="sd"> Example:</span>
+</span><span id="Subqueryable.subquery-2418"><a href="#Subqueryable.subquery-2418"><span class="linenos">2418</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-2419"><a href="#Subqueryable.subquery-2419"><span class="linenos">2419</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(subquery).sql()</span>
+</span><span id="Subqueryable.subquery-2420"><a href="#Subqueryable.subquery-2420"><span class="linenos">2420</span></a><span class="sd"> &#39;SELECT x FROM (SELECT x FROM tbl)&#39;</span>
+</span><span id="Subqueryable.subquery-2421"><a href="#Subqueryable.subquery-2421"><span class="linenos">2421</span></a>
+</span><span id="Subqueryable.subquery-2422"><a href="#Subqueryable.subquery-2422"><span class="linenos">2422</span></a><span class="sd"> Args:</span>
+</span><span id="Subqueryable.subquery-2423"><a href="#Subqueryable.subquery-2423"><span class="linenos">2423</span></a><span class="sd"> alias (str | Identifier): an optional alias for the subquery</span>
+</span><span id="Subqueryable.subquery-2424"><a href="#Subqueryable.subquery-2424"><span class="linenos">2424</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="Subqueryable.subquery-2425"><a href="#Subqueryable.subquery-2425"><span class="linenos">2425</span></a>
+</span><span id="Subqueryable.subquery-2426"><a href="#Subqueryable.subquery-2426"><span class="linenos">2426</span></a><span class="sd"> Returns:</span>
+</span><span id="Subqueryable.subquery-2427"><a href="#Subqueryable.subquery-2427"><span class="linenos">2427</span></a><span class="sd"> Alias: the subquery</span>
+</span><span id="Subqueryable.subquery-2428"><a href="#Subqueryable.subquery-2428"><span class="linenos">2428</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Subqueryable.subquery-2429"><a href="#Subqueryable.subquery-2429"><span class="linenos">2429</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-2430"><a href="#Subqueryable.subquery-2430"><span class="linenos">2430</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">alias</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
+</span><span id="Subqueryable.subquery-2431"><a href="#Subqueryable.subquery-2431"><span class="linenos">2431</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><span id="Subqueryable.subquery-2432"><a href="#Subqueryable.subquery-2432"><span class="linenos">2432</span></a>
+</span><span id="Subqueryable.subquery-2433"><a href="#Subqueryable.subquery-2433"><span class="linenos">2433</span></a> <span class="k">return</span> <span class="n">Subquery</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">instance</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>
@@ -38028,10 +39869,10 @@ 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-2418"><a href="#Subqueryable.limit-2418"><span class="linenos">2418</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span>
-</span><span id="Subqueryable.limit-2419"><a href="#Subqueryable.limit-2419"><span class="linenos">2419</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span> <span class="o">|</span> <span class="nb">int</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="Subqueryable.limit-2420"><a href="#Subqueryable.limit-2420"><span class="linenos">2420</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Subqueryable.limit-2421"><a href="#Subqueryable.limit-2421"><span class="linenos">2421</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Subqueryable.limit-2435"><a href="#Subqueryable.limit-2435"><span class="linenos">2435</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span>
+</span><span id="Subqueryable.limit-2436"><a href="#Subqueryable.limit-2436"><span class="linenos">2436</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span> <span class="o">|</span> <span class="nb">int</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="Subqueryable.limit-2437"><a href="#Subqueryable.limit-2437"><span class="linenos">2437</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Subqueryable.limit-2438"><a href="#Subqueryable.limit-2438"><span class="linenos">2438</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span>
</span></pre></div>
@@ -38039,35 +39880,59 @@ Otherwise, this resets the expression.</li>
</div>
<div id="Subqueryable.ctes" class="classattr">
- <div class="attr variable">
+ <input id="Subqueryable.ctes-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">ctes</span>
-
+ <label class="view-source-button" for="Subqueryable.ctes-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Subqueryable.ctes"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Subqueryable.ctes-2440"><a href="#Subqueryable.ctes-2440"><span class="linenos">2440</span></a> <span class="nd">@property</span>
+</span><span id="Subqueryable.ctes-2441"><a href="#Subqueryable.ctes-2441"><span class="linenos">2441</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.ctes-2442"><a href="#Subqueryable.ctes-2442"><span class="linenos">2442</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.ctes-2443"><a href="#Subqueryable.ctes-2443"><span class="linenos">2443</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.ctes-2444"><a href="#Subqueryable.ctes-2444"><span class="linenos">2444</span></a> <span class="k">return</span> <span class="p">[]</span>
+</span><span id="Subqueryable.ctes-2445"><a href="#Subqueryable.ctes-2445"><span class="linenos">2445</span></a> <span class="k">return</span> <span class="n">with_</span><span class="o">.</span><span class="n">expressions</span>
+</span></pre></div>
+
+
</div>
<div id="Subqueryable.selects" class="classattr">
- <div class="attr variable">
+ <input id="Subqueryable.selects-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">selects</span><span class="annotation">: List[<a href="#Expression">Expression</a>]</span>
-
+ <label class="view-source-button" for="Subqueryable.selects-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Subqueryable.selects"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Subqueryable.selects-2447"><a href="#Subqueryable.selects-2447"><span class="linenos">2447</span></a> <span class="nd">@property</span>
+</span><span id="Subqueryable.selects-2448"><a href="#Subqueryable.selects-2448"><span class="linenos">2448</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="Subqueryable.selects-2449"><a href="#Subqueryable.selects-2449"><span class="linenos">2449</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></pre></div>
+
+
</div>
<div id="Subqueryable.named_selects" class="classattr">
- <div class="attr variable">
+ <input id="Subqueryable.named_selects-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">named_selects</span><span class="annotation">: List[str]</span>
-
+ <label class="view-source-button" for="Subqueryable.named_selects-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Subqueryable.named_selects"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Subqueryable.named_selects-2451"><a href="#Subqueryable.named_selects-2451"><span class="linenos">2451</span></a> <span class="nd">@property</span>
+</span><span id="Subqueryable.named_selects-2452"><a href="#Subqueryable.named_selects-2452"><span class="linenos">2452</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="Subqueryable.named_selects-2453"><a href="#Subqueryable.named_selects-2453"><span class="linenos">2453</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></pre></div>
+
+
</div>
@@ -38082,15 +39947,15 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Subqueryable.select"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Subqueryable.select-2438"><a href="#Subqueryable.select-2438"><span class="linenos">2438</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
-</span><span id="Subqueryable.select-2439"><a href="#Subqueryable.select-2439"><span class="linenos">2439</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Subqueryable.select-2440"><a href="#Subqueryable.select-2440"><span class="linenos">2440</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Subqueryable.select-2441"><a href="#Subqueryable.select-2441"><span class="linenos">2441</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="Subqueryable.select-2442"><a href="#Subqueryable.select-2442"><span class="linenos">2442</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Subqueryable.select-2443"><a href="#Subqueryable.select-2443"><span class="linenos">2443</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="Subqueryable.select-2444"><a href="#Subqueryable.select-2444"><span class="linenos">2444</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Subqueryable.select-2445"><a href="#Subqueryable.select-2445"><span class="linenos">2445</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Subqueryable</span><span class="p">:</span>
-</span><span id="Subqueryable.select-2446"><a href="#Subqueryable.select-2446"><span class="linenos">2446</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span><span class="s2">&quot;Subqueryable objects must implement `select`&quot;</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Subqueryable.select-2455"><a href="#Subqueryable.select-2455"><span class="linenos">2455</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
+</span><span id="Subqueryable.select-2456"><a href="#Subqueryable.select-2456"><span class="linenos">2456</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Subqueryable.select-2457"><a href="#Subqueryable.select-2457"><span class="linenos">2457</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Subqueryable.select-2458"><a href="#Subqueryable.select-2458"><span class="linenos">2458</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="Subqueryable.select-2459"><a href="#Subqueryable.select-2459"><span class="linenos">2459</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Subqueryable.select-2460"><a href="#Subqueryable.select-2460"><span class="linenos">2460</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="Subqueryable.select-2461"><a href="#Subqueryable.select-2461"><span class="linenos">2461</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Subqueryable.select-2462"><a href="#Subqueryable.select-2462"><span class="linenos">2462</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Subqueryable</span><span class="p">:</span>
+</span><span id="Subqueryable.select-2463"><a href="#Subqueryable.select-2463"><span class="linenos">2463</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span><span class="s2">&quot;Subqueryable objects must implement `select`&quot;</span><span class="p">)</span>
</span></pre></div>
@@ -38108,41 +39973,41 @@ 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_-2448"><a href="#Subqueryable.with_-2448"><span class="linenos">2448</span></a> <span class="k">def</span> <span class="nf">with_</span><span class="p">(</span>
-</span><span id="Subqueryable.with_-2449"><a href="#Subqueryable.with_-2449"><span class="linenos">2449</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Subqueryable.with_-2450"><a href="#Subqueryable.with_-2450"><span class="linenos">2450</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="Subqueryable.with_-2451"><a href="#Subqueryable.with_-2451"><span class="linenos">2451</span></a> <span class="n">as_</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="Subqueryable.with_-2452"><a href="#Subqueryable.with_-2452"><span class="linenos">2452</span></a> <span class="n">recursive</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Subqueryable.with_-2453"><a href="#Subqueryable.with_-2453"><span class="linenos">2453</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="Subqueryable.with_-2454"><a href="#Subqueryable.with_-2454"><span class="linenos">2454</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Subqueryable.with_-2455"><a href="#Subqueryable.with_-2455"><span class="linenos">2455</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="Subqueryable.with_-2456"><a href="#Subqueryable.with_-2456"><span class="linenos">2456</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Subqueryable.with_-2457"><a href="#Subqueryable.with_-2457"><span class="linenos">2457</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Subqueryable</span><span class="p">:</span>
-</span><span id="Subqueryable.with_-2458"><a href="#Subqueryable.with_-2458"><span class="linenos">2458</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Subqueryable.with_-2459"><a href="#Subqueryable.with_-2459"><span class="linenos">2459</span></a><span class="sd"> Append to or set the common table expressions.</span>
-</span><span id="Subqueryable.with_-2460"><a href="#Subqueryable.with_-2460"><span class="linenos">2460</span></a>
-</span><span id="Subqueryable.with_-2461"><a href="#Subqueryable.with_-2461"><span class="linenos">2461</span></a><span class="sd"> Example:</span>
-</span><span id="Subqueryable.with_-2462"><a href="#Subqueryable.with_-2462"><span class="linenos">2462</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_-2463"><a href="#Subqueryable.with_-2463"><span class="linenos">2463</span></a><span class="sd"> &#39;WITH tbl2 AS (SELECT * FROM tbl) SELECT x FROM tbl2&#39;</span>
-</span><span id="Subqueryable.with_-2464"><a href="#Subqueryable.with_-2464"><span class="linenos">2464</span></a>
-</span><span id="Subqueryable.with_-2465"><a href="#Subqueryable.with_-2465"><span class="linenos">2465</span></a><span class="sd"> Args:</span>
-</span><span id="Subqueryable.with_-2466"><a href="#Subqueryable.with_-2466"><span class="linenos">2466</span></a><span class="sd"> alias: the SQL code string to parse as the table name.</span>
-</span><span id="Subqueryable.with_-2467"><a href="#Subqueryable.with_-2467"><span class="linenos">2467</span></a><span class="sd"> If an `Expression` instance is passed, this is used as-is.</span>
-</span><span id="Subqueryable.with_-2468"><a href="#Subqueryable.with_-2468"><span class="linenos">2468</span></a><span class="sd"> as_: the SQL code string to parse as the table expression.</span>
-</span><span id="Subqueryable.with_-2469"><a href="#Subqueryable.with_-2469"><span class="linenos">2469</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Subqueryable.with_-2470"><a href="#Subqueryable.with_-2470"><span class="linenos">2470</span></a><span class="sd"> recursive: set the RECURSIVE part of the expression. Defaults to `False`.</span>
-</span><span id="Subqueryable.with_-2471"><a href="#Subqueryable.with_-2471"><span class="linenos">2471</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="Subqueryable.with_-2472"><a href="#Subqueryable.with_-2472"><span class="linenos">2472</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="Subqueryable.with_-2473"><a href="#Subqueryable.with_-2473"><span class="linenos">2473</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="Subqueryable.with_-2474"><a href="#Subqueryable.with_-2474"><span class="linenos">2474</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Subqueryable.with_-2475"><a href="#Subqueryable.with_-2475"><span class="linenos">2475</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Subqueryable.with_-2476"><a href="#Subqueryable.with_-2476"><span class="linenos">2476</span></a>
-</span><span id="Subqueryable.with_-2477"><a href="#Subqueryable.with_-2477"><span class="linenos">2477</span></a><span class="sd"> Returns:</span>
-</span><span id="Subqueryable.with_-2478"><a href="#Subqueryable.with_-2478"><span class="linenos">2478</span></a><span class="sd"> The modified expression.</span>
-</span><span id="Subqueryable.with_-2479"><a href="#Subqueryable.with_-2479"><span class="linenos">2479</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Subqueryable.with_-2480"><a href="#Subqueryable.with_-2480"><span class="linenos">2480</span></a> <span class="k">return</span> <span class="n">_apply_cte_builder</span><span class="p">(</span>
-</span><span id="Subqueryable.with_-2481"><a href="#Subqueryable.with_-2481"><span class="linenos">2481</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="p">,</span> <span class="n">as_</span><span class="p">,</span> <span class="n">recursive</span><span class="o">=</span><span class="n">recursive</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="Subqueryable.with_-2482"><a href="#Subqueryable.with_-2482"><span class="linenos">2482</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Subqueryable.with_-2465"><a href="#Subqueryable.with_-2465"><span class="linenos">2465</span></a> <span class="k">def</span> <span class="nf">with_</span><span class="p">(</span>
+</span><span id="Subqueryable.with_-2466"><a href="#Subqueryable.with_-2466"><span class="linenos">2466</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Subqueryable.with_-2467"><a href="#Subqueryable.with_-2467"><span class="linenos">2467</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="Subqueryable.with_-2468"><a href="#Subqueryable.with_-2468"><span class="linenos">2468</span></a> <span class="n">as_</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="Subqueryable.with_-2469"><a href="#Subqueryable.with_-2469"><span class="linenos">2469</span></a> <span class="n">recursive</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Subqueryable.with_-2470"><a href="#Subqueryable.with_-2470"><span class="linenos">2470</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="Subqueryable.with_-2471"><a href="#Subqueryable.with_-2471"><span class="linenos">2471</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Subqueryable.with_-2472"><a href="#Subqueryable.with_-2472"><span class="linenos">2472</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="Subqueryable.with_-2473"><a href="#Subqueryable.with_-2473"><span class="linenos">2473</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Subqueryable.with_-2474"><a href="#Subqueryable.with_-2474"><span class="linenos">2474</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Subqueryable</span><span class="p">:</span>
+</span><span id="Subqueryable.with_-2475"><a href="#Subqueryable.with_-2475"><span class="linenos">2475</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Subqueryable.with_-2476"><a href="#Subqueryable.with_-2476"><span class="linenos">2476</span></a><span class="sd"> Append to or set the common table expressions.</span>
+</span><span id="Subqueryable.with_-2477"><a href="#Subqueryable.with_-2477"><span class="linenos">2477</span></a>
+</span><span id="Subqueryable.with_-2478"><a href="#Subqueryable.with_-2478"><span class="linenos">2478</span></a><span class="sd"> Example:</span>
+</span><span id="Subqueryable.with_-2479"><a href="#Subqueryable.with_-2479"><span class="linenos">2479</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_-2480"><a href="#Subqueryable.with_-2480"><span class="linenos">2480</span></a><span class="sd"> &#39;WITH tbl2 AS (SELECT * FROM tbl) SELECT x FROM tbl2&#39;</span>
+</span><span id="Subqueryable.with_-2481"><a href="#Subqueryable.with_-2481"><span class="linenos">2481</span></a>
+</span><span id="Subqueryable.with_-2482"><a href="#Subqueryable.with_-2482"><span class="linenos">2482</span></a><span class="sd"> Args:</span>
+</span><span id="Subqueryable.with_-2483"><a href="#Subqueryable.with_-2483"><span class="linenos">2483</span></a><span class="sd"> alias: the SQL code string to parse as the table name.</span>
+</span><span id="Subqueryable.with_-2484"><a href="#Subqueryable.with_-2484"><span class="linenos">2484</span></a><span class="sd"> If an `Expression` instance is passed, this is used as-is.</span>
+</span><span id="Subqueryable.with_-2485"><a href="#Subqueryable.with_-2485"><span class="linenos">2485</span></a><span class="sd"> as_: the SQL code string to parse as the table expression.</span>
+</span><span id="Subqueryable.with_-2486"><a href="#Subqueryable.with_-2486"><span class="linenos">2486</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Subqueryable.with_-2487"><a href="#Subqueryable.with_-2487"><span class="linenos">2487</span></a><span class="sd"> recursive: set the RECURSIVE part of the expression. Defaults to `False`.</span>
+</span><span id="Subqueryable.with_-2488"><a href="#Subqueryable.with_-2488"><span class="linenos">2488</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Subqueryable.with_-2489"><a href="#Subqueryable.with_-2489"><span class="linenos">2489</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="Subqueryable.with_-2490"><a href="#Subqueryable.with_-2490"><span class="linenos">2490</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Subqueryable.with_-2491"><a href="#Subqueryable.with_-2491"><span class="linenos">2491</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Subqueryable.with_-2492"><a href="#Subqueryable.with_-2492"><span class="linenos">2492</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Subqueryable.with_-2493"><a href="#Subqueryable.with_-2493"><span class="linenos">2493</span></a>
+</span><span id="Subqueryable.with_-2494"><a href="#Subqueryable.with_-2494"><span class="linenos">2494</span></a><span class="sd"> Returns:</span>
+</span><span id="Subqueryable.with_-2495"><a href="#Subqueryable.with_-2495"><span class="linenos">2495</span></a><span class="sd"> The modified expression.</span>
+</span><span id="Subqueryable.with_-2496"><a href="#Subqueryable.with_-2496"><span class="linenos">2496</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Subqueryable.with_-2497"><a href="#Subqueryable.with_-2497"><span class="linenos">2497</span></a> <span class="k">return</span> <span class="n">_apply_cte_builder</span><span class="p">(</span>
+</span><span id="Subqueryable.with_-2498"><a href="#Subqueryable.with_-2498"><span class="linenos">2498</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="p">,</span> <span class="n">as_</span><span class="p">,</span> <span class="n">recursive</span><span class="o">=</span><span class="n">recursive</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="Subqueryable.with_-2499"><a href="#Subqueryable.with_-2499"><span class="linenos">2499</span></a> <span class="p">)</span>
</span></pre></div>
@@ -38220,6 +40085,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Subqueryable.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Subqueryable.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Subqueryable.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Subqueryable.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Subqueryable.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Subqueryable.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Subqueryable.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -38240,6 +40106,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Subqueryable.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Subqueryable.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Subqueryable.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Subqueryable.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Subqueryable.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Subqueryable.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Subqueryable.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -38261,6 +40128,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Subqueryable.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Subqueryable.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Subqueryable.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Subqueryable.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Unionable">Unionable</a></dt>
@@ -38296,8 +40164,8 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#WithTableHint"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="WithTableHint-2510"><a href="#WithTableHint-2510"><span class="linenos">2510</span></a><span class="k">class</span> <span class="nc">WithTableHint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="WithTableHint-2511"><a href="#WithTableHint-2511"><span class="linenos">2511</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="WithTableHint-2527"><a href="#WithTableHint-2527"><span class="linenos">2527</span></a><span class="k">class</span> <span class="nc">WithTableHint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="WithTableHint-2528"><a href="#WithTableHint-2528"><span class="linenos">2528</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>
@@ -38352,6 +40220,7 @@ Otherwise, this resets the expressions.</li>
<dd id="WithTableHint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="WithTableHint.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="WithTableHint.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="WithTableHint.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="WithTableHint.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="WithTableHint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="WithTableHint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -38372,6 +40241,7 @@ Otherwise, this resets the expressions.</li>
<dd id="WithTableHint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="WithTableHint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="WithTableHint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="WithTableHint.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="WithTableHint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="WithTableHint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="WithTableHint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -38393,6 +40263,7 @@ Otherwise, this resets the expressions.</li>
<dd id="WithTableHint.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="WithTableHint.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="WithTableHint.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="WithTableHint.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -38409,8 +40280,8 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#IndexTableHint"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="IndexTableHint-2515"><a href="#IndexTableHint-2515"><span class="linenos">2515</span></a><span class="k">class</span> <span class="nc">IndexTableHint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="IndexTableHint-2516"><a href="#IndexTableHint-2516"><span class="linenos">2516</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;target&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="IndexTableHint-2532"><a href="#IndexTableHint-2532"><span class="linenos">2532</span></a><span class="k">class</span> <span class="nc">IndexTableHint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="IndexTableHint-2533"><a href="#IndexTableHint-2533"><span class="linenos">2533</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;target&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -38465,6 +40336,7 @@ Otherwise, this resets the expressions.</li>
<dd id="IndexTableHint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="IndexTableHint.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="IndexTableHint.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="IndexTableHint.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="IndexTableHint.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="IndexTableHint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="IndexTableHint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -38485,6 +40357,7 @@ Otherwise, this resets the expressions.</li>
<dd id="IndexTableHint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="IndexTableHint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="IndexTableHint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="IndexTableHint.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="IndexTableHint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="IndexTableHint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="IndexTableHint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -38506,6 +40379,7 @@ Otherwise, this resets the expressions.</li>
<dd id="IndexTableHint.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="IndexTableHint.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="IndexTableHint.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="IndexTableHint.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -38522,8 +40396,8 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#HistoricalData"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="HistoricalData-2520"><a href="#HistoricalData-2520"><span class="linenos">2520</span></a><span class="k">class</span> <span class="nc">HistoricalData</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="HistoricalData-2521"><a href="#HistoricalData-2521"><span class="linenos">2521</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="HistoricalData-2537"><a href="#HistoricalData-2537"><span class="linenos">2537</span></a><span class="k">class</span> <span class="nc">HistoricalData</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="HistoricalData-2538"><a href="#HistoricalData-2538"><span class="linenos">2538</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -38578,6 +40452,7 @@ Otherwise, this resets the expressions.</li>
<dd id="HistoricalData.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="HistoricalData.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="HistoricalData.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="HistoricalData.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="HistoricalData.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="HistoricalData.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="HistoricalData.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -38598,6 +40473,7 @@ Otherwise, this resets the expressions.</li>
<dd id="HistoricalData.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="HistoricalData.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="HistoricalData.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="HistoricalData.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="HistoricalData.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="HistoricalData.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="HistoricalData.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -38619,6 +40495,7 @@ Otherwise, this resets the expressions.</li>
<dd id="HistoricalData.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="HistoricalData.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="HistoricalData.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="HistoricalData.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -38635,61 +40512,68 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Table"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Table-2524"><a href="#Table-2524"><span class="linenos">2524</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-2525"><a href="#Table-2525"><span class="linenos">2525</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Table-2526"><a href="#Table-2526"><span class="linenos">2526</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-2527"><a href="#Table-2527"><span class="linenos">2527</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-2528"><a href="#Table-2528"><span class="linenos">2528</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-2529"><a href="#Table-2529"><span class="linenos">2529</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-2530"><a href="#Table-2530"><span class="linenos">2530</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-2531"><a href="#Table-2531"><span class="linenos">2531</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-2532"><a href="#Table-2532"><span class="linenos">2532</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-2533"><a href="#Table-2533"><span class="linenos">2533</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-2534"><a href="#Table-2534"><span class="linenos">2534</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-2535"><a href="#Table-2535"><span class="linenos">2535</span></a> <span class="s2">&quot;version&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Table-2536"><a href="#Table-2536"><span class="linenos">2536</span></a> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Table-2537"><a href="#Table-2537"><span class="linenos">2537</span></a> <span class="s2">&quot;pattern&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Table-2538"><a href="#Table-2538"><span class="linenos">2538</span></a> <span class="s2">&quot;index&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Table-2539"><a href="#Table-2539"><span class="linenos">2539</span></a> <span class="s2">&quot;ordinality&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Table-2540"><a href="#Table-2540"><span class="linenos">2540</span></a> <span class="s2">&quot;when&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Table-2541"><a href="#Table-2541"><span class="linenos">2541</span></a> <span class="p">}</span>
-</span><span id="Table-2542"><a href="#Table-2542"><span class="linenos">2542</span></a>
-</span><span id="Table-2543"><a href="#Table-2543"><span class="linenos">2543</span></a> <span class="nd">@property</span>
-</span><span id="Table-2544"><a href="#Table-2544"><span class="linenos">2544</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Table-2545"><a href="#Table-2545"><span class="linenos">2545</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
-</span><span id="Table-2546"><a href="#Table-2546"><span class="linenos">2546</span></a> <span class="k">return</span> <span class="s2">&quot;&quot;</span>
-</span><span id="Table-2547"><a href="#Table-2547"><span class="linenos">2547</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span>
-</span><span id="Table-2548"><a href="#Table-2548"><span class="linenos">2548</span></a>
-</span><span id="Table-2549"><a href="#Table-2549"><span class="linenos">2549</span></a> <span class="nd">@property</span>
-</span><span id="Table-2550"><a href="#Table-2550"><span class="linenos">2550</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-2551"><a href="#Table-2551"><span class="linenos">2551</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-2552"><a href="#Table-2552"><span class="linenos">2552</span></a>
-</span><span id="Table-2553"><a href="#Table-2553"><span class="linenos">2553</span></a> <span class="nd">@property</span>
-</span><span id="Table-2554"><a href="#Table-2554"><span class="linenos">2554</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-2555"><a href="#Table-2555"><span class="linenos">2555</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;catalog&quot;</span><span class="p">)</span>
-</span><span id="Table-2556"><a href="#Table-2556"><span class="linenos">2556</span></a>
-</span><span id="Table-2557"><a href="#Table-2557"><span class="linenos">2557</span></a> <span class="nd">@property</span>
-</span><span id="Table-2558"><a href="#Table-2558"><span class="linenos">2558</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
-</span><span id="Table-2559"><a href="#Table-2559"><span class="linenos">2559</span></a> <span class="k">return</span> <span class="p">[]</span>
-</span><span id="Table-2560"><a href="#Table-2560"><span class="linenos">2560</span></a>
-</span><span id="Table-2561"><a href="#Table-2561"><span class="linenos">2561</span></a> <span class="nd">@property</span>
-</span><span id="Table-2562"><a href="#Table-2562"><span class="linenos">2562</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
-</span><span id="Table-2563"><a href="#Table-2563"><span class="linenos">2563</span></a> <span class="k">return</span> <span class="p">[]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Table-2541"><a href="#Table-2541"><span class="linenos">2541</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-2542"><a href="#Table-2542"><span class="linenos">2542</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Table-2543"><a href="#Table-2543"><span class="linenos">2543</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-2544"><a href="#Table-2544"><span class="linenos">2544</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-2545"><a href="#Table-2545"><span class="linenos">2545</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-2546"><a href="#Table-2546"><span class="linenos">2546</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-2547"><a href="#Table-2547"><span class="linenos">2547</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-2548"><a href="#Table-2548"><span class="linenos">2548</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-2549"><a href="#Table-2549"><span class="linenos">2549</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-2550"><a href="#Table-2550"><span class="linenos">2550</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-2551"><a href="#Table-2551"><span class="linenos">2551</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-2552"><a href="#Table-2552"><span class="linenos">2552</span></a> <span class="s2">&quot;version&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Table-2553"><a href="#Table-2553"><span class="linenos">2553</span></a> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Table-2554"><a href="#Table-2554"><span class="linenos">2554</span></a> <span class="s2">&quot;pattern&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Table-2555"><a href="#Table-2555"><span class="linenos">2555</span></a> <span class="s2">&quot;ordinality&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Table-2556"><a href="#Table-2556"><span class="linenos">2556</span></a> <span class="s2">&quot;when&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Table-2557"><a href="#Table-2557"><span class="linenos">2557</span></a> <span class="p">}</span>
+</span><span id="Table-2558"><a href="#Table-2558"><span class="linenos">2558</span></a>
+</span><span id="Table-2559"><a href="#Table-2559"><span class="linenos">2559</span></a> <span class="nd">@property</span>
+</span><span id="Table-2560"><a href="#Table-2560"><span class="linenos">2560</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Table-2561"><a href="#Table-2561"><span class="linenos">2561</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
+</span><span id="Table-2562"><a href="#Table-2562"><span class="linenos">2562</span></a> <span class="k">return</span> <span class="s2">&quot;&quot;</span>
+</span><span id="Table-2563"><a href="#Table-2563"><span class="linenos">2563</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span>
</span><span id="Table-2564"><a href="#Table-2564"><span class="linenos">2564</span></a>
</span><span id="Table-2565"><a href="#Table-2565"><span class="linenos">2565</span></a> <span class="nd">@property</span>
-</span><span id="Table-2566"><a href="#Table-2566"><span class="linenos">2566</span></a> <span class="k">def</span> <span class="nf">parts</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
-</span><span id="Table-2567"><a href="#Table-2567"><span class="linenos">2567</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Return the parts of a table in order catalog, db, table.&quot;&quot;&quot;</span>
-</span><span id="Table-2568"><a href="#Table-2568"><span class="linenos">2568</span></a> <span class="n">parts</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
-</span><span id="Table-2569"><a href="#Table-2569"><span class="linenos">2569</span></a>
-</span><span id="Table-2570"><a href="#Table-2570"><span class="linenos">2570</span></a> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">&quot;catalog&quot;</span><span class="p">,</span> <span class="s2">&quot;db&quot;</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">):</span>
-</span><span id="Table-2571"><a href="#Table-2571"><span class="linenos">2571</span></a> <span class="n">part</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span>
+</span><span id="Table-2566"><a href="#Table-2566"><span class="linenos">2566</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-2567"><a href="#Table-2567"><span class="linenos">2567</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-2568"><a href="#Table-2568"><span class="linenos">2568</span></a>
+</span><span id="Table-2569"><a href="#Table-2569"><span class="linenos">2569</span></a> <span class="nd">@property</span>
+</span><span id="Table-2570"><a href="#Table-2570"><span class="linenos">2570</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-2571"><a href="#Table-2571"><span class="linenos">2571</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;catalog&quot;</span><span class="p">)</span>
</span><span id="Table-2572"><a href="#Table-2572"><span class="linenos">2572</span></a>
-</span><span id="Table-2573"><a href="#Table-2573"><span class="linenos">2573</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">part</span><span class="p">,</span> <span class="n">Dot</span><span class="p">):</span>
-</span><span id="Table-2574"><a href="#Table-2574"><span class="linenos">2574</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">part</span><span class="o">.</span><span class="n">flatten</span><span class="p">())</span>
-</span><span id="Table-2575"><a href="#Table-2575"><span class="linenos">2575</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">part</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
-</span><span id="Table-2576"><a href="#Table-2576"><span class="linenos">2576</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">part</span><span class="p">)</span>
-</span><span id="Table-2577"><a href="#Table-2577"><span class="linenos">2577</span></a>
-</span><span id="Table-2578"><a href="#Table-2578"><span class="linenos">2578</span></a> <span class="k">return</span> <span class="n">parts</span>
+</span><span id="Table-2573"><a href="#Table-2573"><span class="linenos">2573</span></a> <span class="nd">@property</span>
+</span><span id="Table-2574"><a href="#Table-2574"><span class="linenos">2574</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="Table-2575"><a href="#Table-2575"><span class="linenos">2575</span></a> <span class="k">return</span> <span class="p">[]</span>
+</span><span id="Table-2576"><a href="#Table-2576"><span class="linenos">2576</span></a>
+</span><span id="Table-2577"><a href="#Table-2577"><span class="linenos">2577</span></a> <span class="nd">@property</span>
+</span><span id="Table-2578"><a href="#Table-2578"><span class="linenos">2578</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
+</span><span id="Table-2579"><a href="#Table-2579"><span class="linenos">2579</span></a> <span class="k">return</span> <span class="p">[]</span>
+</span><span id="Table-2580"><a href="#Table-2580"><span class="linenos">2580</span></a>
+</span><span id="Table-2581"><a href="#Table-2581"><span class="linenos">2581</span></a> <span class="nd">@property</span>
+</span><span id="Table-2582"><a href="#Table-2582"><span class="linenos">2582</span></a> <span class="k">def</span> <span class="nf">parts</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="Table-2583"><a href="#Table-2583"><span class="linenos">2583</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Return the parts of a table in order catalog, db, table.&quot;&quot;&quot;</span>
+</span><span id="Table-2584"><a href="#Table-2584"><span class="linenos">2584</span></a> <span class="n">parts</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="Table-2585"><a href="#Table-2585"><span class="linenos">2585</span></a>
+</span><span id="Table-2586"><a href="#Table-2586"><span class="linenos">2586</span></a> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">&quot;catalog&quot;</span><span class="p">,</span> <span class="s2">&quot;db&quot;</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">):</span>
+</span><span id="Table-2587"><a href="#Table-2587"><span class="linenos">2587</span></a> <span class="n">part</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span>
+</span><span id="Table-2588"><a href="#Table-2588"><span class="linenos">2588</span></a>
+</span><span id="Table-2589"><a href="#Table-2589"><span class="linenos">2589</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">part</span><span class="p">,</span> <span class="n">Dot</span><span class="p">):</span>
+</span><span id="Table-2590"><a href="#Table-2590"><span class="linenos">2590</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">part</span><span class="o">.</span><span class="n">flatten</span><span class="p">())</span>
+</span><span id="Table-2591"><a href="#Table-2591"><span class="linenos">2591</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">part</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
+</span><span id="Table-2592"><a href="#Table-2592"><span class="linenos">2592</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">part</span><span class="p">)</span>
+</span><span id="Table-2593"><a href="#Table-2593"><span class="linenos">2593</span></a>
+</span><span id="Table-2594"><a href="#Table-2594"><span class="linenos">2594</span></a> <span class="k">return</span> <span class="n">parts</span>
+</span><span id="Table-2595"><a href="#Table-2595"><span class="linenos">2595</span></a>
+</span><span id="Table-2596"><a href="#Table-2596"><span class="linenos">2596</span></a> <span class="k">def</span> <span class="nf">to_column</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Alias</span> <span class="o">|</span> <span class="n">Column</span> <span class="o">|</span> <span class="n">Dot</span><span class="p">:</span>
+</span><span id="Table-2597"><a href="#Table-2597"><span class="linenos">2597</span></a> <span class="n">parts</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parts</span>
+</span><span id="Table-2598"><a href="#Table-2598"><span class="linenos">2598</span></a> <span class="n">col</span> <span class="o">=</span> <span class="n">column</span><span class="p">(</span><span class="o">*</span><span class="nb">reversed</span><span class="p">(</span><span class="n">parts</span><span class="p">[</span><span class="mi">0</span><span class="p">:</span><span class="mi">4</span><span class="p">]),</span> <span class="n">fields</span><span class="o">=</span><span class="n">parts</span><span class="p">[</span><span class="mi">4</span><span class="p">:],</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="c1"># type: ignore</span>
+</span><span id="Table-2599"><a href="#Table-2599"><span class="linenos">2599</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;alias&quot;</span><span class="p">)</span>
+</span><span id="Table-2600"><a href="#Table-2600"><span class="linenos">2600</span></a> <span class="k">if</span> <span class="n">alias</span><span class="p">:</span>
+</span><span id="Table-2601"><a href="#Table-2601"><span class="linenos">2601</span></a> <span class="n">col</span> <span class="o">=</span> <span class="n">alias_</span><span class="p">(</span><span class="n">col</span><span class="p">,</span> <span class="n">alias</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span>
+</span><span id="Table-2602"><a href="#Table-2602"><span class="linenos">2602</span></a> <span class="k">return</span> <span class="n">col</span>
</span></pre></div>
@@ -38699,7 +40583,7 @@ Otherwise, this resets the expressions.</li>
<div class="attr variable">
<span class="name">arg_types</span> =
<input id="Table.arg_types-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
- <label class="view-value-button pdoc-button" for="Table.arg_types-view-value"></label><span class="default_value">{&#39;this&#39;: True, &#39;alias&#39;: False, &#39;db&#39;: False, &#39;catalog&#39;: False, &#39;laterals&#39;: False, &#39;joins&#39;: False, &#39;pivots&#39;: False, &#39;hints&#39;: False, &#39;system_time&#39;: False, &#39;version&#39;: False, &#39;format&#39;: False, &#39;pattern&#39;: False, &#39;index&#39;: False, &#39;ordinality&#39;: False, &#39;when&#39;: False}</span>
+ <label class="view-value-button pdoc-button" for="Table.arg_types-view-value"></label><span class="default_value">{&#39;this&#39;: True, &#39;alias&#39;: False, &#39;db&#39;: False, &#39;catalog&#39;: False, &#39;laterals&#39;: False, &#39;joins&#39;: False, &#39;pivots&#39;: False, &#39;hints&#39;: False, &#39;system_time&#39;: False, &#39;version&#39;: False, &#39;format&#39;: False, &#39;pattern&#39;: False, &#39;ordinality&#39;: False, &#39;when&#39;: False}</span>
</div>
@@ -38709,73 +40593,152 @@ Otherwise, this resets the expressions.</li>
</div>
<div id="Table.name" class="classattr">
- <div class="attr variable">
+ <input id="Table.name-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">name</span><span class="annotation">: str</span>
-
+ <label class="view-source-button" for="Table.name-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Table.name"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Table.name-2559"><a href="#Table.name-2559"><span class="linenos">2559</span></a> <span class="nd">@property</span>
+</span><span id="Table.name-2560"><a href="#Table.name-2560"><span class="linenos">2560</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Table.name-2561"><a href="#Table.name-2561"><span class="linenos">2561</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
+</span><span id="Table.name-2562"><a href="#Table.name-2562"><span class="linenos">2562</span></a> <span class="k">return</span> <span class="s2">&quot;&quot;</span>
+</span><span id="Table.name-2563"><a href="#Table.name-2563"><span class="linenos">2563</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span>
+</span></pre></div>
+
+
</div>
<div id="Table.db" class="classattr">
- <div class="attr variable">
+ <input id="Table.db-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">db</span><span class="annotation">: str</span>
-
+ <label class="view-source-button" for="Table.db-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Table.db"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Table.db-2565"><a href="#Table.db-2565"><span class="linenos">2565</span></a> <span class="nd">@property</span>
+</span><span id="Table.db-2566"><a href="#Table.db-2566"><span class="linenos">2566</span></a> <span class="k">def</span> <span class="nf">db</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Table.db-2567"><a href="#Table.db-2567"><span class="linenos">2567</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;db&quot;</span><span class="p">)</span>
+</span></pre></div>
+
+
</div>
<div id="Table.catalog" class="classattr">
- <div class="attr variable">
+ <input id="Table.catalog-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">catalog</span><span class="annotation">: str</span>
-
+ <label class="view-source-button" for="Table.catalog-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Table.catalog"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Table.catalog-2569"><a href="#Table.catalog-2569"><span class="linenos">2569</span></a> <span class="nd">@property</span>
+</span><span id="Table.catalog-2570"><a href="#Table.catalog-2570"><span class="linenos">2570</span></a> <span class="k">def</span> <span class="nf">catalog</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Table.catalog-2571"><a href="#Table.catalog-2571"><span class="linenos">2571</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>
+
+
</div>
<div id="Table.selects" class="classattr">
- <div class="attr variable">
+ <input id="Table.selects-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">selects</span><span class="annotation">: List[<a href="#Expression">Expression</a>]</span>
-
+ <label class="view-source-button" for="Table.selects-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Table.selects"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Table.selects-2573"><a href="#Table.selects-2573"><span class="linenos">2573</span></a> <span class="nd">@property</span>
+</span><span id="Table.selects-2574"><a href="#Table.selects-2574"><span class="linenos">2574</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="Table.selects-2575"><a href="#Table.selects-2575"><span class="linenos">2575</span></a> <span class="k">return</span> <span class="p">[]</span>
+</span></pre></div>
+
+
</div>
<div id="Table.named_selects" class="classattr">
- <div class="attr variable">
+ <input id="Table.named_selects-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">named_selects</span><span class="annotation">: List[str]</span>
-
+ <label class="view-source-button" for="Table.named_selects-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Table.named_selects"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Table.named_selects-2577"><a href="#Table.named_selects-2577"><span class="linenos">2577</span></a> <span class="nd">@property</span>
+</span><span id="Table.named_selects-2578"><a href="#Table.named_selects-2578"><span class="linenos">2578</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
+</span><span id="Table.named_selects-2579"><a href="#Table.named_selects-2579"><span class="linenos">2579</span></a> <span class="k">return</span> <span class="p">[]</span>
+</span></pre></div>
+
+
</div>
<div id="Table.parts" class="classattr">
- <div class="attr variable">
+ <input id="Table.parts-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">parts</span><span class="annotation">: List[<a href="#Expression">Expression</a>]</span>
-
+ <label class="view-source-button" for="Table.parts-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Table.parts"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Table.parts-2581"><a href="#Table.parts-2581"><span class="linenos">2581</span></a> <span class="nd">@property</span>
+</span><span id="Table.parts-2582"><a href="#Table.parts-2582"><span class="linenos">2582</span></a> <span class="k">def</span> <span class="nf">parts</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="Table.parts-2583"><a href="#Table.parts-2583"><span class="linenos">2583</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Return the parts of a table in order catalog, db, table.&quot;&quot;&quot;</span>
+</span><span id="Table.parts-2584"><a href="#Table.parts-2584"><span class="linenos">2584</span></a> <span class="n">parts</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="Table.parts-2585"><a href="#Table.parts-2585"><span class="linenos">2585</span></a>
+</span><span id="Table.parts-2586"><a href="#Table.parts-2586"><span class="linenos">2586</span></a> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">&quot;catalog&quot;</span><span class="p">,</span> <span class="s2">&quot;db&quot;</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">):</span>
+</span><span id="Table.parts-2587"><a href="#Table.parts-2587"><span class="linenos">2587</span></a> <span class="n">part</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span>
+</span><span id="Table.parts-2588"><a href="#Table.parts-2588"><span class="linenos">2588</span></a>
+</span><span id="Table.parts-2589"><a href="#Table.parts-2589"><span class="linenos">2589</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">part</span><span class="p">,</span> <span class="n">Dot</span><span class="p">):</span>
+</span><span id="Table.parts-2590"><a href="#Table.parts-2590"><span class="linenos">2590</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">part</span><span class="o">.</span><span class="n">flatten</span><span class="p">())</span>
+</span><span id="Table.parts-2591"><a href="#Table.parts-2591"><span class="linenos">2591</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">part</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
+</span><span id="Table.parts-2592"><a href="#Table.parts-2592"><span class="linenos">2592</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">part</span><span class="p">)</span>
+</span><span id="Table.parts-2593"><a href="#Table.parts-2593"><span class="linenos">2593</span></a>
+</span><span id="Table.parts-2594"><a href="#Table.parts-2594"><span class="linenos">2594</span></a> <span class="k">return</span> <span class="n">parts</span>
+</span></pre></div>
+
+
<div class="docstring"><p>Return the parts of a table in order catalog, db, table.</p>
</div>
</div>
+ <div id="Table.to_column" class="classattr">
+ <input id="Table.to_column-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr function">
+
+ <span class="def">def</span>
+ <span class="name">to_column</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</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="#Alias">Alias</a></span> <span class="o">|</span> <span class="n"><a href="#Column">Column</a></span> <span class="o">|</span> <span class="n"><a href="#Dot">Dot</a></span>:</span></span>
+
+ <label class="view-source-button" for="Table.to_column-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#Table.to_column"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Table.to_column-2596"><a href="#Table.to_column-2596"><span class="linenos">2596</span></a> <span class="k">def</span> <span class="nf">to_column</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Alias</span> <span class="o">|</span> <span class="n">Column</span> <span class="o">|</span> <span class="n">Dot</span><span class="p">:</span>
+</span><span id="Table.to_column-2597"><a href="#Table.to_column-2597"><span class="linenos">2597</span></a> <span class="n">parts</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parts</span>
+</span><span id="Table.to_column-2598"><a href="#Table.to_column-2598"><span class="linenos">2598</span></a> <span class="n">col</span> <span class="o">=</span> <span class="n">column</span><span class="p">(</span><span class="o">*</span><span class="nb">reversed</span><span class="p">(</span><span class="n">parts</span><span class="p">[</span><span class="mi">0</span><span class="p">:</span><span class="mi">4</span><span class="p">]),</span> <span class="n">fields</span><span class="o">=</span><span class="n">parts</span><span class="p">[</span><span class="mi">4</span><span class="p">:],</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="c1"># type: ignore</span>
+</span><span id="Table.to_column-2599"><a href="#Table.to_column-2599"><span class="linenos">2599</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;alias&quot;</span><span class="p">)</span>
+</span><span id="Table.to_column-2600"><a href="#Table.to_column-2600"><span class="linenos">2600</span></a> <span class="k">if</span> <span class="n">alias</span><span class="p">:</span>
+</span><span id="Table.to_column-2601"><a href="#Table.to_column-2601"><span class="linenos">2601</span></a> <span class="n">col</span> <span class="o">=</span> <span class="n">alias_</span><span class="p">(</span><span class="n">col</span><span class="p">,</span> <span class="n">alias</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span>
+</span><span id="Table.to_column-2602"><a href="#Table.to_column-2602"><span class="linenos">2602</span></a> <span class="k">return</span> <span class="n">col</span>
+</span></pre></div>
+
+
+
+
+ </div>
<div id="Table.key" class="classattr">
<div class="attr variable">
<span class="name">key</span> =
@@ -38812,6 +40775,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Table.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Table.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Table.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Table.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Table.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Table.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Table.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -38832,6 +40796,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Table.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Table.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Table.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Table.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Table.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Table.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Table.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -38853,6 +40818,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Table.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Table.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Table.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Table.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -38869,97 +40835,97 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Union"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Union-2581"><a href="#Union-2581"><span class="linenos">2581</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-2582"><a href="#Union-2582"><span class="linenos">2582</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Union-2583"><a href="#Union-2583"><span class="linenos">2583</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-2584"><a href="#Union-2584"><span class="linenos">2584</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-2585"><a href="#Union-2585"><span class="linenos">2585</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-2586"><a href="#Union-2586"><span class="linenos">2586</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-2587"><a href="#Union-2587"><span class="linenos">2587</span></a> <span class="s2">&quot;by_name&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Union-2588"><a href="#Union-2588"><span class="linenos">2588</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span>
-</span><span id="Union-2589"><a href="#Union-2589"><span class="linenos">2589</span></a> <span class="p">}</span>
-</span><span id="Union-2590"><a href="#Union-2590"><span class="linenos">2590</span></a>
-</span><span id="Union-2591"><a href="#Union-2591"><span class="linenos">2591</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span>
-</span><span id="Union-2592"><a href="#Union-2592"><span class="linenos">2592</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span> <span class="o">|</span> <span class="nb">int</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="Union-2593"><a href="#Union-2593"><span class="linenos">2593</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Union-2594"><a href="#Union-2594"><span class="linenos">2594</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Union-2595"><a href="#Union-2595"><span class="linenos">2595</span></a><span class="sd"> Set the LIMIT expression.</span>
-</span><span id="Union-2596"><a href="#Union-2596"><span class="linenos">2596</span></a>
-</span><span id="Union-2597"><a href="#Union-2597"><span class="linenos">2597</span></a><span class="sd"> Example:</span>
-</span><span id="Union-2598"><a href="#Union-2598"><span class="linenos">2598</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-2599"><a href="#Union-2599"><span class="linenos">2599</span></a><span class="sd"> &#39;SELECT * FROM (SELECT 1 UNION SELECT 1) AS _l_0 LIMIT 1&#39;</span>
-</span><span id="Union-2600"><a href="#Union-2600"><span class="linenos">2600</span></a>
-</span><span id="Union-2601"><a href="#Union-2601"><span class="linenos">2601</span></a><span class="sd"> Args:</span>
-</span><span id="Union-2602"><a href="#Union-2602"><span class="linenos">2602</span></a><span class="sd"> expression: the SQL code string to parse.</span>
-</span><span id="Union-2603"><a href="#Union-2603"><span class="linenos">2603</span></a><span class="sd"> This can also be an integer.</span>
-</span><span id="Union-2604"><a href="#Union-2604"><span class="linenos">2604</span></a><span class="sd"> If a `Limit` instance is passed, this is used as-is.</span>
-</span><span id="Union-2605"><a href="#Union-2605"><span class="linenos">2605</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Limit`.</span>
-</span><span id="Union-2606"><a href="#Union-2606"><span class="linenos">2606</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="Union-2607"><a href="#Union-2607"><span class="linenos">2607</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Union-2608"><a href="#Union-2608"><span class="linenos">2608</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Union-2609"><a href="#Union-2609"><span class="linenos">2609</span></a>
-</span><span id="Union-2610"><a href="#Union-2610"><span class="linenos">2610</span></a><span class="sd"> Returns:</span>
-</span><span id="Union-2611"><a href="#Union-2611"><span class="linenos">2611</span></a><span class="sd"> The limited subqueryable.</span>
-</span><span id="Union-2612"><a href="#Union-2612"><span class="linenos">2612</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Union-2613"><a href="#Union-2613"><span class="linenos">2613</span></a> <span class="k">return</span> <span class="p">(</span>
-</span><span id="Union-2614"><a href="#Union-2614"><span class="linenos">2614</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-2615"><a href="#Union-2615"><span class="linenos">2615</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-2616"><a href="#Union-2616"><span class="linenos">2616</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-2617"><a href="#Union-2617"><span class="linenos">2617</span></a> <span class="p">)</span>
-</span><span id="Union-2618"><a href="#Union-2618"><span class="linenos">2618</span></a>
-</span><span id="Union-2619"><a href="#Union-2619"><span class="linenos">2619</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
-</span><span id="Union-2620"><a href="#Union-2620"><span class="linenos">2620</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Union-2621"><a href="#Union-2621"><span class="linenos">2621</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Union-2622"><a href="#Union-2622"><span class="linenos">2622</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-2623"><a href="#Union-2623"><span class="linenos">2623</span></a> <span class="n">dialect</span><span 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-2624"><a href="#Union-2624"><span class="linenos">2624</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-2625"><a href="#Union-2625"><span class="linenos">2625</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Union-2626"><a href="#Union-2626"><span class="linenos">2626</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Union</span><span class="p">:</span>
-</span><span id="Union-2627"><a href="#Union-2627"><span class="linenos">2627</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-2628"><a href="#Union-2628"><span class="linenos">2628</span></a>
-</span><span id="Union-2629"><a href="#Union-2629"><span class="linenos">2629</span></a><span class="sd"> Example:</span>
-</span><span id="Union-2630"><a href="#Union-2630"><span class="linenos">2630</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
-</span><span id="Union-2631"><a href="#Union-2631"><span class="linenos">2631</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-2632"><a href="#Union-2632"><span class="linenos">2632</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Union-2605"><a href="#Union-2605"><span class="linenos">2605</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-2606"><a href="#Union-2606"><span class="linenos">2606</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Union-2607"><a href="#Union-2607"><span class="linenos">2607</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-2608"><a href="#Union-2608"><span class="linenos">2608</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-2609"><a href="#Union-2609"><span class="linenos">2609</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-2610"><a href="#Union-2610"><span class="linenos">2610</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-2611"><a href="#Union-2611"><span class="linenos">2611</span></a> <span class="s2">&quot;by_name&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Union-2612"><a href="#Union-2612"><span class="linenos">2612</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span>
+</span><span id="Union-2613"><a href="#Union-2613"><span class="linenos">2613</span></a> <span class="p">}</span>
+</span><span id="Union-2614"><a href="#Union-2614"><span class="linenos">2614</span></a>
+</span><span id="Union-2615"><a href="#Union-2615"><span class="linenos">2615</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span>
+</span><span id="Union-2616"><a href="#Union-2616"><span class="linenos">2616</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span> <span class="o">|</span> <span class="nb">int</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="Union-2617"><a href="#Union-2617"><span class="linenos">2617</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Union-2618"><a href="#Union-2618"><span class="linenos">2618</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Union-2619"><a href="#Union-2619"><span class="linenos">2619</span></a><span class="sd"> Set the LIMIT expression.</span>
+</span><span id="Union-2620"><a href="#Union-2620"><span class="linenos">2620</span></a>
+</span><span id="Union-2621"><a href="#Union-2621"><span class="linenos">2621</span></a><span class="sd"> Example:</span>
+</span><span id="Union-2622"><a href="#Union-2622"><span class="linenos">2622</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-2623"><a href="#Union-2623"><span class="linenos">2623</span></a><span class="sd"> &#39;SELECT * FROM (SELECT 1 UNION SELECT 1) AS _l_0 LIMIT 1&#39;</span>
+</span><span id="Union-2624"><a href="#Union-2624"><span class="linenos">2624</span></a>
+</span><span id="Union-2625"><a href="#Union-2625"><span class="linenos">2625</span></a><span class="sd"> Args:</span>
+</span><span id="Union-2626"><a href="#Union-2626"><span class="linenos">2626</span></a><span class="sd"> expression: the SQL code string to parse.</span>
+</span><span id="Union-2627"><a href="#Union-2627"><span class="linenos">2627</span></a><span class="sd"> This can also be an integer.</span>
+</span><span id="Union-2628"><a href="#Union-2628"><span class="linenos">2628</span></a><span class="sd"> If a `Limit` instance is passed, this is used as-is.</span>
+</span><span id="Union-2629"><a href="#Union-2629"><span class="linenos">2629</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Limit`.</span>
+</span><span id="Union-2630"><a href="#Union-2630"><span class="linenos">2630</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Union-2631"><a href="#Union-2631"><span class="linenos">2631</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Union-2632"><a href="#Union-2632"><span class="linenos">2632</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Union-2633"><a href="#Union-2633"><span class="linenos">2633</span></a>
-</span><span id="Union-2634"><a href="#Union-2634"><span class="linenos">2634</span></a><span class="sd"> Args:</span>
-</span><span id="Union-2635"><a href="#Union-2635"><span class="linenos">2635</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Union-2636"><a href="#Union-2636"><span class="linenos">2636</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Union-2637"><a href="#Union-2637"><span class="linenos">2637</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="Union-2638"><a href="#Union-2638"><span class="linenos">2638</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="Union-2639"><a href="#Union-2639"><span class="linenos">2639</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="Union-2640"><a href="#Union-2640"><span class="linenos">2640</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Union-2641"><a href="#Union-2641"><span class="linenos">2641</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Union-2634"><a href="#Union-2634"><span class="linenos">2634</span></a><span class="sd"> Returns:</span>
+</span><span id="Union-2635"><a href="#Union-2635"><span class="linenos">2635</span></a><span class="sd"> The limited subqueryable.</span>
+</span><span id="Union-2636"><a href="#Union-2636"><span class="linenos">2636</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Union-2637"><a href="#Union-2637"><span class="linenos">2637</span></a> <span class="k">return</span> <span class="p">(</span>
+</span><span id="Union-2638"><a href="#Union-2638"><span class="linenos">2638</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-2639"><a href="#Union-2639"><span class="linenos">2639</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-2640"><a href="#Union-2640"><span class="linenos">2640</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-2641"><a href="#Union-2641"><span class="linenos">2641</span></a> <span class="p">)</span>
</span><span id="Union-2642"><a href="#Union-2642"><span class="linenos">2642</span></a>
-</span><span id="Union-2643"><a href="#Union-2643"><span class="linenos">2643</span></a><span class="sd"> Returns:</span>
-</span><span id="Union-2644"><a href="#Union-2644"><span class="linenos">2644</span></a><span class="sd"> Union: the modified expression.</span>
-</span><span id="Union-2645"><a href="#Union-2645"><span class="linenos">2645</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Union-2646"><a href="#Union-2646"><span class="linenos">2646</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-2647"><a href="#Union-2647"><span class="linenos">2647</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-2648"><a href="#Union-2648"><span class="linenos">2648</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-2649"><a href="#Union-2649"><span class="linenos">2649</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-2650"><a href="#Union-2650"><span class="linenos">2650</span></a> <span class="p">)</span>
-</span><span id="Union-2651"><a href="#Union-2651"><span class="linenos">2651</span></a> <span class="k">return</span> <span class="n">this</span>
+</span><span id="Union-2643"><a href="#Union-2643"><span class="linenos">2643</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
+</span><span id="Union-2644"><a href="#Union-2644"><span class="linenos">2644</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Union-2645"><a href="#Union-2645"><span class="linenos">2645</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Union-2646"><a href="#Union-2646"><span class="linenos">2646</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-2647"><a href="#Union-2647"><span class="linenos">2647</span></a> <span class="n">dialect</span><span 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-2648"><a href="#Union-2648"><span class="linenos">2648</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-2649"><a href="#Union-2649"><span class="linenos">2649</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Union-2650"><a href="#Union-2650"><span class="linenos">2650</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Union</span><span class="p">:</span>
+</span><span id="Union-2651"><a href="#Union-2651"><span class="linenos">2651</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-2652"><a href="#Union-2652"><span class="linenos">2652</span></a>
-</span><span id="Union-2653"><a href="#Union-2653"><span class="linenos">2653</span></a> <span class="nd">@property</span>
-</span><span id="Union-2654"><a href="#Union-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="Union-2655"><a href="#Union-2655"><span class="linenos">2655</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-2656"><a href="#Union-2656"><span class="linenos">2656</span></a>
-</span><span id="Union-2657"><a href="#Union-2657"><span class="linenos">2657</span></a> <span class="nd">@property</span>
-</span><span id="Union-2658"><a href="#Union-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="Union-2659"><a href="#Union-2659"><span class="linenos">2659</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-2660"><a href="#Union-2660"><span class="linenos">2660</span></a>
-</span><span id="Union-2661"><a href="#Union-2661"><span class="linenos">2661</span></a> <span class="nd">@property</span>
-</span><span id="Union-2662"><a href="#Union-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="Union-2663"><a href="#Union-2663"><span class="linenos">2663</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-2664"><a href="#Union-2664"><span class="linenos">2664</span></a>
-</span><span id="Union-2665"><a href="#Union-2665"><span class="linenos">2665</span></a> <span class="nd">@property</span>
-</span><span id="Union-2666"><a href="#Union-2666"><span class="linenos">2666</span></a> <span class="k">def</span> <span class="nf">left</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="Union-2667"><a href="#Union-2667"><span class="linenos">2667</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-2668"><a href="#Union-2668"><span class="linenos">2668</span></a>
-</span><span id="Union-2669"><a href="#Union-2669"><span class="linenos">2669</span></a> <span class="nd">@property</span>
-</span><span id="Union-2670"><a href="#Union-2670"><span class="linenos">2670</span></a> <span class="k">def</span> <span class="nf">right</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="Union-2671"><a href="#Union-2671"><span class="linenos">2671</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-2653"><a href="#Union-2653"><span class="linenos">2653</span></a><span class="sd"> Example:</span>
+</span><span id="Union-2654"><a href="#Union-2654"><span class="linenos">2654</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
+</span><span id="Union-2655"><a href="#Union-2655"><span class="linenos">2655</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-2656"><a href="#Union-2656"><span class="linenos">2656</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-2657"><a href="#Union-2657"><span class="linenos">2657</span></a>
+</span><span id="Union-2658"><a href="#Union-2658"><span class="linenos">2658</span></a><span class="sd"> Args:</span>
+</span><span id="Union-2659"><a href="#Union-2659"><span class="linenos">2659</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Union-2660"><a href="#Union-2660"><span class="linenos">2660</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Union-2661"><a href="#Union-2661"><span class="linenos">2661</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Union-2662"><a href="#Union-2662"><span class="linenos">2662</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="Union-2663"><a href="#Union-2663"><span class="linenos">2663</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Union-2664"><a href="#Union-2664"><span class="linenos">2664</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Union-2665"><a href="#Union-2665"><span class="linenos">2665</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Union-2666"><a href="#Union-2666"><span class="linenos">2666</span></a>
+</span><span id="Union-2667"><a href="#Union-2667"><span class="linenos">2667</span></a><span class="sd"> Returns:</span>
+</span><span id="Union-2668"><a href="#Union-2668"><span class="linenos">2668</span></a><span class="sd"> Union: the modified expression.</span>
+</span><span id="Union-2669"><a href="#Union-2669"><span class="linenos">2669</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Union-2670"><a href="#Union-2670"><span class="linenos">2670</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-2671"><a href="#Union-2671"><span class="linenos">2671</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-2672"><a href="#Union-2672"><span class="linenos">2672</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-2673"><a href="#Union-2673"><span class="linenos">2673</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-2674"><a href="#Union-2674"><span class="linenos">2674</span></a> <span class="p">)</span>
+</span><span id="Union-2675"><a href="#Union-2675"><span class="linenos">2675</span></a> <span class="k">return</span> <span class="n">this</span>
+</span><span id="Union-2676"><a href="#Union-2676"><span class="linenos">2676</span></a>
+</span><span id="Union-2677"><a href="#Union-2677"><span class="linenos">2677</span></a> <span class="nd">@property</span>
+</span><span id="Union-2678"><a href="#Union-2678"><span class="linenos">2678</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
+</span><span id="Union-2679"><a href="#Union-2679"><span class="linenos">2679</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-2680"><a href="#Union-2680"><span class="linenos">2680</span></a>
+</span><span id="Union-2681"><a href="#Union-2681"><span class="linenos">2681</span></a> <span class="nd">@property</span>
+</span><span id="Union-2682"><a href="#Union-2682"><span class="linenos">2682</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-2683"><a href="#Union-2683"><span class="linenos">2683</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-2684"><a href="#Union-2684"><span class="linenos">2684</span></a>
+</span><span id="Union-2685"><a href="#Union-2685"><span class="linenos">2685</span></a> <span class="nd">@property</span>
+</span><span id="Union-2686"><a href="#Union-2686"><span class="linenos">2686</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="Union-2687"><a href="#Union-2687"><span class="linenos">2687</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-2688"><a href="#Union-2688"><span class="linenos">2688</span></a>
+</span><span id="Union-2689"><a href="#Union-2689"><span class="linenos">2689</span></a> <span class="nd">@property</span>
+</span><span id="Union-2690"><a href="#Union-2690"><span class="linenos">2690</span></a> <span class="k">def</span> <span class="nf">left</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="Union-2691"><a href="#Union-2691"><span class="linenos">2691</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-2692"><a href="#Union-2692"><span class="linenos">2692</span></a>
+</span><span id="Union-2693"><a href="#Union-2693"><span class="linenos">2693</span></a> <span class="nd">@property</span>
+</span><span id="Union-2694"><a href="#Union-2694"><span class="linenos">2694</span></a> <span class="k">def</span> <span class="nf">right</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="Union-2695"><a href="#Union-2695"><span class="linenos">2695</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span>
</span></pre></div>
@@ -38989,33 +40955,33 @@ 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-2591"><a href="#Union.limit-2591"><span class="linenos">2591</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span>
-</span><span id="Union.limit-2592"><a href="#Union.limit-2592"><span class="linenos">2592</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span> <span class="o">|</span> <span class="nb">int</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="Union.limit-2593"><a href="#Union.limit-2593"><span class="linenos">2593</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Union.limit-2594"><a href="#Union.limit-2594"><span class="linenos">2594</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Union.limit-2595"><a href="#Union.limit-2595"><span class="linenos">2595</span></a><span class="sd"> Set the LIMIT expression.</span>
-</span><span id="Union.limit-2596"><a href="#Union.limit-2596"><span class="linenos">2596</span></a>
-</span><span id="Union.limit-2597"><a href="#Union.limit-2597"><span class="linenos">2597</span></a><span class="sd"> Example:</span>
-</span><span id="Union.limit-2598"><a href="#Union.limit-2598"><span class="linenos">2598</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-2599"><a href="#Union.limit-2599"><span class="linenos">2599</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-2600"><a href="#Union.limit-2600"><span class="linenos">2600</span></a>
-</span><span id="Union.limit-2601"><a href="#Union.limit-2601"><span class="linenos">2601</span></a><span class="sd"> Args:</span>
-</span><span id="Union.limit-2602"><a href="#Union.limit-2602"><span class="linenos">2602</span></a><span class="sd"> expression: the SQL code string to parse.</span>
-</span><span id="Union.limit-2603"><a href="#Union.limit-2603"><span class="linenos">2603</span></a><span class="sd"> This can also be an integer.</span>
-</span><span id="Union.limit-2604"><a href="#Union.limit-2604"><span class="linenos">2604</span></a><span class="sd"> If a `Limit` instance is passed, this is used as-is.</span>
-</span><span id="Union.limit-2605"><a href="#Union.limit-2605"><span class="linenos">2605</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Limit`.</span>
-</span><span id="Union.limit-2606"><a href="#Union.limit-2606"><span class="linenos">2606</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="Union.limit-2607"><a href="#Union.limit-2607"><span class="linenos">2607</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Union.limit-2608"><a href="#Union.limit-2608"><span class="linenos">2608</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Union.limit-2609"><a href="#Union.limit-2609"><span class="linenos">2609</span></a>
-</span><span id="Union.limit-2610"><a href="#Union.limit-2610"><span class="linenos">2610</span></a><span class="sd"> Returns:</span>
-</span><span id="Union.limit-2611"><a href="#Union.limit-2611"><span class="linenos">2611</span></a><span class="sd"> The limited subqueryable.</span>
-</span><span id="Union.limit-2612"><a href="#Union.limit-2612"><span class="linenos">2612</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Union.limit-2613"><a href="#Union.limit-2613"><span class="linenos">2613</span></a> <span class="k">return</span> <span class="p">(</span>
-</span><span id="Union.limit-2614"><a href="#Union.limit-2614"><span class="linenos">2614</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-2615"><a href="#Union.limit-2615"><span class="linenos">2615</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-2616"><a href="#Union.limit-2616"><span class="linenos">2616</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-2617"><a href="#Union.limit-2617"><span class="linenos">2617</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Union.limit-2615"><a href="#Union.limit-2615"><span class="linenos">2615</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span>
+</span><span id="Union.limit-2616"><a href="#Union.limit-2616"><span class="linenos">2616</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span> <span class="o">|</span> <span class="nb">int</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="Union.limit-2617"><a href="#Union.limit-2617"><span class="linenos">2617</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Union.limit-2618"><a href="#Union.limit-2618"><span class="linenos">2618</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Union.limit-2619"><a href="#Union.limit-2619"><span class="linenos">2619</span></a><span class="sd"> Set the LIMIT expression.</span>
+</span><span id="Union.limit-2620"><a href="#Union.limit-2620"><span class="linenos">2620</span></a>
+</span><span id="Union.limit-2621"><a href="#Union.limit-2621"><span class="linenos">2621</span></a><span class="sd"> Example:</span>
+</span><span id="Union.limit-2622"><a href="#Union.limit-2622"><span class="linenos">2622</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-2623"><a href="#Union.limit-2623"><span class="linenos">2623</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-2624"><a href="#Union.limit-2624"><span class="linenos">2624</span></a>
+</span><span id="Union.limit-2625"><a href="#Union.limit-2625"><span class="linenos">2625</span></a><span class="sd"> Args:</span>
+</span><span id="Union.limit-2626"><a href="#Union.limit-2626"><span class="linenos">2626</span></a><span class="sd"> expression: the SQL code string to parse.</span>
+</span><span id="Union.limit-2627"><a href="#Union.limit-2627"><span class="linenos">2627</span></a><span class="sd"> This can also be an integer.</span>
+</span><span id="Union.limit-2628"><a href="#Union.limit-2628"><span class="linenos">2628</span></a><span class="sd"> If a `Limit` instance is passed, this is used as-is.</span>
+</span><span id="Union.limit-2629"><a href="#Union.limit-2629"><span class="linenos">2629</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Limit`.</span>
+</span><span id="Union.limit-2630"><a href="#Union.limit-2630"><span class="linenos">2630</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Union.limit-2631"><a href="#Union.limit-2631"><span class="linenos">2631</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Union.limit-2632"><a href="#Union.limit-2632"><span class="linenos">2632</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Union.limit-2633"><a href="#Union.limit-2633"><span class="linenos">2633</span></a>
+</span><span id="Union.limit-2634"><a href="#Union.limit-2634"><span class="linenos">2634</span></a><span class="sd"> Returns:</span>
+</span><span id="Union.limit-2635"><a href="#Union.limit-2635"><span class="linenos">2635</span></a><span class="sd"> The limited subqueryable.</span>
+</span><span id="Union.limit-2636"><a href="#Union.limit-2636"><span class="linenos">2636</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Union.limit-2637"><a href="#Union.limit-2637"><span class="linenos">2637</span></a> <span class="k">return</span> <span class="p">(</span>
+</span><span id="Union.limit-2638"><a href="#Union.limit-2638"><span class="linenos">2638</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-2639"><a href="#Union.limit-2639"><span class="linenos">2639</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-2640"><a href="#Union.limit-2640"><span class="linenos">2640</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-2641"><a href="#Union.limit-2641"><span class="linenos">2641</span></a> <span class="p">)</span>
</span></pre></div>
@@ -39063,39 +41029,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-2619"><a href="#Union.select-2619"><span class="linenos">2619</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
-</span><span id="Union.select-2620"><a href="#Union.select-2620"><span class="linenos">2620</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Union.select-2621"><a href="#Union.select-2621"><span class="linenos">2621</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Union.select-2622"><a href="#Union.select-2622"><span class="linenos">2622</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-2623"><a href="#Union.select-2623"><span class="linenos">2623</span></a> <span class="n">dialect</span><span 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-2624"><a href="#Union.select-2624"><span class="linenos">2624</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-2625"><a href="#Union.select-2625"><span class="linenos">2625</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Union.select-2626"><a href="#Union.select-2626"><span class="linenos">2626</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-2627"><a href="#Union.select-2627"><span class="linenos">2627</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-2628"><a href="#Union.select-2628"><span class="linenos">2628</span></a>
-</span><span id="Union.select-2629"><a href="#Union.select-2629"><span class="linenos">2629</span></a><span class="sd"> Example:</span>
-</span><span id="Union.select-2630"><a href="#Union.select-2630"><span class="linenos">2630</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
-</span><span id="Union.select-2631"><a href="#Union.select-2631"><span class="linenos">2631</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-2632"><a href="#Union.select-2632"><span class="linenos">2632</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-2633"><a href="#Union.select-2633"><span class="linenos">2633</span></a>
-</span><span id="Union.select-2634"><a href="#Union.select-2634"><span class="linenos">2634</span></a><span class="sd"> Args:</span>
-</span><span id="Union.select-2635"><a href="#Union.select-2635"><span class="linenos">2635</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Union.select-2636"><a href="#Union.select-2636"><span class="linenos">2636</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Union.select-2637"><a href="#Union.select-2637"><span class="linenos">2637</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="Union.select-2638"><a href="#Union.select-2638"><span class="linenos">2638</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="Union.select-2639"><a href="#Union.select-2639"><span class="linenos">2639</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="Union.select-2640"><a href="#Union.select-2640"><span class="linenos">2640</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Union.select-2641"><a href="#Union.select-2641"><span class="linenos">2641</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Union.select-2642"><a href="#Union.select-2642"><span class="linenos">2642</span></a>
-</span><span id="Union.select-2643"><a href="#Union.select-2643"><span class="linenos">2643</span></a><span class="sd"> Returns:</span>
-</span><span id="Union.select-2644"><a href="#Union.select-2644"><span class="linenos">2644</span></a><span class="sd"> Union: the modified expression.</span>
-</span><span id="Union.select-2645"><a href="#Union.select-2645"><span class="linenos">2645</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Union.select-2646"><a href="#Union.select-2646"><span class="linenos">2646</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-2647"><a href="#Union.select-2647"><span class="linenos">2647</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-2648"><a href="#Union.select-2648"><span class="linenos">2648</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-2649"><a href="#Union.select-2649"><span class="linenos">2649</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-2650"><a href="#Union.select-2650"><span class="linenos">2650</span></a> <span class="p">)</span>
-</span><span id="Union.select-2651"><a href="#Union.select-2651"><span class="linenos">2651</span></a> <span class="k">return</span> <span class="n">this</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Union.select-2643"><a href="#Union.select-2643"><span class="linenos">2643</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
+</span><span id="Union.select-2644"><a href="#Union.select-2644"><span class="linenos">2644</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Union.select-2645"><a href="#Union.select-2645"><span class="linenos">2645</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Union.select-2646"><a href="#Union.select-2646"><span class="linenos">2646</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-2647"><a href="#Union.select-2647"><span class="linenos">2647</span></a> <span class="n">dialect</span><span 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-2648"><a href="#Union.select-2648"><span class="linenos">2648</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-2649"><a href="#Union.select-2649"><span class="linenos">2649</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Union.select-2650"><a href="#Union.select-2650"><span class="linenos">2650</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-2651"><a href="#Union.select-2651"><span class="linenos">2651</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-2652"><a href="#Union.select-2652"><span class="linenos">2652</span></a>
+</span><span id="Union.select-2653"><a href="#Union.select-2653"><span class="linenos">2653</span></a><span class="sd"> Example:</span>
+</span><span id="Union.select-2654"><a href="#Union.select-2654"><span class="linenos">2654</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
+</span><span id="Union.select-2655"><a href="#Union.select-2655"><span class="linenos">2655</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-2656"><a href="#Union.select-2656"><span class="linenos">2656</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-2657"><a href="#Union.select-2657"><span class="linenos">2657</span></a>
+</span><span id="Union.select-2658"><a href="#Union.select-2658"><span class="linenos">2658</span></a><span class="sd"> Args:</span>
+</span><span id="Union.select-2659"><a href="#Union.select-2659"><span class="linenos">2659</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Union.select-2660"><a href="#Union.select-2660"><span class="linenos">2660</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Union.select-2661"><a href="#Union.select-2661"><span class="linenos">2661</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Union.select-2662"><a href="#Union.select-2662"><span class="linenos">2662</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="Union.select-2663"><a href="#Union.select-2663"><span class="linenos">2663</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Union.select-2664"><a href="#Union.select-2664"><span class="linenos">2664</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Union.select-2665"><a href="#Union.select-2665"><span class="linenos">2665</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Union.select-2666"><a href="#Union.select-2666"><span class="linenos">2666</span></a>
+</span><span id="Union.select-2667"><a href="#Union.select-2667"><span class="linenos">2667</span></a><span class="sd"> Returns:</span>
+</span><span id="Union.select-2668"><a href="#Union.select-2668"><span class="linenos">2668</span></a><span class="sd"> Union: the modified expression.</span>
+</span><span id="Union.select-2669"><a href="#Union.select-2669"><span class="linenos">2669</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Union.select-2670"><a href="#Union.select-2670"><span class="linenos">2670</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-2671"><a href="#Union.select-2671"><span class="linenos">2671</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-2672"><a href="#Union.select-2672"><span class="linenos">2672</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-2673"><a href="#Union.select-2673"><span class="linenos">2673</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-2674"><a href="#Union.select-2674"><span class="linenos">2674</span></a> <span class="p">)</span>
+</span><span id="Union.select-2675"><a href="#Union.select-2675"><span class="linenos">2675</span></a> <span class="k">return</span> <span class="n">this</span>
</span></pre></div>
@@ -39134,59 +41100,94 @@ Otherwise, this resets the expressions.</li>
</div>
<div id="Union.named_selects" class="classattr">
- <div class="attr variable">
+ <input id="Union.named_selects-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">named_selects</span><span class="annotation">: List[str]</span>
-
+ <label class="view-source-button" for="Union.named_selects-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Union.named_selects"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Union.named_selects-2677"><a href="#Union.named_selects-2677"><span class="linenos">2677</span></a> <span class="nd">@property</span>
+</span><span id="Union.named_selects-2678"><a href="#Union.named_selects-2678"><span class="linenos">2678</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
+</span><span id="Union.named_selects-2679"><a href="#Union.named_selects-2679"><span class="linenos">2679</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">named_selects</span>
+</span></pre></div>
+
+
</div>
<div id="Union.is_star" class="classattr">
- <div class="attr variable">
+ <input id="Union.is_star-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">is_star</span><span class="annotation">: bool</span>
-
+ <label class="view-source-button" for="Union.is_star-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Union.is_star"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Union.is_star-2681"><a href="#Union.is_star-2681"><span class="linenos">2681</span></a> <span class="nd">@property</span>
+</span><span id="Union.is_star-2682"><a href="#Union.is_star-2682"><span class="linenos">2682</span></a> <span class="k">def</span> <span class="nf">is_star</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="Union.is_star-2683"><a href="#Union.is_star-2683"><span class="linenos">2683</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">is_star</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">is_star</span>
+</span></pre></div>
+
+
<div class="docstring"><p>Checks whether an expression is a star.</p>
</div>
</div>
<div id="Union.selects" class="classattr">
- <div class="attr variable">
+ <input id="Union.selects-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">selects</span><span class="annotation">: List[<a href="#Expression">Expression</a>]</span>
-
+ <label class="view-source-button" for="Union.selects-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Union.selects"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Union.selects-2685"><a href="#Union.selects-2685"><span class="linenos">2685</span></a> <span class="nd">@property</span>
+</span><span id="Union.selects-2686"><a href="#Union.selects-2686"><span class="linenos">2686</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="Union.selects-2687"><a href="#Union.selects-2687"><span class="linenos">2687</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">selects</span>
+</span></pre></div>
+
+
</div>
<div id="Union.left" class="classattr">
- <div class="attr variable">
+ <input id="Union.left-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">left</span><span class="annotation">: <a href="#Expression">Expression</a></span>
-
+ <label class="view-source-button" for="Union.left-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Union.left"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Union.left-2689"><a href="#Union.left-2689"><span class="linenos">2689</span></a> <span class="nd">@property</span>
+</span><span id="Union.left-2690"><a href="#Union.left-2690"><span class="linenos">2690</span></a> <span class="k">def</span> <span class="nf">left</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="Union.left-2691"><a href="#Union.left-2691"><span class="linenos">2691</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span>
+</span></pre></div>
+
+
</div>
<div id="Union.right" class="classattr">
- <div class="attr variable">
+ <input id="Union.right-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">right</span><span class="annotation">: <a href="#Expression">Expression</a></span>
-
+ <label class="view-source-button" for="Union.right-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Union.right"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Union.right-2693"><a href="#Union.right-2693"><span class="linenos">2693</span></a> <span class="nd">@property</span>
+</span><span id="Union.right-2694"><a href="#Union.right-2694"><span class="linenos">2694</span></a> <span class="k">def</span> <span class="nf">right</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="Union.right-2695"><a href="#Union.right-2695"><span class="linenos">2695</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span>
+</span></pre></div>
+
+
</div>
@@ -39226,6 +41227,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Union.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Union.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Union.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Union.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Union.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Union.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Union.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -39246,6 +41248,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Union.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Union.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Union.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Union.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Union.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Union.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Union.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -39267,6 +41270,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Union.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Union.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Union.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Union.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Subqueryable">Subqueryable</a></dt>
@@ -39295,8 +41299,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-2674"><a href="#Except-2674"><span class="linenos">2674</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-2675"><a href="#Except-2675"><span class="linenos">2675</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Except-2698"><a href="#Except-2698"><span class="linenos">2698</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-2699"><a href="#Except-2699"><span class="linenos">2699</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -39338,6 +41342,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Except.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Except.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Except.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Except.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Except.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Except.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Except.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -39358,6 +41363,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Except.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Except.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Except.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Except.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Except.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Except.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Except.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -39379,6 +41385,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Except.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Except.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Except.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Except.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Union">Union</a></dt>
@@ -39418,8 +41425,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-2678"><a href="#Intersect-2678"><span class="linenos">2678</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-2679"><a href="#Intersect-2679"><span class="linenos">2679</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Intersect-2702"><a href="#Intersect-2702"><span class="linenos">2702</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-2703"><a href="#Intersect-2703"><span class="linenos">2703</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -39461,6 +41468,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Intersect.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Intersect.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Intersect.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Intersect.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Intersect.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Intersect.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Intersect.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -39481,6 +41489,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Intersect.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Intersect.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Intersect.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Intersect.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Intersect.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Intersect.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Intersect.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -39502,6 +41511,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Intersect.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Intersect.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Intersect.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Intersect.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Union">Union</a></dt>
@@ -39541,12 +41551,12 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Unnest"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Unnest-2682"><a href="#Unnest-2682"><span class="linenos">2682</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-2683"><a href="#Unnest-2683"><span class="linenos">2683</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Unnest-2684"><a href="#Unnest-2684"><span class="linenos">2684</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-2685"><a href="#Unnest-2685"><span class="linenos">2685</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-2686"><a href="#Unnest-2686"><span class="linenos">2686</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-2687"><a href="#Unnest-2687"><span class="linenos">2687</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Unnest-2706"><a href="#Unnest-2706"><span class="linenos">2706</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-2707"><a href="#Unnest-2707"><span class="linenos">2707</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Unnest-2708"><a href="#Unnest-2708"><span class="linenos">2708</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-2709"><a href="#Unnest-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="Unnest-2710"><a href="#Unnest-2710"><span class="linenos">2710</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-2711"><a href="#Unnest-2711"><span class="linenos">2711</span></a> <span class="p">}</span>
</span></pre></div>
@@ -39601,6 +41611,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Unnest.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Unnest.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Unnest.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Unnest.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Unnest.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Unnest.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Unnest.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -39621,6 +41632,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Unnest.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Unnest.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Unnest.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Unnest.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Unnest.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Unnest.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Unnest.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -39642,6 +41654,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Unnest.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Unnest.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Unnest.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Unnest.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#UDTF">UDTF</a></dt>
@@ -39672,17 +41685,17 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Update"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Update-2690"><a href="#Update-2690"><span class="linenos">2690</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-2691"><a href="#Update-2691"><span class="linenos">2691</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Update-2692"><a href="#Update-2692"><span class="linenos">2692</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-2693"><a href="#Update-2693"><span class="linenos">2693</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-2694"><a href="#Update-2694"><span class="linenos">2694</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-2695"><a href="#Update-2695"><span class="linenos">2695</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-2696"><a href="#Update-2696"><span class="linenos">2696</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-2697"><a href="#Update-2697"><span class="linenos">2697</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-2698"><a href="#Update-2698"><span class="linenos">2698</span></a> <span class="s2">&quot;order&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Update-2699"><a href="#Update-2699"><span class="linenos">2699</span></a> <span class="s2">&quot;limit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Update-2700"><a href="#Update-2700"><span class="linenos">2700</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Update-2714"><a href="#Update-2714"><span class="linenos">2714</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-2715"><a href="#Update-2715"><span class="linenos">2715</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Update-2716"><a href="#Update-2716"><span class="linenos">2716</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-2717"><a href="#Update-2717"><span class="linenos">2717</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-2718"><a href="#Update-2718"><span class="linenos">2718</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-2719"><a href="#Update-2719"><span class="linenos">2719</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-2720"><a href="#Update-2720"><span class="linenos">2720</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-2721"><a href="#Update-2721"><span class="linenos">2721</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-2722"><a href="#Update-2722"><span class="linenos">2722</span></a> <span class="s2">&quot;order&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Update-2723"><a href="#Update-2723"><span class="linenos">2723</span></a> <span class="s2">&quot;limit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Update-2724"><a href="#Update-2724"><span class="linenos">2724</span></a> <span class="p">}</span>
</span></pre></div>
@@ -39738,6 +41751,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Update.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Update.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Update.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Update.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Update.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Update.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Update.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -39758,6 +41772,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Update.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Update.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Update.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Update.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Update.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Update.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Update.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -39779,6 +41794,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Update.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Update.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Update.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Update.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -39795,8 +41811,8 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Values"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Values-2703"><a href="#Values-2703"><span class="linenos">2703</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-2704"><a href="#Values-2704"><span class="linenos">2704</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Values-2727"><a href="#Values-2727"><span class="linenos">2727</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-2728"><a href="#Values-2728"><span class="linenos">2728</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -39851,6 +41867,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Values.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Values.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Values.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Values.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Values.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Values.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Values.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -39871,6 +41888,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Values.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Values.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Values.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Values.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Values.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Values.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Values.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -39892,6 +41910,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Values.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Values.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Values.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Values.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#UDTF">UDTF</a></dt>
@@ -39922,8 +41941,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-2707"><a href="#Var-2707"><span class="linenos">2707</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-2708"><a href="#Var-2708"><span class="linenos">2708</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Var-2731"><a href="#Var-2731"><span class="linenos">2731</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-2732"><a href="#Var-2732"><span class="linenos">2732</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -39967,6 +41986,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Var.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Var.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Var.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Var.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Var.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Var.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Var.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -39987,6 +42007,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Var.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Var.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Var.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Var.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Var.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Var.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Var.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -40008,6 +42029,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Var.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Var.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Var.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Var.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -40024,18 +42046,18 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Version"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Version-2711"><a href="#Version-2711"><span class="linenos">2711</span></a><span class="k">class</span> <span class="nc">Version</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Version-2712"><a href="#Version-2712"><span class="linenos">2712</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Version-2713"><a href="#Version-2713"><span class="linenos">2713</span></a><span class="sd"> Time travel, iceberg, bigquery etc</span>
-</span><span id="Version-2714"><a href="#Version-2714"><span class="linenos">2714</span></a><span class="sd"> https://trino.io/docs/current/connector/iceberg.html?highlight=snapshot#using-snapshots</span>
-</span><span id="Version-2715"><a href="#Version-2715"><span class="linenos">2715</span></a><span class="sd"> https://www.databricks.com/blog/2019/02/04/introducing-delta-time-travel-for-large-scale-data-lakes.html</span>
-</span><span id="Version-2716"><a href="#Version-2716"><span class="linenos">2716</span></a><span class="sd"> https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax#for_system_time_as_of</span>
-</span><span id="Version-2717"><a href="#Version-2717"><span class="linenos">2717</span></a><span class="sd"> https://learn.microsoft.com/en-us/sql/relational-databases/tables/querying-data-in-a-system-versioned-temporal-table?view=sql-server-ver16</span>
-</span><span id="Version-2718"><a href="#Version-2718"><span class="linenos">2718</span></a><span class="sd"> this is either TIMESTAMP or VERSION</span>
-</span><span id="Version-2719"><a href="#Version-2719"><span class="linenos">2719</span></a><span class="sd"> kind is (&quot;AS OF&quot;, &quot;BETWEEN&quot;)</span>
-</span><span id="Version-2720"><a href="#Version-2720"><span class="linenos">2720</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Version-2721"><a href="#Version-2721"><span class="linenos">2721</span></a>
-</span><span id="Version-2722"><a href="#Version-2722"><span class="linenos">2722</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Version-2735"><a href="#Version-2735"><span class="linenos">2735</span></a><span class="k">class</span> <span class="nc">Version</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Version-2736"><a href="#Version-2736"><span class="linenos">2736</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Version-2737"><a href="#Version-2737"><span class="linenos">2737</span></a><span class="sd"> Time travel, iceberg, bigquery etc</span>
+</span><span id="Version-2738"><a href="#Version-2738"><span class="linenos">2738</span></a><span class="sd"> https://trino.io/docs/current/connector/iceberg.html?highlight=snapshot#using-snapshots</span>
+</span><span id="Version-2739"><a href="#Version-2739"><span class="linenos">2739</span></a><span class="sd"> https://www.databricks.com/blog/2019/02/04/introducing-delta-time-travel-for-large-scale-data-lakes.html</span>
+</span><span id="Version-2740"><a href="#Version-2740"><span class="linenos">2740</span></a><span class="sd"> https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax#for_system_time_as_of</span>
+</span><span id="Version-2741"><a href="#Version-2741"><span class="linenos">2741</span></a><span class="sd"> https://learn.microsoft.com/en-us/sql/relational-databases/tables/querying-data-in-a-system-versioned-temporal-table?view=sql-server-ver16</span>
+</span><span id="Version-2742"><a href="#Version-2742"><span class="linenos">2742</span></a><span class="sd"> this is either TIMESTAMP or VERSION</span>
+</span><span id="Version-2743"><a href="#Version-2743"><span class="linenos">2743</span></a><span class="sd"> kind is (&quot;AS OF&quot;, &quot;BETWEEN&quot;)</span>
+</span><span id="Version-2744"><a href="#Version-2744"><span class="linenos">2744</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Version-2745"><a href="#Version-2745"><span class="linenos">2745</span></a>
+</span><span id="Version-2746"><a href="#Version-2746"><span class="linenos">2746</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -40098,6 +42120,7 @@ kind is ("AS OF", "BETWEEN")</p>
<dd id="Version.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Version.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Version.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Version.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Version.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Version.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Version.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -40118,6 +42141,7 @@ kind is ("AS OF", "BETWEEN")</p>
<dd id="Version.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Version.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Version.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Version.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Version.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Version.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Version.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -40139,6 +42163,7 @@ kind is ("AS OF", "BETWEEN")</p>
<dd id="Version.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Version.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Version.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Version.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -40155,8 +42180,8 @@ kind is ("AS OF", "BETWEEN")</p>
</div>
<a class="headerlink" href="#Schema"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Schema-2725"><a href="#Schema-2725"><span class="linenos">2725</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-2726"><a href="#Schema-2726"><span class="linenos">2726</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-2749"><a href="#Schema-2749"><span class="linenos">2749</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-2750"><a href="#Schema-2750"><span class="linenos">2750</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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>
@@ -40211,6 +42236,7 @@ kind is ("AS OF", "BETWEEN")</p>
<dd id="Schema.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Schema.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Schema.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Schema.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Schema.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Schema.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Schema.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -40231,6 +42257,7 @@ kind is ("AS OF", "BETWEEN")</p>
<dd id="Schema.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Schema.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Schema.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Schema.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Schema.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Schema.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Schema.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -40252,6 +42279,7 @@ kind is ("AS OF", "BETWEEN")</p>
<dd id="Schema.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Schema.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Schema.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Schema.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -40268,8 +42296,8 @@ kind is ("AS OF", "BETWEEN")</p>
</div>
<a class="headerlink" href="#Lock"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Lock-2731"><a href="#Lock-2731"><span class="linenos">2731</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-2732"><a href="#Lock-2732"><span class="linenos">2732</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;update&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;wait&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Lock-2755"><a href="#Lock-2755"><span class="linenos">2755</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-2756"><a href="#Lock-2756"><span class="linenos">2756</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;update&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;wait&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -40324,6 +42352,7 @@ kind is ("AS OF", "BETWEEN")</p>
<dd id="Lock.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Lock.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Lock.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Lock.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Lock.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Lock.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Lock.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -40344,6 +42373,7 @@ kind is ("AS OF", "BETWEEN")</p>
<dd id="Lock.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Lock.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Lock.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Lock.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Lock.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Lock.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Lock.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -40365,6 +42395,7 @@ kind is ("AS OF", "BETWEEN")</p>
<dd id="Lock.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Lock.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Lock.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Lock.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -40381,697 +42412,697 @@ kind is ("AS OF", "BETWEEN")</p>
</div>
<a class="headerlink" href="#Select"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select-2735"><a href="#Select-2735"><span class="linenos">2735</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-2736"><a href="#Select-2736"><span class="linenos">2736</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Select-2737"><a href="#Select-2737"><span class="linenos">2737</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-2738"><a href="#Select-2738"><span class="linenos">2738</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-2739"><a href="#Select-2739"><span class="linenos">2739</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-2740"><a href="#Select-2740"><span class="linenos">2740</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-2741"><a href="#Select-2741"><span class="linenos">2741</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-2742"><a href="#Select-2742"><span class="linenos">2742</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-2743"><a href="#Select-2743"><span class="linenos">2743</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-2744"><a href="#Select-2744"><span class="linenos">2744</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span>
-</span><span id="Select-2745"><a href="#Select-2745"><span class="linenos">2745</span></a> <span class="p">}</span>
-</span><span id="Select-2746"><a href="#Select-2746"><span class="linenos">2746</span></a>
-</span><span id="Select-2747"><a href="#Select-2747"><span class="linenos">2747</span></a> <span class="k">def</span> <span class="nf">from_</span><span class="p">(</span>
-</span><span id="Select-2748"><a href="#Select-2748"><span class="linenos">2748</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="Select-2749"><a href="#Select-2749"><span class="linenos">2749</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select-2750"><a href="#Select-2750"><span class="linenos">2750</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-2751"><a href="#Select-2751"><span class="linenos">2751</span></a><span class="sd"> Set the FROM expression.</span>
-</span><span id="Select-2752"><a href="#Select-2752"><span class="linenos">2752</span></a>
-</span><span id="Select-2753"><a href="#Select-2753"><span class="linenos">2753</span></a><span class="sd"> Example:</span>
-</span><span id="Select-2754"><a href="#Select-2754"><span class="linenos">2754</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).sql()</span>
-</span><span id="Select-2755"><a href="#Select-2755"><span class="linenos">2755</span></a><span class="sd"> &#39;SELECT x FROM tbl&#39;</span>
-</span><span id="Select-2756"><a href="#Select-2756"><span class="linenos">2756</span></a>
-</span><span id="Select-2757"><a href="#Select-2757"><span class="linenos">2757</span></a><span class="sd"> Args:</span>
-</span><span id="Select-2758"><a href="#Select-2758"><span class="linenos">2758</span></a><span class="sd"> expression : the SQL code strings to parse.</span>
-</span><span id="Select-2759"><a href="#Select-2759"><span class="linenos">2759</span></a><span class="sd"> If a `From` instance is passed, this is used as-is.</span>
-</span><span id="Select-2760"><a href="#Select-2760"><span class="linenos">2760</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `From`.</span>
-</span><span id="Select-2761"><a href="#Select-2761"><span class="linenos">2761</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="Select-2762"><a href="#Select-2762"><span class="linenos">2762</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-2763"><a href="#Select-2763"><span class="linenos">2763</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Select-2764"><a href="#Select-2764"><span class="linenos">2764</span></a>
-</span><span id="Select-2765"><a href="#Select-2765"><span class="linenos">2765</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-2766"><a href="#Select-2766"><span class="linenos">2766</span></a><span class="sd"> The modified Select expression.</span>
-</span><span id="Select-2767"><a href="#Select-2767"><span class="linenos">2767</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-2768"><a href="#Select-2768"><span class="linenos">2768</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
-</span><span id="Select-2769"><a href="#Select-2769"><span class="linenos">2769</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
-</span><span id="Select-2770"><a href="#Select-2770"><span class="linenos">2770</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-2771"><a href="#Select-2771"><span class="linenos">2771</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-2772"><a href="#Select-2772"><span class="linenos">2772</span></a> <span class="n">into</span><span class="o">=</span><span class="n">From</span><span class="p">,</span>
-</span><span id="Select-2773"><a href="#Select-2773"><span class="linenos">2773</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-2774"><a href="#Select-2774"><span class="linenos">2774</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select-2775"><a href="#Select-2775"><span class="linenos">2775</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-2776"><a href="#Select-2776"><span class="linenos">2776</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-2777"><a href="#Select-2777"><span class="linenos">2777</span></a> <span class="p">)</span>
-</span><span id="Select-2778"><a href="#Select-2778"><span class="linenos">2778</span></a>
-</span><span id="Select-2779"><a href="#Select-2779"><span class="linenos">2779</span></a> <span class="k">def</span> <span class="nf">group_by</span><span class="p">(</span>
-</span><span id="Select-2780"><a href="#Select-2780"><span class="linenos">2780</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-2781"><a href="#Select-2781"><span class="linenos">2781</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Select-2782"><a href="#Select-2782"><span class="linenos">2782</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-2783"><a href="#Select-2783"><span class="linenos">2783</span></a> <span class="n">dialect</span><span 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-2784"><a href="#Select-2784"><span class="linenos">2784</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-2785"><a href="#Select-2785"><span class="linenos">2785</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-2786"><a href="#Select-2786"><span class="linenos">2786</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select-2787"><a href="#Select-2787"><span class="linenos">2787</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-2788"><a href="#Select-2788"><span class="linenos">2788</span></a><span class="sd"> Set the GROUP BY expression.</span>
-</span><span id="Select-2789"><a href="#Select-2789"><span class="linenos">2789</span></a>
-</span><span id="Select-2790"><a href="#Select-2790"><span class="linenos">2790</span></a><span class="sd"> Example:</span>
-</span><span id="Select-2791"><a href="#Select-2791"><span class="linenos">2791</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-2792"><a href="#Select-2792"><span class="linenos">2792</span></a><span class="sd"> &#39;SELECT x, COUNT(1) FROM tbl GROUP BY x&#39;</span>
-</span><span id="Select-2793"><a href="#Select-2793"><span class="linenos">2793</span></a>
-</span><span id="Select-2794"><a href="#Select-2794"><span class="linenos">2794</span></a><span class="sd"> Args:</span>
-</span><span id="Select-2795"><a href="#Select-2795"><span class="linenos">2795</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Select-2796"><a href="#Select-2796"><span class="linenos">2796</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
-</span><span id="Select-2797"><a href="#Select-2797"><span class="linenos">2797</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Group`.</span>
-</span><span id="Select-2798"><a href="#Select-2798"><span class="linenos">2798</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-2799"><a href="#Select-2799"><span class="linenos">2799</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="Select-2800"><a href="#Select-2800"><span class="linenos">2800</span></a><span class="sd"> Otherwise, this flattens all the `Group` expression into a single expression.</span>
-</span><span id="Select-2801"><a href="#Select-2801"><span class="linenos">2801</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="Select-2802"><a href="#Select-2802"><span class="linenos">2802</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-2803"><a href="#Select-2803"><span class="linenos">2803</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Select-2804"><a href="#Select-2804"><span class="linenos">2804</span></a>
-</span><span id="Select-2805"><a href="#Select-2805"><span class="linenos">2805</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-2806"><a href="#Select-2806"><span class="linenos">2806</span></a><span class="sd"> The modified Select expression.</span>
-</span><span id="Select-2807"><a href="#Select-2807"><span class="linenos">2807</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-2808"><a href="#Select-2808"><span class="linenos">2808</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-2809"><a href="#Select-2809"><span class="linenos">2809</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-2810"><a href="#Select-2810"><span class="linenos">2810</span></a>
-</span><span id="Select-2811"><a href="#Select-2811"><span class="linenos">2811</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="Select-2812"><a href="#Select-2812"><span class="linenos">2812</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select-2813"><a href="#Select-2813"><span class="linenos">2813</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-2814"><a href="#Select-2814"><span class="linenos">2814</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-2815"><a href="#Select-2815"><span class="linenos">2815</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select-2816"><a href="#Select-2816"><span class="linenos">2816</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-2817"><a href="#Select-2817"><span class="linenos">2817</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-2818"><a href="#Select-2818"><span class="linenos">2818</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Group</span><span class="p">,</span>
-</span><span id="Select-2819"><a href="#Select-2819"><span class="linenos">2819</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select-2820"><a href="#Select-2820"><span class="linenos">2820</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-2821"><a href="#Select-2821"><span class="linenos">2821</span></a> <span class="p">)</span>
-</span><span id="Select-2822"><a href="#Select-2822"><span class="linenos">2822</span></a>
-</span><span id="Select-2823"><a href="#Select-2823"><span class="linenos">2823</span></a> <span class="k">def</span> <span class="nf">order_by</span><span class="p">(</span>
-</span><span id="Select-2824"><a href="#Select-2824"><span class="linenos">2824</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-2825"><a href="#Select-2825"><span class="linenos">2825</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Select-2826"><a href="#Select-2826"><span class="linenos">2826</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-2827"><a href="#Select-2827"><span class="linenos">2827</span></a> <span class="n">dialect</span><span 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-2828"><a href="#Select-2828"><span class="linenos">2828</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-2829"><a href="#Select-2829"><span class="linenos">2829</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-2830"><a href="#Select-2830"><span class="linenos">2830</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select-2831"><a href="#Select-2831"><span class="linenos">2831</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-2832"><a href="#Select-2832"><span class="linenos">2832</span></a><span class="sd"> Set the ORDER BY expression.</span>
-</span><span id="Select-2833"><a href="#Select-2833"><span class="linenos">2833</span></a>
-</span><span id="Select-2834"><a href="#Select-2834"><span class="linenos">2834</span></a><span class="sd"> Example:</span>
-</span><span id="Select-2835"><a href="#Select-2835"><span class="linenos">2835</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-2836"><a href="#Select-2836"><span class="linenos">2836</span></a><span class="sd"> &#39;SELECT x FROM tbl ORDER BY x DESC&#39;</span>
-</span><span id="Select-2837"><a href="#Select-2837"><span class="linenos">2837</span></a>
-</span><span id="Select-2838"><a href="#Select-2838"><span class="linenos">2838</span></a><span class="sd"> Args:</span>
-</span><span id="Select-2839"><a href="#Select-2839"><span class="linenos">2839</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Select-2840"><a href="#Select-2840"><span class="linenos">2840</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
-</span><span id="Select-2841"><a href="#Select-2841"><span class="linenos">2841</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Order`.</span>
-</span><span id="Select-2842"><a href="#Select-2842"><span class="linenos">2842</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="Select-2843"><a href="#Select-2843"><span class="linenos">2843</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
-</span><span id="Select-2844"><a href="#Select-2844"><span class="linenos">2844</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="Select-2845"><a href="#Select-2845"><span class="linenos">2845</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-2846"><a href="#Select-2846"><span class="linenos">2846</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Select-2847"><a href="#Select-2847"><span class="linenos">2847</span></a>
-</span><span id="Select-2848"><a href="#Select-2848"><span class="linenos">2848</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-2849"><a href="#Select-2849"><span class="linenos">2849</span></a><span class="sd"> The modified Select expression.</span>
-</span><span id="Select-2850"><a href="#Select-2850"><span class="linenos">2850</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-2851"><a href="#Select-2851"><span class="linenos">2851</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="Select-2852"><a href="#Select-2852"><span class="linenos">2852</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select-2853"><a href="#Select-2853"><span class="linenos">2853</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-2854"><a href="#Select-2854"><span class="linenos">2854</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-2855"><a href="#Select-2855"><span class="linenos">2855</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select-2856"><a href="#Select-2856"><span class="linenos">2856</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-2857"><a href="#Select-2857"><span class="linenos">2857</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-2858"><a href="#Select-2858"><span class="linenos">2858</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Order</span><span class="p">,</span>
-</span><span id="Select-2859"><a href="#Select-2859"><span class="linenos">2859</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select-2860"><a href="#Select-2860"><span class="linenos">2860</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-2861"><a href="#Select-2861"><span class="linenos">2861</span></a> <span class="p">)</span>
-</span><span id="Select-2862"><a href="#Select-2862"><span class="linenos">2862</span></a>
-</span><span id="Select-2863"><a href="#Select-2863"><span class="linenos">2863</span></a> <span class="k">def</span> <span class="nf">sort_by</span><span class="p">(</span>
-</span><span id="Select-2864"><a href="#Select-2864"><span class="linenos">2864</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-2865"><a href="#Select-2865"><span class="linenos">2865</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Select-2866"><a href="#Select-2866"><span class="linenos">2866</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-2867"><a href="#Select-2867"><span class="linenos">2867</span></a> <span class="n">dialect</span><span 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-2868"><a href="#Select-2868"><span class="linenos">2868</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-2869"><a href="#Select-2869"><span class="linenos">2869</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-2870"><a href="#Select-2870"><span class="linenos">2870</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select-2871"><a href="#Select-2871"><span class="linenos">2871</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-2872"><a href="#Select-2872"><span class="linenos">2872</span></a><span class="sd"> Set the SORT BY expression.</span>
-</span><span id="Select-2873"><a href="#Select-2873"><span class="linenos">2873</span></a>
-</span><span id="Select-2874"><a href="#Select-2874"><span class="linenos">2874</span></a><span class="sd"> Example:</span>
-</span><span id="Select-2875"><a href="#Select-2875"><span class="linenos">2875</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).sort_by(&quot;x DESC&quot;).sql(dialect=&quot;hive&quot;)</span>
-</span><span id="Select-2876"><a href="#Select-2876"><span class="linenos">2876</span></a><span class="sd"> &#39;SELECT x FROM tbl SORT BY x DESC&#39;</span>
-</span><span id="Select-2877"><a href="#Select-2877"><span class="linenos">2877</span></a>
-</span><span id="Select-2878"><a href="#Select-2878"><span class="linenos">2878</span></a><span class="sd"> Args:</span>
-</span><span id="Select-2879"><a href="#Select-2879"><span class="linenos">2879</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Select-2880"><a href="#Select-2880"><span class="linenos">2880</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
-</span><span id="Select-2881"><a href="#Select-2881"><span class="linenos">2881</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `SORT`.</span>
-</span><span id="Select-2882"><a href="#Select-2882"><span class="linenos">2882</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="Select-2883"><a href="#Select-2883"><span class="linenos">2883</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
-</span><span id="Select-2884"><a href="#Select-2884"><span class="linenos">2884</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="Select-2885"><a href="#Select-2885"><span class="linenos">2885</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-2886"><a href="#Select-2886"><span class="linenos">2886</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Select-2887"><a href="#Select-2887"><span class="linenos">2887</span></a>
-</span><span id="Select-2888"><a href="#Select-2888"><span class="linenos">2888</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-2889"><a href="#Select-2889"><span class="linenos">2889</span></a><span class="sd"> The modified Select expression.</span>
-</span><span id="Select-2890"><a href="#Select-2890"><span class="linenos">2890</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-2891"><a href="#Select-2891"><span class="linenos">2891</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="Select-2892"><a href="#Select-2892"><span class="linenos">2892</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select-2893"><a href="#Select-2893"><span class="linenos">2893</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-2894"><a href="#Select-2894"><span class="linenos">2894</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-2895"><a href="#Select-2895"><span class="linenos">2895</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select-2896"><a href="#Select-2896"><span class="linenos">2896</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-2897"><a href="#Select-2897"><span class="linenos">2897</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-2898"><a href="#Select-2898"><span class="linenos">2898</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Sort</span><span class="p">,</span>
-</span><span id="Select-2899"><a href="#Select-2899"><span class="linenos">2899</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select-2900"><a href="#Select-2900"><span class="linenos">2900</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-2901"><a href="#Select-2901"><span class="linenos">2901</span></a> <span class="p">)</span>
-</span><span id="Select-2902"><a href="#Select-2902"><span class="linenos">2902</span></a>
-</span><span id="Select-2903"><a href="#Select-2903"><span class="linenos">2903</span></a> <span class="k">def</span> <span class="nf">cluster_by</span><span class="p">(</span>
-</span><span id="Select-2904"><a href="#Select-2904"><span class="linenos">2904</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-2905"><a href="#Select-2905"><span class="linenos">2905</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Select-2906"><a href="#Select-2906"><span class="linenos">2906</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-2907"><a href="#Select-2907"><span class="linenos">2907</span></a> <span class="n">dialect</span><span 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-2908"><a href="#Select-2908"><span class="linenos">2908</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-2909"><a href="#Select-2909"><span class="linenos">2909</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-2910"><a href="#Select-2910"><span class="linenos">2910</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select-2911"><a href="#Select-2911"><span class="linenos">2911</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-2912"><a href="#Select-2912"><span class="linenos">2912</span></a><span class="sd"> Set the CLUSTER BY expression.</span>
-</span><span id="Select-2913"><a href="#Select-2913"><span class="linenos">2913</span></a>
-</span><span id="Select-2914"><a href="#Select-2914"><span class="linenos">2914</span></a><span class="sd"> Example:</span>
-</span><span id="Select-2915"><a href="#Select-2915"><span class="linenos">2915</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).cluster_by(&quot;x DESC&quot;).sql(dialect=&quot;hive&quot;)</span>
-</span><span id="Select-2916"><a href="#Select-2916"><span class="linenos">2916</span></a><span class="sd"> &#39;SELECT x FROM tbl CLUSTER BY x DESC&#39;</span>
-</span><span id="Select-2917"><a href="#Select-2917"><span class="linenos">2917</span></a>
-</span><span id="Select-2918"><a href="#Select-2918"><span class="linenos">2918</span></a><span class="sd"> Args:</span>
-</span><span id="Select-2919"><a href="#Select-2919"><span class="linenos">2919</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Select-2920"><a href="#Select-2920"><span class="linenos">2920</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
-</span><span id="Select-2921"><a href="#Select-2921"><span class="linenos">2921</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Cluster`.</span>
-</span><span id="Select-2922"><a href="#Select-2922"><span class="linenos">2922</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="Select-2923"><a href="#Select-2923"><span class="linenos">2923</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
-</span><span id="Select-2924"><a href="#Select-2924"><span class="linenos">2924</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="Select-2925"><a href="#Select-2925"><span class="linenos">2925</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-2926"><a href="#Select-2926"><span class="linenos">2926</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Select-2927"><a href="#Select-2927"><span class="linenos">2927</span></a>
-</span><span id="Select-2928"><a href="#Select-2928"><span class="linenos">2928</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-2929"><a href="#Select-2929"><span class="linenos">2929</span></a><span class="sd"> The modified Select expression.</span>
-</span><span id="Select-2930"><a href="#Select-2930"><span class="linenos">2930</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-2931"><a href="#Select-2931"><span class="linenos">2931</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="Select-2932"><a href="#Select-2932"><span class="linenos">2932</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select-2933"><a href="#Select-2933"><span class="linenos">2933</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-2934"><a href="#Select-2934"><span class="linenos">2934</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-2935"><a href="#Select-2935"><span class="linenos">2935</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select-2936"><a href="#Select-2936"><span class="linenos">2936</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-2937"><a href="#Select-2937"><span class="linenos">2937</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-2938"><a href="#Select-2938"><span class="linenos">2938</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Cluster</span><span class="p">,</span>
-</span><span id="Select-2939"><a href="#Select-2939"><span class="linenos">2939</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select-2940"><a href="#Select-2940"><span class="linenos">2940</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-2941"><a href="#Select-2941"><span class="linenos">2941</span></a> <span class="p">)</span>
-</span><span id="Select-2942"><a href="#Select-2942"><span class="linenos">2942</span></a>
-</span><span id="Select-2943"><a href="#Select-2943"><span class="linenos">2943</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span>
-</span><span id="Select-2944"><a href="#Select-2944"><span class="linenos">2944</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span> <span class="o">|</span> <span class="nb">int</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="Select-2945"><a href="#Select-2945"><span class="linenos">2945</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select-2946"><a href="#Select-2946"><span class="linenos">2946</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-2947"><a href="#Select-2947"><span class="linenos">2947</span></a><span class="sd"> Set the LIMIT expression.</span>
-</span><span id="Select-2948"><a href="#Select-2948"><span class="linenos">2948</span></a>
-</span><span id="Select-2949"><a href="#Select-2949"><span class="linenos">2949</span></a><span class="sd"> Example:</span>
-</span><span id="Select-2950"><a href="#Select-2950"><span class="linenos">2950</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-2951"><a href="#Select-2951"><span class="linenos">2951</span></a><span class="sd"> &#39;SELECT x FROM tbl LIMIT 10&#39;</span>
-</span><span id="Select-2952"><a href="#Select-2952"><span class="linenos">2952</span></a>
-</span><span id="Select-2953"><a href="#Select-2953"><span class="linenos">2953</span></a><span class="sd"> Args:</span>
-</span><span id="Select-2954"><a href="#Select-2954"><span class="linenos">2954</span></a><span class="sd"> expression: the SQL code string to parse.</span>
-</span><span id="Select-2955"><a href="#Select-2955"><span class="linenos">2955</span></a><span class="sd"> This can also be an integer.</span>
-</span><span id="Select-2956"><a href="#Select-2956"><span class="linenos">2956</span></a><span class="sd"> If a `Limit` instance is passed, this is used as-is.</span>
-</span><span id="Select-2957"><a href="#Select-2957"><span class="linenos">2957</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Limit`.</span>
-</span><span id="Select-2958"><a href="#Select-2958"><span class="linenos">2958</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="Select-2959"><a href="#Select-2959"><span class="linenos">2959</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-2960"><a href="#Select-2960"><span class="linenos">2960</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Select-2961"><a href="#Select-2961"><span class="linenos">2961</span></a>
-</span><span id="Select-2962"><a href="#Select-2962"><span class="linenos">2962</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-2963"><a href="#Select-2963"><span class="linenos">2963</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select-2964"><a href="#Select-2964"><span class="linenos">2964</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-2965"><a href="#Select-2965"><span class="linenos">2965</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
-</span><span id="Select-2966"><a href="#Select-2966"><span class="linenos">2966</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
-</span><span id="Select-2967"><a href="#Select-2967"><span class="linenos">2967</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-2968"><a href="#Select-2968"><span class="linenos">2968</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-2969"><a href="#Select-2969"><span class="linenos">2969</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Limit</span><span class="p">,</span>
-</span><span id="Select-2970"><a href="#Select-2970"><span class="linenos">2970</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-2971"><a href="#Select-2971"><span class="linenos">2971</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select-2972"><a href="#Select-2972"><span class="linenos">2972</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-2973"><a href="#Select-2973"><span class="linenos">2973</span></a> <span class="n">into_arg</span><span class="o">=</span><span class="s2">&quot;expression&quot;</span><span class="p">,</span>
-</span><span id="Select-2974"><a href="#Select-2974"><span class="linenos">2974</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-2975"><a href="#Select-2975"><span class="linenos">2975</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select-2759"><a href="#Select-2759"><span class="linenos">2759</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-2760"><a href="#Select-2760"><span class="linenos">2760</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Select-2761"><a href="#Select-2761"><span class="linenos">2761</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-2762"><a href="#Select-2762"><span class="linenos">2762</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-2763"><a href="#Select-2763"><span class="linenos">2763</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-2764"><a href="#Select-2764"><span class="linenos">2764</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-2765"><a href="#Select-2765"><span class="linenos">2765</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-2766"><a href="#Select-2766"><span class="linenos">2766</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-2767"><a href="#Select-2767"><span class="linenos">2767</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-2768"><a href="#Select-2768"><span class="linenos">2768</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span>
+</span><span id="Select-2769"><a href="#Select-2769"><span class="linenos">2769</span></a> <span class="p">}</span>
+</span><span id="Select-2770"><a href="#Select-2770"><span class="linenos">2770</span></a>
+</span><span id="Select-2771"><a href="#Select-2771"><span class="linenos">2771</span></a> <span class="k">def</span> <span class="nf">from_</span><span class="p">(</span>
+</span><span id="Select-2772"><a href="#Select-2772"><span class="linenos">2772</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="Select-2773"><a href="#Select-2773"><span class="linenos">2773</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select-2774"><a href="#Select-2774"><span class="linenos">2774</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-2775"><a href="#Select-2775"><span class="linenos">2775</span></a><span class="sd"> Set the FROM expression.</span>
+</span><span id="Select-2776"><a href="#Select-2776"><span class="linenos">2776</span></a>
+</span><span id="Select-2777"><a href="#Select-2777"><span class="linenos">2777</span></a><span class="sd"> Example:</span>
+</span><span id="Select-2778"><a href="#Select-2778"><span class="linenos">2778</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).sql()</span>
+</span><span id="Select-2779"><a href="#Select-2779"><span class="linenos">2779</span></a><span class="sd"> &#39;SELECT x FROM tbl&#39;</span>
+</span><span id="Select-2780"><a href="#Select-2780"><span class="linenos">2780</span></a>
+</span><span id="Select-2781"><a href="#Select-2781"><span class="linenos">2781</span></a><span class="sd"> Args:</span>
+</span><span id="Select-2782"><a href="#Select-2782"><span class="linenos">2782</span></a><span class="sd"> expression : the SQL code strings to parse.</span>
+</span><span id="Select-2783"><a href="#Select-2783"><span class="linenos">2783</span></a><span class="sd"> If a `From` instance is passed, this is used as-is.</span>
+</span><span id="Select-2784"><a href="#Select-2784"><span class="linenos">2784</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `From`.</span>
+</span><span id="Select-2785"><a href="#Select-2785"><span class="linenos">2785</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Select-2786"><a href="#Select-2786"><span class="linenos">2786</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-2787"><a href="#Select-2787"><span class="linenos">2787</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select-2788"><a href="#Select-2788"><span class="linenos">2788</span></a>
+</span><span id="Select-2789"><a href="#Select-2789"><span class="linenos">2789</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-2790"><a href="#Select-2790"><span class="linenos">2790</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="Select-2791"><a href="#Select-2791"><span class="linenos">2791</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-2792"><a href="#Select-2792"><span class="linenos">2792</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
+</span><span id="Select-2793"><a href="#Select-2793"><span class="linenos">2793</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
+</span><span id="Select-2794"><a href="#Select-2794"><span class="linenos">2794</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-2795"><a href="#Select-2795"><span class="linenos">2795</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-2796"><a href="#Select-2796"><span class="linenos">2796</span></a> <span class="n">into</span><span class="o">=</span><span class="n">From</span><span class="p">,</span>
+</span><span id="Select-2797"><a href="#Select-2797"><span class="linenos">2797</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-2798"><a href="#Select-2798"><span class="linenos">2798</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select-2799"><a href="#Select-2799"><span class="linenos">2799</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select-2800"><a href="#Select-2800"><span class="linenos">2800</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-2801"><a href="#Select-2801"><span class="linenos">2801</span></a> <span class="p">)</span>
+</span><span id="Select-2802"><a href="#Select-2802"><span class="linenos">2802</span></a>
+</span><span id="Select-2803"><a href="#Select-2803"><span class="linenos">2803</span></a> <span class="k">def</span> <span class="nf">group_by</span><span class="p">(</span>
+</span><span id="Select-2804"><a href="#Select-2804"><span class="linenos">2804</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-2805"><a href="#Select-2805"><span class="linenos">2805</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Select-2806"><a href="#Select-2806"><span class="linenos">2806</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-2807"><a href="#Select-2807"><span class="linenos">2807</span></a> <span class="n">dialect</span><span 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-2808"><a href="#Select-2808"><span class="linenos">2808</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-2809"><a href="#Select-2809"><span class="linenos">2809</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-2810"><a href="#Select-2810"><span class="linenos">2810</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select-2811"><a href="#Select-2811"><span class="linenos">2811</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-2812"><a href="#Select-2812"><span class="linenos">2812</span></a><span class="sd"> Set the GROUP BY expression.</span>
+</span><span id="Select-2813"><a href="#Select-2813"><span class="linenos">2813</span></a>
+</span><span id="Select-2814"><a href="#Select-2814"><span class="linenos">2814</span></a><span class="sd"> Example:</span>
+</span><span id="Select-2815"><a href="#Select-2815"><span class="linenos">2815</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-2816"><a href="#Select-2816"><span class="linenos">2816</span></a><span class="sd"> &#39;SELECT x, COUNT(1) FROM tbl GROUP BY x&#39;</span>
+</span><span id="Select-2817"><a href="#Select-2817"><span class="linenos">2817</span></a>
+</span><span id="Select-2818"><a href="#Select-2818"><span class="linenos">2818</span></a><span class="sd"> Args:</span>
+</span><span id="Select-2819"><a href="#Select-2819"><span class="linenos">2819</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Select-2820"><a href="#Select-2820"><span class="linenos">2820</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
+</span><span id="Select-2821"><a href="#Select-2821"><span class="linenos">2821</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Group`.</span>
+</span><span id="Select-2822"><a href="#Select-2822"><span class="linenos">2822</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-2823"><a href="#Select-2823"><span class="linenos">2823</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Select-2824"><a href="#Select-2824"><span class="linenos">2824</span></a><span class="sd"> Otherwise, this flattens all the `Group` expression into a single expression.</span>
+</span><span id="Select-2825"><a href="#Select-2825"><span class="linenos">2825</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Select-2826"><a href="#Select-2826"><span class="linenos">2826</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-2827"><a href="#Select-2827"><span class="linenos">2827</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select-2828"><a href="#Select-2828"><span class="linenos">2828</span></a>
+</span><span id="Select-2829"><a href="#Select-2829"><span class="linenos">2829</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-2830"><a href="#Select-2830"><span class="linenos">2830</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="Select-2831"><a href="#Select-2831"><span class="linenos">2831</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-2832"><a href="#Select-2832"><span class="linenos">2832</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-2833"><a href="#Select-2833"><span class="linenos">2833</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-2834"><a href="#Select-2834"><span class="linenos">2834</span></a>
+</span><span id="Select-2835"><a href="#Select-2835"><span class="linenos">2835</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
+</span><span id="Select-2836"><a href="#Select-2836"><span class="linenos">2836</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select-2837"><a href="#Select-2837"><span class="linenos">2837</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-2838"><a href="#Select-2838"><span class="linenos">2838</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-2839"><a href="#Select-2839"><span class="linenos">2839</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select-2840"><a href="#Select-2840"><span class="linenos">2840</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select-2841"><a href="#Select-2841"><span class="linenos">2841</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-2842"><a href="#Select-2842"><span class="linenos">2842</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Group</span><span class="p">,</span>
+</span><span id="Select-2843"><a href="#Select-2843"><span class="linenos">2843</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select-2844"><a href="#Select-2844"><span class="linenos">2844</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-2845"><a href="#Select-2845"><span class="linenos">2845</span></a> <span class="p">)</span>
+</span><span id="Select-2846"><a href="#Select-2846"><span class="linenos">2846</span></a>
+</span><span id="Select-2847"><a href="#Select-2847"><span class="linenos">2847</span></a> <span class="k">def</span> <span class="nf">order_by</span><span class="p">(</span>
+</span><span id="Select-2848"><a href="#Select-2848"><span class="linenos">2848</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-2849"><a href="#Select-2849"><span class="linenos">2849</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Select-2850"><a href="#Select-2850"><span class="linenos">2850</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-2851"><a href="#Select-2851"><span class="linenos">2851</span></a> <span class="n">dialect</span><span 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-2852"><a href="#Select-2852"><span class="linenos">2852</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-2853"><a href="#Select-2853"><span class="linenos">2853</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-2854"><a href="#Select-2854"><span class="linenos">2854</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select-2855"><a href="#Select-2855"><span class="linenos">2855</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-2856"><a href="#Select-2856"><span class="linenos">2856</span></a><span class="sd"> Set the ORDER BY expression.</span>
+</span><span id="Select-2857"><a href="#Select-2857"><span class="linenos">2857</span></a>
+</span><span id="Select-2858"><a href="#Select-2858"><span class="linenos">2858</span></a><span class="sd"> Example:</span>
+</span><span id="Select-2859"><a href="#Select-2859"><span class="linenos">2859</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-2860"><a href="#Select-2860"><span class="linenos">2860</span></a><span class="sd"> &#39;SELECT x FROM tbl ORDER BY x DESC&#39;</span>
+</span><span id="Select-2861"><a href="#Select-2861"><span class="linenos">2861</span></a>
+</span><span id="Select-2862"><a href="#Select-2862"><span class="linenos">2862</span></a><span class="sd"> Args:</span>
+</span><span id="Select-2863"><a href="#Select-2863"><span class="linenos">2863</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Select-2864"><a href="#Select-2864"><span class="linenos">2864</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
+</span><span id="Select-2865"><a href="#Select-2865"><span class="linenos">2865</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Order`.</span>
+</span><span id="Select-2866"><a href="#Select-2866"><span class="linenos">2866</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Select-2867"><a href="#Select-2867"><span class="linenos">2867</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
+</span><span id="Select-2868"><a href="#Select-2868"><span class="linenos">2868</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Select-2869"><a href="#Select-2869"><span class="linenos">2869</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-2870"><a href="#Select-2870"><span class="linenos">2870</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select-2871"><a href="#Select-2871"><span class="linenos">2871</span></a>
+</span><span id="Select-2872"><a href="#Select-2872"><span class="linenos">2872</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-2873"><a href="#Select-2873"><span class="linenos">2873</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="Select-2874"><a href="#Select-2874"><span class="linenos">2874</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-2875"><a href="#Select-2875"><span class="linenos">2875</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
+</span><span id="Select-2876"><a href="#Select-2876"><span class="linenos">2876</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select-2877"><a href="#Select-2877"><span class="linenos">2877</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-2878"><a href="#Select-2878"><span class="linenos">2878</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-2879"><a href="#Select-2879"><span class="linenos">2879</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select-2880"><a href="#Select-2880"><span class="linenos">2880</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select-2881"><a href="#Select-2881"><span class="linenos">2881</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-2882"><a href="#Select-2882"><span class="linenos">2882</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Order</span><span class="p">,</span>
+</span><span id="Select-2883"><a href="#Select-2883"><span class="linenos">2883</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select-2884"><a href="#Select-2884"><span class="linenos">2884</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-2885"><a href="#Select-2885"><span class="linenos">2885</span></a> <span class="p">)</span>
+</span><span id="Select-2886"><a href="#Select-2886"><span class="linenos">2886</span></a>
+</span><span id="Select-2887"><a href="#Select-2887"><span class="linenos">2887</span></a> <span class="k">def</span> <span class="nf">sort_by</span><span class="p">(</span>
+</span><span id="Select-2888"><a href="#Select-2888"><span class="linenos">2888</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-2889"><a href="#Select-2889"><span class="linenos">2889</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Select-2890"><a href="#Select-2890"><span class="linenos">2890</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-2891"><a href="#Select-2891"><span class="linenos">2891</span></a> <span class="n">dialect</span><span 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-2892"><a href="#Select-2892"><span class="linenos">2892</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-2893"><a href="#Select-2893"><span class="linenos">2893</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-2894"><a href="#Select-2894"><span class="linenos">2894</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select-2895"><a href="#Select-2895"><span class="linenos">2895</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-2896"><a href="#Select-2896"><span class="linenos">2896</span></a><span class="sd"> Set the SORT BY expression.</span>
+</span><span id="Select-2897"><a href="#Select-2897"><span class="linenos">2897</span></a>
+</span><span id="Select-2898"><a href="#Select-2898"><span class="linenos">2898</span></a><span class="sd"> Example:</span>
+</span><span id="Select-2899"><a href="#Select-2899"><span class="linenos">2899</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).sort_by(&quot;x DESC&quot;).sql(dialect=&quot;hive&quot;)</span>
+</span><span id="Select-2900"><a href="#Select-2900"><span class="linenos">2900</span></a><span class="sd"> &#39;SELECT x FROM tbl SORT BY x DESC&#39;</span>
+</span><span id="Select-2901"><a href="#Select-2901"><span class="linenos">2901</span></a>
+</span><span id="Select-2902"><a href="#Select-2902"><span class="linenos">2902</span></a><span class="sd"> Args:</span>
+</span><span id="Select-2903"><a href="#Select-2903"><span class="linenos">2903</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Select-2904"><a href="#Select-2904"><span class="linenos">2904</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
+</span><span id="Select-2905"><a href="#Select-2905"><span class="linenos">2905</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `SORT`.</span>
+</span><span id="Select-2906"><a href="#Select-2906"><span class="linenos">2906</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Select-2907"><a href="#Select-2907"><span class="linenos">2907</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
+</span><span id="Select-2908"><a href="#Select-2908"><span class="linenos">2908</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Select-2909"><a href="#Select-2909"><span class="linenos">2909</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-2910"><a href="#Select-2910"><span class="linenos">2910</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select-2911"><a href="#Select-2911"><span class="linenos">2911</span></a>
+</span><span id="Select-2912"><a href="#Select-2912"><span class="linenos">2912</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-2913"><a href="#Select-2913"><span class="linenos">2913</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="Select-2914"><a href="#Select-2914"><span class="linenos">2914</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-2915"><a href="#Select-2915"><span class="linenos">2915</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
+</span><span id="Select-2916"><a href="#Select-2916"><span class="linenos">2916</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select-2917"><a href="#Select-2917"><span class="linenos">2917</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-2918"><a href="#Select-2918"><span class="linenos">2918</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-2919"><a href="#Select-2919"><span class="linenos">2919</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select-2920"><a href="#Select-2920"><span class="linenos">2920</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select-2921"><a href="#Select-2921"><span class="linenos">2921</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-2922"><a href="#Select-2922"><span class="linenos">2922</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Sort</span><span class="p">,</span>
+</span><span id="Select-2923"><a href="#Select-2923"><span class="linenos">2923</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select-2924"><a href="#Select-2924"><span class="linenos">2924</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-2925"><a href="#Select-2925"><span class="linenos">2925</span></a> <span class="p">)</span>
+</span><span id="Select-2926"><a href="#Select-2926"><span class="linenos">2926</span></a>
+</span><span id="Select-2927"><a href="#Select-2927"><span class="linenos">2927</span></a> <span class="k">def</span> <span class="nf">cluster_by</span><span class="p">(</span>
+</span><span id="Select-2928"><a href="#Select-2928"><span class="linenos">2928</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-2929"><a href="#Select-2929"><span class="linenos">2929</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Select-2930"><a href="#Select-2930"><span class="linenos">2930</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-2931"><a href="#Select-2931"><span class="linenos">2931</span></a> <span class="n">dialect</span><span 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-2932"><a href="#Select-2932"><span class="linenos">2932</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-2933"><a href="#Select-2933"><span class="linenos">2933</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-2934"><a href="#Select-2934"><span class="linenos">2934</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select-2935"><a href="#Select-2935"><span class="linenos">2935</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-2936"><a href="#Select-2936"><span class="linenos">2936</span></a><span class="sd"> Set the CLUSTER BY expression.</span>
+</span><span id="Select-2937"><a href="#Select-2937"><span class="linenos">2937</span></a>
+</span><span id="Select-2938"><a href="#Select-2938"><span class="linenos">2938</span></a><span class="sd"> Example:</span>
+</span><span id="Select-2939"><a href="#Select-2939"><span class="linenos">2939</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).cluster_by(&quot;x DESC&quot;).sql(dialect=&quot;hive&quot;)</span>
+</span><span id="Select-2940"><a href="#Select-2940"><span class="linenos">2940</span></a><span class="sd"> &#39;SELECT x FROM tbl CLUSTER BY x DESC&#39;</span>
+</span><span id="Select-2941"><a href="#Select-2941"><span class="linenos">2941</span></a>
+</span><span id="Select-2942"><a href="#Select-2942"><span class="linenos">2942</span></a><span class="sd"> Args:</span>
+</span><span id="Select-2943"><a href="#Select-2943"><span class="linenos">2943</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Select-2944"><a href="#Select-2944"><span class="linenos">2944</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
+</span><span id="Select-2945"><a href="#Select-2945"><span class="linenos">2945</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Cluster`.</span>
+</span><span id="Select-2946"><a href="#Select-2946"><span class="linenos">2946</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Select-2947"><a href="#Select-2947"><span class="linenos">2947</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
+</span><span id="Select-2948"><a href="#Select-2948"><span class="linenos">2948</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Select-2949"><a href="#Select-2949"><span class="linenos">2949</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-2950"><a href="#Select-2950"><span class="linenos">2950</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select-2951"><a href="#Select-2951"><span class="linenos">2951</span></a>
+</span><span id="Select-2952"><a href="#Select-2952"><span class="linenos">2952</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-2953"><a href="#Select-2953"><span class="linenos">2953</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="Select-2954"><a href="#Select-2954"><span class="linenos">2954</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-2955"><a href="#Select-2955"><span class="linenos">2955</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
+</span><span id="Select-2956"><a href="#Select-2956"><span class="linenos">2956</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select-2957"><a href="#Select-2957"><span class="linenos">2957</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-2958"><a href="#Select-2958"><span class="linenos">2958</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-2959"><a href="#Select-2959"><span class="linenos">2959</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select-2960"><a href="#Select-2960"><span class="linenos">2960</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select-2961"><a href="#Select-2961"><span class="linenos">2961</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-2962"><a href="#Select-2962"><span class="linenos">2962</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Cluster</span><span class="p">,</span>
+</span><span id="Select-2963"><a href="#Select-2963"><span class="linenos">2963</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select-2964"><a href="#Select-2964"><span class="linenos">2964</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-2965"><a href="#Select-2965"><span class="linenos">2965</span></a> <span class="p">)</span>
+</span><span id="Select-2966"><a href="#Select-2966"><span class="linenos">2966</span></a>
+</span><span id="Select-2967"><a href="#Select-2967"><span class="linenos">2967</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span>
+</span><span id="Select-2968"><a href="#Select-2968"><span class="linenos">2968</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span> <span class="o">|</span> <span class="nb">int</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="Select-2969"><a href="#Select-2969"><span class="linenos">2969</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select-2970"><a href="#Select-2970"><span class="linenos">2970</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-2971"><a href="#Select-2971"><span class="linenos">2971</span></a><span class="sd"> Set the LIMIT expression.</span>
+</span><span id="Select-2972"><a href="#Select-2972"><span class="linenos">2972</span></a>
+</span><span id="Select-2973"><a href="#Select-2973"><span class="linenos">2973</span></a><span class="sd"> Example:</span>
+</span><span id="Select-2974"><a href="#Select-2974"><span class="linenos">2974</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-2975"><a href="#Select-2975"><span class="linenos">2975</span></a><span class="sd"> &#39;SELECT x FROM tbl LIMIT 10&#39;</span>
</span><span id="Select-2976"><a href="#Select-2976"><span class="linenos">2976</span></a>
-</span><span id="Select-2977"><a href="#Select-2977"><span class="linenos">2977</span></a> <span class="k">def</span> <span class="nf">offset</span><span class="p">(</span>
-</span><span id="Select-2978"><a href="#Select-2978"><span class="linenos">2978</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span> <span class="o">|</span> <span class="nb">int</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="Select-2979"><a href="#Select-2979"><span class="linenos">2979</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select-2980"><a href="#Select-2980"><span class="linenos">2980</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-2981"><a href="#Select-2981"><span class="linenos">2981</span></a><span class="sd"> Set the OFFSET expression.</span>
-</span><span id="Select-2982"><a href="#Select-2982"><span class="linenos">2982</span></a>
-</span><span id="Select-2983"><a href="#Select-2983"><span class="linenos">2983</span></a><span class="sd"> Example:</span>
-</span><span id="Select-2984"><a href="#Select-2984"><span class="linenos">2984</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-2985"><a href="#Select-2985"><span class="linenos">2985</span></a><span class="sd"> &#39;SELECT x FROM tbl OFFSET 10&#39;</span>
-</span><span id="Select-2986"><a href="#Select-2986"><span class="linenos">2986</span></a>
-</span><span id="Select-2987"><a href="#Select-2987"><span class="linenos">2987</span></a><span class="sd"> Args:</span>
-</span><span id="Select-2988"><a href="#Select-2988"><span class="linenos">2988</span></a><span class="sd"> expression: the SQL code string to parse.</span>
-</span><span id="Select-2989"><a href="#Select-2989"><span class="linenos">2989</span></a><span class="sd"> This can also be an integer.</span>
-</span><span id="Select-2990"><a href="#Select-2990"><span class="linenos">2990</span></a><span class="sd"> If a `Offset` instance is passed, this is used as-is.</span>
-</span><span id="Select-2991"><a href="#Select-2991"><span class="linenos">2991</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Offset`.</span>
-</span><span id="Select-2992"><a href="#Select-2992"><span class="linenos">2992</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="Select-2993"><a href="#Select-2993"><span class="linenos">2993</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-2994"><a href="#Select-2994"><span class="linenos">2994</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Select-2995"><a href="#Select-2995"><span class="linenos">2995</span></a>
-</span><span id="Select-2996"><a href="#Select-2996"><span class="linenos">2996</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-2997"><a href="#Select-2997"><span class="linenos">2997</span></a><span class="sd"> The modified Select expression.</span>
-</span><span id="Select-2998"><a href="#Select-2998"><span class="linenos">2998</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-2999"><a href="#Select-2999"><span class="linenos">2999</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
-</span><span id="Select-3000"><a href="#Select-3000"><span class="linenos">3000</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
-</span><span id="Select-3001"><a href="#Select-3001"><span class="linenos">3001</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-3002"><a href="#Select-3002"><span class="linenos">3002</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-3003"><a href="#Select-3003"><span class="linenos">3003</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Offset</span><span class="p">,</span>
-</span><span id="Select-3004"><a href="#Select-3004"><span class="linenos">3004</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-3005"><a href="#Select-3005"><span class="linenos">3005</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select-3006"><a href="#Select-3006"><span class="linenos">3006</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-3007"><a href="#Select-3007"><span class="linenos">3007</span></a> <span class="n">into_arg</span><span class="o">=</span><span class="s2">&quot;expression&quot;</span><span class="p">,</span>
-</span><span id="Select-3008"><a href="#Select-3008"><span class="linenos">3008</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-3009"><a href="#Select-3009"><span class="linenos">3009</span></a> <span class="p">)</span>
+</span><span id="Select-2977"><a href="#Select-2977"><span class="linenos">2977</span></a><span class="sd"> Args:</span>
+</span><span id="Select-2978"><a href="#Select-2978"><span class="linenos">2978</span></a><span class="sd"> expression: the SQL code string to parse.</span>
+</span><span id="Select-2979"><a href="#Select-2979"><span class="linenos">2979</span></a><span class="sd"> This can also be an integer.</span>
+</span><span id="Select-2980"><a href="#Select-2980"><span class="linenos">2980</span></a><span class="sd"> If a `Limit` instance is passed, this is used as-is.</span>
+</span><span id="Select-2981"><a href="#Select-2981"><span class="linenos">2981</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Limit`.</span>
+</span><span id="Select-2982"><a href="#Select-2982"><span class="linenos">2982</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Select-2983"><a href="#Select-2983"><span class="linenos">2983</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-2984"><a href="#Select-2984"><span class="linenos">2984</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select-2985"><a href="#Select-2985"><span class="linenos">2985</span></a>
+</span><span id="Select-2986"><a href="#Select-2986"><span class="linenos">2986</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-2987"><a href="#Select-2987"><span class="linenos">2987</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="Select-2988"><a href="#Select-2988"><span class="linenos">2988</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-2989"><a href="#Select-2989"><span class="linenos">2989</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
+</span><span id="Select-2990"><a href="#Select-2990"><span class="linenos">2990</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
+</span><span id="Select-2991"><a href="#Select-2991"><span class="linenos">2991</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-2992"><a href="#Select-2992"><span class="linenos">2992</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-2993"><a href="#Select-2993"><span class="linenos">2993</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Limit</span><span class="p">,</span>
+</span><span id="Select-2994"><a href="#Select-2994"><span class="linenos">2994</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-2995"><a href="#Select-2995"><span class="linenos">2995</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select-2996"><a href="#Select-2996"><span class="linenos">2996</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select-2997"><a href="#Select-2997"><span class="linenos">2997</span></a> <span class="n">into_arg</span><span class="o">=</span><span class="s2">&quot;expression&quot;</span><span class="p">,</span>
+</span><span id="Select-2998"><a href="#Select-2998"><span class="linenos">2998</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-2999"><a href="#Select-2999"><span class="linenos">2999</span></a> <span class="p">)</span>
+</span><span id="Select-3000"><a href="#Select-3000"><span class="linenos">3000</span></a>
+</span><span id="Select-3001"><a href="#Select-3001"><span class="linenos">3001</span></a> <span class="k">def</span> <span class="nf">offset</span><span class="p">(</span>
+</span><span id="Select-3002"><a href="#Select-3002"><span class="linenos">3002</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span> <span class="o">|</span> <span class="nb">int</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="Select-3003"><a href="#Select-3003"><span class="linenos">3003</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select-3004"><a href="#Select-3004"><span class="linenos">3004</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-3005"><a href="#Select-3005"><span class="linenos">3005</span></a><span class="sd"> Set the OFFSET expression.</span>
+</span><span id="Select-3006"><a href="#Select-3006"><span class="linenos">3006</span></a>
+</span><span id="Select-3007"><a href="#Select-3007"><span class="linenos">3007</span></a><span class="sd"> Example:</span>
+</span><span id="Select-3008"><a href="#Select-3008"><span class="linenos">3008</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-3009"><a href="#Select-3009"><span class="linenos">3009</span></a><span class="sd"> &#39;SELECT x FROM tbl OFFSET 10&#39;</span>
</span><span id="Select-3010"><a href="#Select-3010"><span class="linenos">3010</span></a>
-</span><span id="Select-3011"><a href="#Select-3011"><span class="linenos">3011</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
-</span><span id="Select-3012"><a href="#Select-3012"><span class="linenos">3012</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-3013"><a href="#Select-3013"><span class="linenos">3013</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Select-3014"><a href="#Select-3014"><span class="linenos">3014</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-3015"><a href="#Select-3015"><span class="linenos">3015</span></a> <span class="n">dialect</span><span 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-3016"><a href="#Select-3016"><span class="linenos">3016</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-3017"><a href="#Select-3017"><span class="linenos">3017</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-3018"><a href="#Select-3018"><span class="linenos">3018</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select-3019"><a href="#Select-3019"><span class="linenos">3019</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-3020"><a href="#Select-3020"><span class="linenos">3020</span></a><span class="sd"> Append to or set the SELECT expressions.</span>
-</span><span id="Select-3021"><a href="#Select-3021"><span class="linenos">3021</span></a>
-</span><span id="Select-3022"><a href="#Select-3022"><span class="linenos">3022</span></a><span class="sd"> Example:</span>
-</span><span id="Select-3023"><a href="#Select-3023"><span class="linenos">3023</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;, &quot;y&quot;).sql()</span>
-</span><span id="Select-3024"><a href="#Select-3024"><span class="linenos">3024</span></a><span class="sd"> &#39;SELECT x, y&#39;</span>
-</span><span id="Select-3025"><a href="#Select-3025"><span class="linenos">3025</span></a>
-</span><span id="Select-3026"><a href="#Select-3026"><span class="linenos">3026</span></a><span class="sd"> Args:</span>
-</span><span id="Select-3027"><a href="#Select-3027"><span class="linenos">3027</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Select-3028"><a href="#Select-3028"><span class="linenos">3028</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select-3029"><a href="#Select-3029"><span class="linenos">3029</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="Select-3030"><a href="#Select-3030"><span class="linenos">3030</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="Select-3031"><a href="#Select-3031"><span class="linenos">3031</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="Select-3032"><a href="#Select-3032"><span class="linenos">3032</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-3033"><a href="#Select-3033"><span class="linenos">3033</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select-3011"><a href="#Select-3011"><span class="linenos">3011</span></a><span class="sd"> Args:</span>
+</span><span id="Select-3012"><a href="#Select-3012"><span class="linenos">3012</span></a><span class="sd"> expression: the SQL code string to parse.</span>
+</span><span id="Select-3013"><a href="#Select-3013"><span class="linenos">3013</span></a><span class="sd"> This can also be an integer.</span>
+</span><span id="Select-3014"><a href="#Select-3014"><span class="linenos">3014</span></a><span class="sd"> If a `Offset` instance is passed, this is used as-is.</span>
+</span><span id="Select-3015"><a href="#Select-3015"><span class="linenos">3015</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Offset`.</span>
+</span><span id="Select-3016"><a href="#Select-3016"><span class="linenos">3016</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Select-3017"><a href="#Select-3017"><span class="linenos">3017</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-3018"><a href="#Select-3018"><span class="linenos">3018</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select-3019"><a href="#Select-3019"><span class="linenos">3019</span></a>
+</span><span id="Select-3020"><a href="#Select-3020"><span class="linenos">3020</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-3021"><a href="#Select-3021"><span class="linenos">3021</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="Select-3022"><a href="#Select-3022"><span class="linenos">3022</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-3023"><a href="#Select-3023"><span class="linenos">3023</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
+</span><span id="Select-3024"><a href="#Select-3024"><span class="linenos">3024</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
+</span><span id="Select-3025"><a href="#Select-3025"><span class="linenos">3025</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-3026"><a href="#Select-3026"><span class="linenos">3026</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-3027"><a href="#Select-3027"><span class="linenos">3027</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Offset</span><span class="p">,</span>
+</span><span id="Select-3028"><a href="#Select-3028"><span class="linenos">3028</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-3029"><a href="#Select-3029"><span class="linenos">3029</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select-3030"><a href="#Select-3030"><span class="linenos">3030</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select-3031"><a href="#Select-3031"><span class="linenos">3031</span></a> <span class="n">into_arg</span><span class="o">=</span><span class="s2">&quot;expression&quot;</span><span class="p">,</span>
+</span><span id="Select-3032"><a href="#Select-3032"><span class="linenos">3032</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-3033"><a href="#Select-3033"><span class="linenos">3033</span></a> <span class="p">)</span>
</span><span id="Select-3034"><a href="#Select-3034"><span class="linenos">3034</span></a>
-</span><span id="Select-3035"><a href="#Select-3035"><span class="linenos">3035</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-3036"><a href="#Select-3036"><span class="linenos">3036</span></a><span class="sd"> The modified Select expression.</span>
-</span><span id="Select-3037"><a href="#Select-3037"><span class="linenos">3037</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-3038"><a href="#Select-3038"><span class="linenos">3038</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="Select-3039"><a href="#Select-3039"><span class="linenos">3039</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select-3040"><a href="#Select-3040"><span class="linenos">3040</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-3041"><a href="#Select-3041"><span class="linenos">3041</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-3042"><a href="#Select-3042"><span class="linenos">3042</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select-3043"><a href="#Select-3043"><span class="linenos">3043</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select-3044"><a href="#Select-3044"><span class="linenos">3044</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-3045"><a href="#Select-3045"><span class="linenos">3045</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-3046"><a href="#Select-3046"><span class="linenos">3046</span></a> <span class="p">)</span>
-</span><span id="Select-3047"><a href="#Select-3047"><span class="linenos">3047</span></a>
-</span><span id="Select-3048"><a href="#Select-3048"><span class="linenos">3048</span></a> <span class="k">def</span> <span class="nf">lateral</span><span class="p">(</span>
-</span><span id="Select-3049"><a href="#Select-3049"><span class="linenos">3049</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-3050"><a href="#Select-3050"><span class="linenos">3050</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Select-3051"><a href="#Select-3051"><span class="linenos">3051</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-3052"><a href="#Select-3052"><span class="linenos">3052</span></a> <span class="n">dialect</span><span 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-3053"><a href="#Select-3053"><span class="linenos">3053</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-3054"><a href="#Select-3054"><span class="linenos">3054</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-3055"><a href="#Select-3055"><span class="linenos">3055</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select-3056"><a href="#Select-3056"><span class="linenos">3056</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-3057"><a href="#Select-3057"><span class="linenos">3057</span></a><span class="sd"> Append to or set the LATERAL expressions.</span>
+</span><span id="Select-3035"><a href="#Select-3035"><span class="linenos">3035</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
+</span><span id="Select-3036"><a href="#Select-3036"><span class="linenos">3036</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-3037"><a href="#Select-3037"><span class="linenos">3037</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Select-3038"><a href="#Select-3038"><span class="linenos">3038</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-3039"><a href="#Select-3039"><span class="linenos">3039</span></a> <span class="n">dialect</span><span 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-3040"><a href="#Select-3040"><span class="linenos">3040</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-3041"><a href="#Select-3041"><span class="linenos">3041</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-3042"><a href="#Select-3042"><span class="linenos">3042</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select-3043"><a href="#Select-3043"><span class="linenos">3043</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-3044"><a href="#Select-3044"><span class="linenos">3044</span></a><span class="sd"> Append to or set the SELECT expressions.</span>
+</span><span id="Select-3045"><a href="#Select-3045"><span class="linenos">3045</span></a>
+</span><span id="Select-3046"><a href="#Select-3046"><span class="linenos">3046</span></a><span class="sd"> Example:</span>
+</span><span id="Select-3047"><a href="#Select-3047"><span class="linenos">3047</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;, &quot;y&quot;).sql()</span>
+</span><span id="Select-3048"><a href="#Select-3048"><span class="linenos">3048</span></a><span class="sd"> &#39;SELECT x, y&#39;</span>
+</span><span id="Select-3049"><a href="#Select-3049"><span class="linenos">3049</span></a>
+</span><span id="Select-3050"><a href="#Select-3050"><span class="linenos">3050</span></a><span class="sd"> Args:</span>
+</span><span id="Select-3051"><a href="#Select-3051"><span class="linenos">3051</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Select-3052"><a href="#Select-3052"><span class="linenos">3052</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select-3053"><a href="#Select-3053"><span class="linenos">3053</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Select-3054"><a href="#Select-3054"><span class="linenos">3054</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="Select-3055"><a href="#Select-3055"><span class="linenos">3055</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Select-3056"><a href="#Select-3056"><span class="linenos">3056</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-3057"><a href="#Select-3057"><span class="linenos">3057</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Select-3058"><a href="#Select-3058"><span class="linenos">3058</span></a>
-</span><span id="Select-3059"><a href="#Select-3059"><span class="linenos">3059</span></a><span class="sd"> Example:</span>
-</span><span id="Select-3060"><a href="#Select-3060"><span class="linenos">3060</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-3061"><a href="#Select-3061"><span class="linenos">3061</span></a><span class="sd"> &#39;SELECT x FROM tbl LATERAL VIEW OUTER EXPLODE(y) tbl2 AS z&#39;</span>
-</span><span id="Select-3062"><a href="#Select-3062"><span class="linenos">3062</span></a>
-</span><span id="Select-3063"><a href="#Select-3063"><span class="linenos">3063</span></a><span class="sd"> Args:</span>
-</span><span id="Select-3064"><a href="#Select-3064"><span class="linenos">3064</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Select-3065"><a href="#Select-3065"><span class="linenos">3065</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select-3066"><a href="#Select-3066"><span class="linenos">3066</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="Select-3067"><a href="#Select-3067"><span class="linenos">3067</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="Select-3068"><a href="#Select-3068"><span class="linenos">3068</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="Select-3069"><a href="#Select-3069"><span class="linenos">3069</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-3070"><a href="#Select-3070"><span class="linenos">3070</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select-3059"><a href="#Select-3059"><span class="linenos">3059</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-3060"><a href="#Select-3060"><span class="linenos">3060</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="Select-3061"><a href="#Select-3061"><span class="linenos">3061</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-3062"><a href="#Select-3062"><span class="linenos">3062</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="Select-3063"><a href="#Select-3063"><span class="linenos">3063</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select-3064"><a href="#Select-3064"><span class="linenos">3064</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-3065"><a href="#Select-3065"><span class="linenos">3065</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-3066"><a href="#Select-3066"><span class="linenos">3066</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select-3067"><a href="#Select-3067"><span class="linenos">3067</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select-3068"><a href="#Select-3068"><span class="linenos">3068</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select-3069"><a href="#Select-3069"><span class="linenos">3069</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-3070"><a href="#Select-3070"><span class="linenos">3070</span></a> <span class="p">)</span>
</span><span id="Select-3071"><a href="#Select-3071"><span class="linenos">3071</span></a>
-</span><span id="Select-3072"><a href="#Select-3072"><span class="linenos">3072</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-3073"><a href="#Select-3073"><span class="linenos">3073</span></a><span class="sd"> The modified Select expression.</span>
-</span><span id="Select-3074"><a href="#Select-3074"><span class="linenos">3074</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-3075"><a href="#Select-3075"><span class="linenos">3075</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="Select-3076"><a href="#Select-3076"><span class="linenos">3076</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select-3077"><a href="#Select-3077"><span class="linenos">3077</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-3078"><a href="#Select-3078"><span class="linenos">3078</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-3079"><a href="#Select-3079"><span class="linenos">3079</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select-3080"><a href="#Select-3080"><span class="linenos">3080</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Lateral</span><span class="p">,</span>
-</span><span id="Select-3081"><a href="#Select-3081"><span class="linenos">3081</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-3082"><a href="#Select-3082"><span class="linenos">3082</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select-3083"><a href="#Select-3083"><span class="linenos">3083</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-3084"><a href="#Select-3084"><span class="linenos">3084</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-3085"><a href="#Select-3085"><span class="linenos">3085</span></a> <span class="p">)</span>
+</span><span id="Select-3072"><a href="#Select-3072"><span class="linenos">3072</span></a> <span class="k">def</span> <span class="nf">lateral</span><span class="p">(</span>
+</span><span id="Select-3073"><a href="#Select-3073"><span class="linenos">3073</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-3074"><a href="#Select-3074"><span class="linenos">3074</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Select-3075"><a href="#Select-3075"><span class="linenos">3075</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-3076"><a href="#Select-3076"><span class="linenos">3076</span></a> <span class="n">dialect</span><span 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-3077"><a href="#Select-3077"><span class="linenos">3077</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-3078"><a href="#Select-3078"><span class="linenos">3078</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-3079"><a href="#Select-3079"><span class="linenos">3079</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select-3080"><a href="#Select-3080"><span class="linenos">3080</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-3081"><a href="#Select-3081"><span class="linenos">3081</span></a><span class="sd"> Append to or set the LATERAL expressions.</span>
+</span><span id="Select-3082"><a href="#Select-3082"><span class="linenos">3082</span></a>
+</span><span id="Select-3083"><a href="#Select-3083"><span class="linenos">3083</span></a><span class="sd"> Example:</span>
+</span><span id="Select-3084"><a href="#Select-3084"><span class="linenos">3084</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-3085"><a href="#Select-3085"><span class="linenos">3085</span></a><span class="sd"> &#39;SELECT x FROM tbl LATERAL VIEW OUTER EXPLODE(y) tbl2 AS z&#39;</span>
</span><span id="Select-3086"><a href="#Select-3086"><span class="linenos">3086</span></a>
-</span><span id="Select-3087"><a href="#Select-3087"><span class="linenos">3087</span></a> <span class="k">def</span> <span class="nf">join</span><span class="p">(</span>
-</span><span id="Select-3088"><a href="#Select-3088"><span class="linenos">3088</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-3089"><a href="#Select-3089"><span class="linenos">3089</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="Select-3090"><a href="#Select-3090"><span class="linenos">3090</span></a> <span class="n">on</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Select-3091"><a href="#Select-3091"><span class="linenos">3091</span></a> <span class="n">using</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Collection</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Select-3092"><a href="#Select-3092"><span class="linenos">3092</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-3093"><a href="#Select-3093"><span class="linenos">3093</span></a> <span class="n">join_type</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Select-3094"><a href="#Select-3094"><span class="linenos">3094</span></a> <span class="n">join_alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Select-3095"><a href="#Select-3095"><span class="linenos">3095</span></a> <span class="n">dialect</span><span 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-3096"><a href="#Select-3096"><span class="linenos">3096</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-3097"><a href="#Select-3097"><span class="linenos">3097</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-3098"><a href="#Select-3098"><span class="linenos">3098</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select-3099"><a href="#Select-3099"><span class="linenos">3099</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-3100"><a href="#Select-3100"><span class="linenos">3100</span></a><span class="sd"> Append to or set the JOIN expressions.</span>
-</span><span id="Select-3101"><a href="#Select-3101"><span class="linenos">3101</span></a>
-</span><span id="Select-3102"><a href="#Select-3102"><span class="linenos">3102</span></a><span class="sd"> Example:</span>
-</span><span id="Select-3103"><a href="#Select-3103"><span class="linenos">3103</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-3104"><a href="#Select-3104"><span class="linenos">3104</span></a><span class="sd"> &#39;SELECT * FROM tbl JOIN tbl2 ON tbl1.y = tbl2.y&#39;</span>
-</span><span id="Select-3105"><a href="#Select-3105"><span class="linenos">3105</span></a>
-</span><span id="Select-3106"><a href="#Select-3106"><span class="linenos">3106</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-3107"><a href="#Select-3107"><span class="linenos">3107</span></a><span class="sd"> &#39;SELECT 1 FROM a JOIN b USING (x, y, z)&#39;</span>
-</span><span id="Select-3108"><a href="#Select-3108"><span class="linenos">3108</span></a>
-</span><span id="Select-3109"><a href="#Select-3109"><span class="linenos">3109</span></a><span class="sd"> Use `join_type` to change the type of join:</span>
+</span><span id="Select-3087"><a href="#Select-3087"><span class="linenos">3087</span></a><span class="sd"> Args:</span>
+</span><span id="Select-3088"><a href="#Select-3088"><span class="linenos">3088</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Select-3089"><a href="#Select-3089"><span class="linenos">3089</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select-3090"><a href="#Select-3090"><span class="linenos">3090</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Select-3091"><a href="#Select-3091"><span class="linenos">3091</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="Select-3092"><a href="#Select-3092"><span class="linenos">3092</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Select-3093"><a href="#Select-3093"><span class="linenos">3093</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-3094"><a href="#Select-3094"><span class="linenos">3094</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select-3095"><a href="#Select-3095"><span class="linenos">3095</span></a>
+</span><span id="Select-3096"><a href="#Select-3096"><span class="linenos">3096</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-3097"><a href="#Select-3097"><span class="linenos">3097</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="Select-3098"><a href="#Select-3098"><span class="linenos">3098</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-3099"><a href="#Select-3099"><span class="linenos">3099</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="Select-3100"><a href="#Select-3100"><span class="linenos">3100</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select-3101"><a href="#Select-3101"><span class="linenos">3101</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-3102"><a href="#Select-3102"><span class="linenos">3102</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-3103"><a href="#Select-3103"><span class="linenos">3103</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select-3104"><a href="#Select-3104"><span class="linenos">3104</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Lateral</span><span class="p">,</span>
+</span><span id="Select-3105"><a href="#Select-3105"><span class="linenos">3105</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-3106"><a href="#Select-3106"><span class="linenos">3106</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select-3107"><a href="#Select-3107"><span class="linenos">3107</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select-3108"><a href="#Select-3108"><span class="linenos">3108</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-3109"><a href="#Select-3109"><span class="linenos">3109</span></a> <span class="p">)</span>
</span><span id="Select-3110"><a href="#Select-3110"><span class="linenos">3110</span></a>
-</span><span id="Select-3111"><a href="#Select-3111"><span class="linenos">3111</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-3112"><a href="#Select-3112"><span class="linenos">3112</span></a><span class="sd"> &#39;SELECT * FROM tbl LEFT OUTER JOIN tbl2 ON tbl1.y = tbl2.y&#39;</span>
-</span><span id="Select-3113"><a href="#Select-3113"><span class="linenos">3113</span></a>
-</span><span id="Select-3114"><a href="#Select-3114"><span class="linenos">3114</span></a><span class="sd"> Args:</span>
-</span><span id="Select-3115"><a href="#Select-3115"><span class="linenos">3115</span></a><span class="sd"> expression: the SQL code string to parse.</span>
-</span><span id="Select-3116"><a href="#Select-3116"><span class="linenos">3116</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select-3117"><a href="#Select-3117"><span class="linenos">3117</span></a><span class="sd"> on: optionally specify the join &quot;on&quot; criteria as a SQL string.</span>
-</span><span id="Select-3118"><a href="#Select-3118"><span class="linenos">3118</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select-3119"><a href="#Select-3119"><span class="linenos">3119</span></a><span class="sd"> using: optionally specify the join &quot;using&quot; criteria as a SQL string.</span>
-</span><span id="Select-3120"><a href="#Select-3120"><span class="linenos">3120</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select-3121"><a href="#Select-3121"><span class="linenos">3121</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="Select-3122"><a href="#Select-3122"><span class="linenos">3122</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="Select-3123"><a href="#Select-3123"><span class="linenos">3123</span></a><span class="sd"> join_type: if set, alter the parsed join type.</span>
-</span><span id="Select-3124"><a href="#Select-3124"><span class="linenos">3124</span></a><span class="sd"> join_alias: an optional alias for the joined source.</span>
-</span><span id="Select-3125"><a href="#Select-3125"><span class="linenos">3125</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="Select-3126"><a href="#Select-3126"><span class="linenos">3126</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-3127"><a href="#Select-3127"><span class="linenos">3127</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Select-3128"><a href="#Select-3128"><span class="linenos">3128</span></a>
-</span><span id="Select-3129"><a href="#Select-3129"><span class="linenos">3129</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-3130"><a href="#Select-3130"><span class="linenos">3130</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select-3131"><a href="#Select-3131"><span class="linenos">3131</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-3132"><a href="#Select-3132"><span class="linenos">3132</span></a> <span class="n">parse_args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;dialect&quot;</span><span class="p">:</span> <span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">}</span>
-</span><span id="Select-3133"><a href="#Select-3133"><span class="linenos">3133</span></a>
-</span><span id="Select-3134"><a href="#Select-3134"><span class="linenos">3134</span></a> <span class="k">try</span><span class="p">:</span>
-</span><span id="Select-3135"><a href="#Select-3135"><span class="linenos">3135</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-3136"><a href="#Select-3136"><span class="linenos">3136</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span>
-</span><span id="Select-3137"><a href="#Select-3137"><span class="linenos">3137</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-3138"><a href="#Select-3138"><span class="linenos">3138</span></a>
-</span><span id="Select-3139"><a href="#Select-3139"><span class="linenos">3139</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-3140"><a href="#Select-3140"><span class="linenos">3140</span></a>
-</span><span id="Select-3141"><a href="#Select-3141"><span class="linenos">3141</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-3142"><a href="#Select-3142"><span class="linenos">3142</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-3143"><a href="#Select-3143"><span class="linenos">3143</span></a>
-</span><span id="Select-3144"><a href="#Select-3144"><span class="linenos">3144</span></a> <span class="k">if</span> <span class="n">join_type</span><span class="p">:</span>
-</span><span id="Select-3145"><a href="#Select-3145"><span class="linenos">3145</span></a> <span class="n">method</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">]</span>
-</span><span id="Select-3146"><a href="#Select-3146"><span class="linenos">3146</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-3147"><a href="#Select-3147"><span class="linenos">3147</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-3148"><a href="#Select-3148"><span class="linenos">3148</span></a>
-</span><span id="Select-3149"><a href="#Select-3149"><span class="linenos">3149</span></a> <span class="n">method</span><span class="p">,</span> <span class="n">side</span><span class="p">,</span> <span class="n">kind</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">join_type</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="s2">&quot;JOIN_TYPE&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span> <span class="c1"># type: ignore</span>
-</span><span id="Select-3150"><a href="#Select-3150"><span class="linenos">3150</span></a>
-</span><span id="Select-3151"><a href="#Select-3151"><span class="linenos">3151</span></a> <span class="k">if</span> <span class="n">method</span><span class="p">:</span>
-</span><span id="Select-3152"><a href="#Select-3152"><span class="linenos">3152</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;method&quot;</span><span class="p">,</span> <span class="n">method</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
-</span><span id="Select-3153"><a href="#Select-3153"><span class="linenos">3153</span></a> <span class="k">if</span> <span class="n">side</span><span class="p">:</span>
-</span><span id="Select-3154"><a href="#Select-3154"><span class="linenos">3154</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-3155"><a href="#Select-3155"><span class="linenos">3155</span></a> <span class="k">if</span> <span class="n">kind</span><span class="p">:</span>
-</span><span id="Select-3156"><a href="#Select-3156"><span class="linenos">3156</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-3111"><a href="#Select-3111"><span class="linenos">3111</span></a> <span class="k">def</span> <span class="nf">join</span><span class="p">(</span>
+</span><span id="Select-3112"><a href="#Select-3112"><span class="linenos">3112</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-3113"><a href="#Select-3113"><span class="linenos">3113</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="Select-3114"><a href="#Select-3114"><span class="linenos">3114</span></a> <span class="n">on</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Select-3115"><a href="#Select-3115"><span class="linenos">3115</span></a> <span class="n">using</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Collection</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Select-3116"><a href="#Select-3116"><span class="linenos">3116</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-3117"><a href="#Select-3117"><span class="linenos">3117</span></a> <span class="n">join_type</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Select-3118"><a href="#Select-3118"><span class="linenos">3118</span></a> <span class="n">join_alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Select-3119"><a href="#Select-3119"><span class="linenos">3119</span></a> <span class="n">dialect</span><span 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-3120"><a href="#Select-3120"><span class="linenos">3120</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-3121"><a href="#Select-3121"><span class="linenos">3121</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-3122"><a href="#Select-3122"><span class="linenos">3122</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select-3123"><a href="#Select-3123"><span class="linenos">3123</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-3124"><a href="#Select-3124"><span class="linenos">3124</span></a><span class="sd"> Append to or set the JOIN expressions.</span>
+</span><span id="Select-3125"><a href="#Select-3125"><span class="linenos">3125</span></a>
+</span><span id="Select-3126"><a href="#Select-3126"><span class="linenos">3126</span></a><span class="sd"> Example:</span>
+</span><span id="Select-3127"><a href="#Select-3127"><span class="linenos">3127</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-3128"><a href="#Select-3128"><span class="linenos">3128</span></a><span class="sd"> &#39;SELECT * FROM tbl JOIN tbl2 ON tbl1.y = tbl2.y&#39;</span>
+</span><span id="Select-3129"><a href="#Select-3129"><span class="linenos">3129</span></a>
+</span><span id="Select-3130"><a href="#Select-3130"><span class="linenos">3130</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-3131"><a href="#Select-3131"><span class="linenos">3131</span></a><span class="sd"> &#39;SELECT 1 FROM a JOIN b USING (x, y, z)&#39;</span>
+</span><span id="Select-3132"><a href="#Select-3132"><span class="linenos">3132</span></a>
+</span><span id="Select-3133"><a href="#Select-3133"><span class="linenos">3133</span></a><span class="sd"> Use `join_type` to change the type of join:</span>
+</span><span id="Select-3134"><a href="#Select-3134"><span class="linenos">3134</span></a>
+</span><span id="Select-3135"><a href="#Select-3135"><span class="linenos">3135</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-3136"><a href="#Select-3136"><span class="linenos">3136</span></a><span class="sd"> &#39;SELECT * FROM tbl LEFT OUTER JOIN tbl2 ON tbl1.y = tbl2.y&#39;</span>
+</span><span id="Select-3137"><a href="#Select-3137"><span class="linenos">3137</span></a>
+</span><span id="Select-3138"><a href="#Select-3138"><span class="linenos">3138</span></a><span class="sd"> Args:</span>
+</span><span id="Select-3139"><a href="#Select-3139"><span class="linenos">3139</span></a><span class="sd"> expression: the SQL code string to parse.</span>
+</span><span id="Select-3140"><a href="#Select-3140"><span class="linenos">3140</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select-3141"><a href="#Select-3141"><span class="linenos">3141</span></a><span class="sd"> on: optionally specify the join &quot;on&quot; criteria as a SQL string.</span>
+</span><span id="Select-3142"><a href="#Select-3142"><span class="linenos">3142</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select-3143"><a href="#Select-3143"><span class="linenos">3143</span></a><span class="sd"> using: optionally specify the join &quot;using&quot; criteria as a SQL string.</span>
+</span><span id="Select-3144"><a href="#Select-3144"><span class="linenos">3144</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select-3145"><a href="#Select-3145"><span class="linenos">3145</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Select-3146"><a href="#Select-3146"><span class="linenos">3146</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="Select-3147"><a href="#Select-3147"><span class="linenos">3147</span></a><span class="sd"> join_type: if set, alter the parsed join type.</span>
+</span><span id="Select-3148"><a href="#Select-3148"><span class="linenos">3148</span></a><span class="sd"> join_alias: an optional alias for the joined source.</span>
+</span><span id="Select-3149"><a href="#Select-3149"><span class="linenos">3149</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Select-3150"><a href="#Select-3150"><span class="linenos">3150</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-3151"><a href="#Select-3151"><span class="linenos">3151</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select-3152"><a href="#Select-3152"><span class="linenos">3152</span></a>
+</span><span id="Select-3153"><a href="#Select-3153"><span class="linenos">3153</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-3154"><a href="#Select-3154"><span class="linenos">3154</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="Select-3155"><a href="#Select-3155"><span class="linenos">3155</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-3156"><a href="#Select-3156"><span class="linenos">3156</span></a> <span class="n">parse_args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;dialect&quot;</span><span class="p">:</span> <span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">}</span>
</span><span id="Select-3157"><a href="#Select-3157"><span class="linenos">3157</span></a>
-</span><span id="Select-3158"><a href="#Select-3158"><span class="linenos">3158</span></a> <span class="k">if</span> <span class="n">on</span><span class="p">:</span>
-</span><span id="Select-3159"><a href="#Select-3159"><span class="linenos">3159</span></a> <span class="n">on</span> <span class="o">=</span> <span class="n">and_</span><span class="p">(</span><span class="o">*</span><span class="n">ensure_list</span><span class="p">(</span><span class="n">on</span><span class="p">),</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="Select-3160"><a href="#Select-3160"><span class="linenos">3160</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-3161"><a href="#Select-3161"><span class="linenos">3161</span></a>
-</span><span id="Select-3162"><a href="#Select-3162"><span class="linenos">3162</span></a> <span class="k">if</span> <span class="n">using</span><span class="p">:</span>
-</span><span id="Select-3163"><a href="#Select-3163"><span class="linenos">3163</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-3164"><a href="#Select-3164"><span class="linenos">3164</span></a> <span class="o">*</span><span class="n">ensure_list</span><span class="p">(</span><span class="n">using</span><span class="p">),</span>
-</span><span id="Select-3165"><a href="#Select-3165"><span class="linenos">3165</span></a> <span class="n">instance</span><span class="o">=</span><span class="n">join</span><span class="p">,</span>
-</span><span id="Select-3166"><a href="#Select-3166"><span class="linenos">3166</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-3167"><a href="#Select-3167"><span class="linenos">3167</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select-3168"><a href="#Select-3168"><span class="linenos">3168</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-3169"><a href="#Select-3169"><span class="linenos">3169</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Identifier</span><span class="p">,</span>
-</span><span id="Select-3170"><a href="#Select-3170"><span class="linenos">3170</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-3171"><a href="#Select-3171"><span class="linenos">3171</span></a> <span class="p">)</span>
+</span><span id="Select-3158"><a href="#Select-3158"><span class="linenos">3158</span></a> <span class="k">try</span><span class="p">:</span>
+</span><span id="Select-3159"><a href="#Select-3159"><span class="linenos">3159</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-3160"><a href="#Select-3160"><span class="linenos">3160</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span>
+</span><span id="Select-3161"><a href="#Select-3161"><span class="linenos">3161</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-3162"><a href="#Select-3162"><span class="linenos">3162</span></a>
+</span><span id="Select-3163"><a href="#Select-3163"><span class="linenos">3163</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-3164"><a href="#Select-3164"><span class="linenos">3164</span></a>
+</span><span id="Select-3165"><a href="#Select-3165"><span class="linenos">3165</span></a> <span class="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-3166"><a href="#Select-3166"><span class="linenos">3166</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-3167"><a href="#Select-3167"><span class="linenos">3167</span></a>
+</span><span id="Select-3168"><a href="#Select-3168"><span class="linenos">3168</span></a> <span class="k">if</span> <span class="n">join_type</span><span class="p">:</span>
+</span><span id="Select-3169"><a href="#Select-3169"><span class="linenos">3169</span></a> <span class="n">method</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">]</span>
+</span><span id="Select-3170"><a href="#Select-3170"><span class="linenos">3170</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-3171"><a href="#Select-3171"><span class="linenos">3171</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-3172"><a href="#Select-3172"><span class="linenos">3172</span></a>
-</span><span id="Select-3173"><a href="#Select-3173"><span class="linenos">3173</span></a> <span class="k">if</span> <span class="n">join_alias</span><span class="p">:</span>
-</span><span id="Select-3174"><a href="#Select-3174"><span class="linenos">3174</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-3175"><a href="#Select-3175"><span class="linenos">3175</span></a>
-</span><span id="Select-3176"><a href="#Select-3176"><span class="linenos">3176</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="Select-3177"><a href="#Select-3177"><span class="linenos">3177</span></a> <span class="n">join</span><span class="p">,</span>
-</span><span id="Select-3178"><a href="#Select-3178"><span class="linenos">3178</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-3179"><a href="#Select-3179"><span class="linenos">3179</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-3180"><a href="#Select-3180"><span class="linenos">3180</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select-3181"><a href="#Select-3181"><span class="linenos">3181</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-3182"><a href="#Select-3182"><span class="linenos">3182</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-3183"><a href="#Select-3183"><span class="linenos">3183</span></a> <span class="p">)</span>
-</span><span id="Select-3184"><a href="#Select-3184"><span class="linenos">3184</span></a>
-</span><span id="Select-3185"><a href="#Select-3185"><span class="linenos">3185</span></a> <span class="k">def</span> <span class="nf">where</span><span class="p">(</span>
-</span><span id="Select-3186"><a href="#Select-3186"><span class="linenos">3186</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-3187"><a href="#Select-3187"><span class="linenos">3187</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Select-3188"><a href="#Select-3188"><span class="linenos">3188</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-3189"><a href="#Select-3189"><span class="linenos">3189</span></a> <span class="n">dialect</span><span 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-3190"><a href="#Select-3190"><span class="linenos">3190</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-3191"><a href="#Select-3191"><span class="linenos">3191</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-3192"><a href="#Select-3192"><span class="linenos">3192</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select-3193"><a href="#Select-3193"><span class="linenos">3193</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-3194"><a href="#Select-3194"><span class="linenos">3194</span></a><span class="sd"> Append to or set the WHERE expressions.</span>
-</span><span id="Select-3195"><a href="#Select-3195"><span class="linenos">3195</span></a>
-</span><span id="Select-3196"><a href="#Select-3196"><span class="linenos">3196</span></a><span class="sd"> Example:</span>
-</span><span id="Select-3197"><a href="#Select-3197"><span class="linenos">3197</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-3198"><a href="#Select-3198"><span class="linenos">3198</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-3173"><a href="#Select-3173"><span class="linenos">3173</span></a> <span class="n">method</span><span class="p">,</span> <span class="n">side</span><span class="p">,</span> <span class="n">kind</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">join_type</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="s2">&quot;JOIN_TYPE&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span> <span class="c1"># type: ignore</span>
+</span><span id="Select-3174"><a href="#Select-3174"><span class="linenos">3174</span></a>
+</span><span id="Select-3175"><a href="#Select-3175"><span class="linenos">3175</span></a> <span class="k">if</span> <span class="n">method</span><span class="p">:</span>
+</span><span id="Select-3176"><a href="#Select-3176"><span class="linenos">3176</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;method&quot;</span><span class="p">,</span> <span class="n">method</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
+</span><span id="Select-3177"><a href="#Select-3177"><span class="linenos">3177</span></a> <span class="k">if</span> <span class="n">side</span><span class="p">:</span>
+</span><span id="Select-3178"><a href="#Select-3178"><span class="linenos">3178</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-3179"><a href="#Select-3179"><span class="linenos">3179</span></a> <span class="k">if</span> <span class="n">kind</span><span class="p">:</span>
+</span><span id="Select-3180"><a href="#Select-3180"><span class="linenos">3180</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-3181"><a href="#Select-3181"><span class="linenos">3181</span></a>
+</span><span id="Select-3182"><a href="#Select-3182"><span class="linenos">3182</span></a> <span class="k">if</span> <span class="n">on</span><span class="p">:</span>
+</span><span id="Select-3183"><a href="#Select-3183"><span class="linenos">3183</span></a> <span class="n">on</span> <span class="o">=</span> <span class="n">and_</span><span class="p">(</span><span class="o">*</span><span class="n">ensure_list</span><span class="p">(</span><span class="n">on</span><span class="p">),</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="Select-3184"><a href="#Select-3184"><span class="linenos">3184</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-3185"><a href="#Select-3185"><span class="linenos">3185</span></a>
+</span><span id="Select-3186"><a href="#Select-3186"><span class="linenos">3186</span></a> <span class="k">if</span> <span class="n">using</span><span class="p">:</span>
+</span><span id="Select-3187"><a href="#Select-3187"><span class="linenos">3187</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-3188"><a href="#Select-3188"><span class="linenos">3188</span></a> <span class="o">*</span><span class="n">ensure_list</span><span class="p">(</span><span class="n">using</span><span class="p">),</span>
+</span><span id="Select-3189"><a href="#Select-3189"><span class="linenos">3189</span></a> <span class="n">instance</span><span class="o">=</span><span class="n">join</span><span class="p">,</span>
+</span><span id="Select-3190"><a href="#Select-3190"><span class="linenos">3190</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-3191"><a href="#Select-3191"><span class="linenos">3191</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select-3192"><a href="#Select-3192"><span class="linenos">3192</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select-3193"><a href="#Select-3193"><span class="linenos">3193</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Identifier</span><span class="p">,</span>
+</span><span id="Select-3194"><a href="#Select-3194"><span class="linenos">3194</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-3195"><a href="#Select-3195"><span class="linenos">3195</span></a> <span class="p">)</span>
+</span><span id="Select-3196"><a href="#Select-3196"><span class="linenos">3196</span></a>
+</span><span id="Select-3197"><a href="#Select-3197"><span class="linenos">3197</span></a> <span class="k">if</span> <span class="n">join_alias</span><span class="p">:</span>
+</span><span id="Select-3198"><a href="#Select-3198"><span class="linenos">3198</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-3199"><a href="#Select-3199"><span class="linenos">3199</span></a>
-</span><span id="Select-3200"><a href="#Select-3200"><span class="linenos">3200</span></a><span class="sd"> Args:</span>
-</span><span id="Select-3201"><a href="#Select-3201"><span class="linenos">3201</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Select-3202"><a href="#Select-3202"><span class="linenos">3202</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select-3203"><a href="#Select-3203"><span class="linenos">3203</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
-</span><span id="Select-3204"><a href="#Select-3204"><span class="linenos">3204</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
-</span><span id="Select-3205"><a href="#Select-3205"><span class="linenos">3205</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="Select-3206"><a href="#Select-3206"><span class="linenos">3206</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="Select-3207"><a href="#Select-3207"><span class="linenos">3207</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-3208"><a href="#Select-3208"><span class="linenos">3208</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Select-3209"><a href="#Select-3209"><span class="linenos">3209</span></a>
-</span><span id="Select-3210"><a href="#Select-3210"><span class="linenos">3210</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-3211"><a href="#Select-3211"><span class="linenos">3211</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select-3212"><a href="#Select-3212"><span class="linenos">3212</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-3213"><a href="#Select-3213"><span class="linenos">3213</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="Select-3214"><a href="#Select-3214"><span class="linenos">3214</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select-3215"><a href="#Select-3215"><span class="linenos">3215</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-3216"><a href="#Select-3216"><span class="linenos">3216</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-3217"><a href="#Select-3217"><span class="linenos">3217</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select-3218"><a href="#Select-3218"><span class="linenos">3218</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span>
-</span><span id="Select-3219"><a href="#Select-3219"><span class="linenos">3219</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select-3220"><a href="#Select-3220"><span class="linenos">3220</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-3221"><a href="#Select-3221"><span class="linenos">3221</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-3222"><a href="#Select-3222"><span class="linenos">3222</span></a> <span class="p">)</span>
+</span><span id="Select-3200"><a href="#Select-3200"><span class="linenos">3200</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="Select-3201"><a href="#Select-3201"><span class="linenos">3201</span></a> <span class="n">join</span><span class="p">,</span>
+</span><span id="Select-3202"><a href="#Select-3202"><span class="linenos">3202</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-3203"><a href="#Select-3203"><span class="linenos">3203</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-3204"><a href="#Select-3204"><span class="linenos">3204</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select-3205"><a href="#Select-3205"><span class="linenos">3205</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select-3206"><a href="#Select-3206"><span class="linenos">3206</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-3207"><a href="#Select-3207"><span class="linenos">3207</span></a> <span class="p">)</span>
+</span><span id="Select-3208"><a href="#Select-3208"><span class="linenos">3208</span></a>
+</span><span id="Select-3209"><a href="#Select-3209"><span class="linenos">3209</span></a> <span class="k">def</span> <span class="nf">where</span><span class="p">(</span>
+</span><span id="Select-3210"><a href="#Select-3210"><span class="linenos">3210</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-3211"><a href="#Select-3211"><span class="linenos">3211</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Select-3212"><a href="#Select-3212"><span class="linenos">3212</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-3213"><a href="#Select-3213"><span class="linenos">3213</span></a> <span class="n">dialect</span><span 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-3214"><a href="#Select-3214"><span class="linenos">3214</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-3215"><a href="#Select-3215"><span class="linenos">3215</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-3216"><a href="#Select-3216"><span class="linenos">3216</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select-3217"><a href="#Select-3217"><span class="linenos">3217</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-3218"><a href="#Select-3218"><span class="linenos">3218</span></a><span class="sd"> Append to or set the WHERE expressions.</span>
+</span><span id="Select-3219"><a href="#Select-3219"><span class="linenos">3219</span></a>
+</span><span id="Select-3220"><a href="#Select-3220"><span class="linenos">3220</span></a><span class="sd"> Example:</span>
+</span><span id="Select-3221"><a href="#Select-3221"><span class="linenos">3221</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-3222"><a href="#Select-3222"><span class="linenos">3222</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-3223"><a href="#Select-3223"><span class="linenos">3223</span></a>
-</span><span id="Select-3224"><a href="#Select-3224"><span class="linenos">3224</span></a> <span class="k">def</span> <span class="nf">having</span><span class="p">(</span>
-</span><span id="Select-3225"><a href="#Select-3225"><span class="linenos">3225</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-3226"><a href="#Select-3226"><span class="linenos">3226</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Select-3227"><a href="#Select-3227"><span class="linenos">3227</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-3228"><a href="#Select-3228"><span class="linenos">3228</span></a> <span class="n">dialect</span><span 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-3229"><a href="#Select-3229"><span class="linenos">3229</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-3230"><a href="#Select-3230"><span class="linenos">3230</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-3231"><a href="#Select-3231"><span class="linenos">3231</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select-3232"><a href="#Select-3232"><span class="linenos">3232</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-3233"><a href="#Select-3233"><span class="linenos">3233</span></a><span class="sd"> Append to or set the HAVING expressions.</span>
-</span><span id="Select-3234"><a href="#Select-3234"><span class="linenos">3234</span></a>
-</span><span id="Select-3235"><a href="#Select-3235"><span class="linenos">3235</span></a><span class="sd"> Example:</span>
-</span><span id="Select-3236"><a href="#Select-3236"><span class="linenos">3236</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-3237"><a href="#Select-3237"><span class="linenos">3237</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-3238"><a href="#Select-3238"><span class="linenos">3238</span></a>
-</span><span id="Select-3239"><a href="#Select-3239"><span class="linenos">3239</span></a><span class="sd"> Args:</span>
-</span><span id="Select-3240"><a href="#Select-3240"><span class="linenos">3240</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Select-3241"><a href="#Select-3241"><span class="linenos">3241</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select-3242"><a href="#Select-3242"><span class="linenos">3242</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
-</span><span id="Select-3243"><a href="#Select-3243"><span class="linenos">3243</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
-</span><span id="Select-3244"><a href="#Select-3244"><span class="linenos">3244</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="Select-3245"><a href="#Select-3245"><span class="linenos">3245</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="Select-3246"><a href="#Select-3246"><span class="linenos">3246</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-3247"><a href="#Select-3247"><span class="linenos">3247</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Select-3248"><a href="#Select-3248"><span class="linenos">3248</span></a>
-</span><span id="Select-3249"><a href="#Select-3249"><span class="linenos">3249</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-3250"><a href="#Select-3250"><span class="linenos">3250</span></a><span class="sd"> The modified Select expression.</span>
-</span><span id="Select-3251"><a href="#Select-3251"><span class="linenos">3251</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-3252"><a href="#Select-3252"><span class="linenos">3252</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="Select-3253"><a href="#Select-3253"><span class="linenos">3253</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select-3254"><a href="#Select-3254"><span class="linenos">3254</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-3255"><a href="#Select-3255"><span class="linenos">3255</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;having&quot;</span><span class="p">,</span>
-</span><span id="Select-3256"><a href="#Select-3256"><span class="linenos">3256</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select-3257"><a href="#Select-3257"><span class="linenos">3257</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Having</span><span class="p">,</span>
-</span><span id="Select-3258"><a href="#Select-3258"><span class="linenos">3258</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select-3259"><a href="#Select-3259"><span class="linenos">3259</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-3260"><a href="#Select-3260"><span class="linenos">3260</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-3261"><a href="#Select-3261"><span class="linenos">3261</span></a> <span class="p">)</span>
+</span><span id="Select-3224"><a href="#Select-3224"><span class="linenos">3224</span></a><span class="sd"> Args:</span>
+</span><span id="Select-3225"><a href="#Select-3225"><span class="linenos">3225</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Select-3226"><a href="#Select-3226"><span class="linenos">3226</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select-3227"><a href="#Select-3227"><span class="linenos">3227</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
+</span><span id="Select-3228"><a href="#Select-3228"><span class="linenos">3228</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
+</span><span id="Select-3229"><a href="#Select-3229"><span class="linenos">3229</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="Select-3230"><a href="#Select-3230"><span class="linenos">3230</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Select-3231"><a href="#Select-3231"><span class="linenos">3231</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-3232"><a href="#Select-3232"><span class="linenos">3232</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select-3233"><a href="#Select-3233"><span class="linenos">3233</span></a>
+</span><span id="Select-3234"><a href="#Select-3234"><span class="linenos">3234</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-3235"><a href="#Select-3235"><span class="linenos">3235</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="Select-3236"><a href="#Select-3236"><span class="linenos">3236</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-3237"><a href="#Select-3237"><span class="linenos">3237</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="Select-3238"><a href="#Select-3238"><span class="linenos">3238</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select-3239"><a href="#Select-3239"><span class="linenos">3239</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-3240"><a href="#Select-3240"><span class="linenos">3240</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;where&quot;</span><span class="p">,</span>
+</span><span id="Select-3241"><a href="#Select-3241"><span class="linenos">3241</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select-3242"><a href="#Select-3242"><span class="linenos">3242</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span>
+</span><span id="Select-3243"><a href="#Select-3243"><span class="linenos">3243</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select-3244"><a href="#Select-3244"><span class="linenos">3244</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select-3245"><a href="#Select-3245"><span class="linenos">3245</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-3246"><a href="#Select-3246"><span class="linenos">3246</span></a> <span class="p">)</span>
+</span><span id="Select-3247"><a href="#Select-3247"><span class="linenos">3247</span></a>
+</span><span id="Select-3248"><a href="#Select-3248"><span class="linenos">3248</span></a> <span class="k">def</span> <span class="nf">having</span><span class="p">(</span>
+</span><span id="Select-3249"><a href="#Select-3249"><span class="linenos">3249</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-3250"><a href="#Select-3250"><span class="linenos">3250</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Select-3251"><a href="#Select-3251"><span class="linenos">3251</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-3252"><a href="#Select-3252"><span class="linenos">3252</span></a> <span class="n">dialect</span><span 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-3253"><a href="#Select-3253"><span class="linenos">3253</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-3254"><a href="#Select-3254"><span class="linenos">3254</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-3255"><a href="#Select-3255"><span class="linenos">3255</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select-3256"><a href="#Select-3256"><span class="linenos">3256</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-3257"><a href="#Select-3257"><span class="linenos">3257</span></a><span class="sd"> Append to or set the HAVING expressions.</span>
+</span><span id="Select-3258"><a href="#Select-3258"><span class="linenos">3258</span></a>
+</span><span id="Select-3259"><a href="#Select-3259"><span class="linenos">3259</span></a><span class="sd"> Example:</span>
+</span><span id="Select-3260"><a href="#Select-3260"><span class="linenos">3260</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-3261"><a href="#Select-3261"><span class="linenos">3261</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-3262"><a href="#Select-3262"><span class="linenos">3262</span></a>
-</span><span id="Select-3263"><a href="#Select-3263"><span class="linenos">3263</span></a> <span class="k">def</span> <span class="nf">window</span><span class="p">(</span>
-</span><span id="Select-3264"><a href="#Select-3264"><span class="linenos">3264</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-3265"><a href="#Select-3265"><span class="linenos">3265</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Select-3266"><a href="#Select-3266"><span class="linenos">3266</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-3267"><a href="#Select-3267"><span class="linenos">3267</span></a> <span class="n">dialect</span><span 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-3268"><a href="#Select-3268"><span class="linenos">3268</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-3269"><a href="#Select-3269"><span class="linenos">3269</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-3270"><a href="#Select-3270"><span class="linenos">3270</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select-3271"><a href="#Select-3271"><span class="linenos">3271</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="Select-3272"><a href="#Select-3272"><span class="linenos">3272</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select-3273"><a href="#Select-3273"><span class="linenos">3273</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-3274"><a href="#Select-3274"><span class="linenos">3274</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;windows&quot;</span><span class="p">,</span>
-</span><span id="Select-3275"><a href="#Select-3275"><span class="linenos">3275</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select-3276"><a href="#Select-3276"><span class="linenos">3276</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Window</span><span class="p">,</span>
-</span><span id="Select-3277"><a href="#Select-3277"><span class="linenos">3277</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select-3278"><a href="#Select-3278"><span class="linenos">3278</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-3279"><a href="#Select-3279"><span class="linenos">3279</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-3280"><a href="#Select-3280"><span class="linenos">3280</span></a> <span class="p">)</span>
-</span><span id="Select-3281"><a href="#Select-3281"><span class="linenos">3281</span></a>
-</span><span id="Select-3282"><a href="#Select-3282"><span class="linenos">3282</span></a> <span class="k">def</span> <span class="nf">qualify</span><span class="p">(</span>
-</span><span id="Select-3283"><a href="#Select-3283"><span class="linenos">3283</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-3284"><a href="#Select-3284"><span class="linenos">3284</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Select-3285"><a href="#Select-3285"><span class="linenos">3285</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-3286"><a href="#Select-3286"><span class="linenos">3286</span></a> <span class="n">dialect</span><span 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-3287"><a href="#Select-3287"><span class="linenos">3287</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-3288"><a href="#Select-3288"><span class="linenos">3288</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-3289"><a href="#Select-3289"><span class="linenos">3289</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select-3290"><a href="#Select-3290"><span class="linenos">3290</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="Select-3291"><a href="#Select-3291"><span class="linenos">3291</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select-3292"><a href="#Select-3292"><span class="linenos">3292</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-3293"><a href="#Select-3293"><span class="linenos">3293</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-3294"><a href="#Select-3294"><span class="linenos">3294</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select-3295"><a href="#Select-3295"><span class="linenos">3295</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Qualify</span><span class="p">,</span>
-</span><span id="Select-3296"><a href="#Select-3296"><span class="linenos">3296</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select-3297"><a href="#Select-3297"><span class="linenos">3297</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-3298"><a href="#Select-3298"><span class="linenos">3298</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-3299"><a href="#Select-3299"><span class="linenos">3299</span></a> <span class="p">)</span>
-</span><span id="Select-3300"><a href="#Select-3300"><span class="linenos">3300</span></a>
-</span><span id="Select-3301"><a href="#Select-3301"><span class="linenos">3301</span></a> <span class="k">def</span> <span class="nf">distinct</span><span class="p">(</span>
-</span><span id="Select-3302"><a href="#Select-3302"><span class="linenos">3302</span></a> <span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">ons</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="Select-3303"><a href="#Select-3303"><span class="linenos">3303</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select-3304"><a href="#Select-3304"><span class="linenos">3304</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-3305"><a href="#Select-3305"><span class="linenos">3305</span></a><span class="sd"> Set the OFFSET expression.</span>
-</span><span id="Select-3306"><a href="#Select-3306"><span class="linenos">3306</span></a>
-</span><span id="Select-3307"><a href="#Select-3307"><span class="linenos">3307</span></a><span class="sd"> Example:</span>
-</span><span id="Select-3308"><a href="#Select-3308"><span class="linenos">3308</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).distinct().sql()</span>
-</span><span id="Select-3309"><a href="#Select-3309"><span class="linenos">3309</span></a><span class="sd"> &#39;SELECT DISTINCT x FROM tbl&#39;</span>
-</span><span id="Select-3310"><a href="#Select-3310"><span class="linenos">3310</span></a>
-</span><span id="Select-3311"><a href="#Select-3311"><span class="linenos">3311</span></a><span class="sd"> Args:</span>
-</span><span id="Select-3312"><a href="#Select-3312"><span class="linenos">3312</span></a><span class="sd"> ons: the expressions to distinct on</span>
-</span><span id="Select-3313"><a href="#Select-3313"><span class="linenos">3313</span></a><span class="sd"> distinct: whether the Select should be distinct</span>
-</span><span id="Select-3314"><a href="#Select-3314"><span class="linenos">3314</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-3315"><a href="#Select-3315"><span class="linenos">3315</span></a>
-</span><span id="Select-3316"><a href="#Select-3316"><span class="linenos">3316</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-3317"><a href="#Select-3317"><span class="linenos">3317</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select-3318"><a href="#Select-3318"><span class="linenos">3318</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-3319"><a href="#Select-3319"><span class="linenos">3319</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-3320"><a href="#Select-3320"><span class="linenos">3320</span></a> <span class="n">on</span> <span class="o">=</span> <span class="n">Tuple</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">on</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">on</span> <span class="ow">in</span> <span class="n">ons</span> <span class="k">if</span> <span class="n">on</span><span class="p">])</span> <span class="k">if</span> <span class="n">ons</span> <span class="k">else</span> <span class="kc">None</span>
-</span><span id="Select-3321"><a href="#Select-3321"><span class="linenos">3321</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;distinct&quot;</span><span class="p">,</span> <span class="n">Distinct</span><span class="p">(</span><span class="n">on</span><span class="o">=</span><span class="n">on</span><span class="p">)</span> <span class="k">if</span> <span class="n">distinct</span> <span class="k">else</span> <span class="kc">None</span><span class="p">)</span>
-</span><span id="Select-3322"><a href="#Select-3322"><span class="linenos">3322</span></a> <span class="k">return</span> <span class="n">instance</span>
-</span><span id="Select-3323"><a href="#Select-3323"><span class="linenos">3323</span></a>
-</span><span id="Select-3324"><a href="#Select-3324"><span class="linenos">3324</span></a> <span class="k">def</span> <span class="nf">ctas</span><span class="p">(</span>
-</span><span id="Select-3325"><a href="#Select-3325"><span class="linenos">3325</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-3326"><a href="#Select-3326"><span class="linenos">3326</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="Select-3327"><a href="#Select-3327"><span class="linenos">3327</span></a> <span class="n">properties</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Select-3328"><a href="#Select-3328"><span class="linenos">3328</span></a> <span class="n">dialect</span><span 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-3329"><a href="#Select-3329"><span class="linenos">3329</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-3330"><a href="#Select-3330"><span class="linenos">3330</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-3331"><a href="#Select-3331"><span class="linenos">3331</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Create</span><span class="p">:</span>
-</span><span id="Select-3332"><a href="#Select-3332"><span class="linenos">3332</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-3333"><a href="#Select-3333"><span class="linenos">3333</span></a><span class="sd"> Convert this expression to a CREATE TABLE AS statement.</span>
+</span><span id="Select-3263"><a href="#Select-3263"><span class="linenos">3263</span></a><span class="sd"> Args:</span>
+</span><span id="Select-3264"><a href="#Select-3264"><span class="linenos">3264</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Select-3265"><a href="#Select-3265"><span class="linenos">3265</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select-3266"><a href="#Select-3266"><span class="linenos">3266</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
+</span><span id="Select-3267"><a href="#Select-3267"><span class="linenos">3267</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
+</span><span id="Select-3268"><a href="#Select-3268"><span class="linenos">3268</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="Select-3269"><a href="#Select-3269"><span class="linenos">3269</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Select-3270"><a href="#Select-3270"><span class="linenos">3270</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-3271"><a href="#Select-3271"><span class="linenos">3271</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select-3272"><a href="#Select-3272"><span class="linenos">3272</span></a>
+</span><span id="Select-3273"><a href="#Select-3273"><span class="linenos">3273</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-3274"><a href="#Select-3274"><span class="linenos">3274</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="Select-3275"><a href="#Select-3275"><span class="linenos">3275</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-3276"><a href="#Select-3276"><span class="linenos">3276</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="Select-3277"><a href="#Select-3277"><span class="linenos">3277</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select-3278"><a href="#Select-3278"><span class="linenos">3278</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-3279"><a href="#Select-3279"><span class="linenos">3279</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-3280"><a href="#Select-3280"><span class="linenos">3280</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select-3281"><a href="#Select-3281"><span class="linenos">3281</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Having</span><span class="p">,</span>
+</span><span id="Select-3282"><a href="#Select-3282"><span class="linenos">3282</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select-3283"><a href="#Select-3283"><span class="linenos">3283</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select-3284"><a href="#Select-3284"><span class="linenos">3284</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-3285"><a href="#Select-3285"><span class="linenos">3285</span></a> <span class="p">)</span>
+</span><span id="Select-3286"><a href="#Select-3286"><span class="linenos">3286</span></a>
+</span><span id="Select-3287"><a href="#Select-3287"><span class="linenos">3287</span></a> <span class="k">def</span> <span class="nf">window</span><span class="p">(</span>
+</span><span id="Select-3288"><a href="#Select-3288"><span class="linenos">3288</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-3289"><a href="#Select-3289"><span class="linenos">3289</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Select-3290"><a href="#Select-3290"><span class="linenos">3290</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-3291"><a href="#Select-3291"><span class="linenos">3291</span></a> <span class="n">dialect</span><span 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-3292"><a href="#Select-3292"><span class="linenos">3292</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-3293"><a href="#Select-3293"><span class="linenos">3293</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-3294"><a href="#Select-3294"><span class="linenos">3294</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select-3295"><a href="#Select-3295"><span class="linenos">3295</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="Select-3296"><a href="#Select-3296"><span class="linenos">3296</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select-3297"><a href="#Select-3297"><span class="linenos">3297</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-3298"><a href="#Select-3298"><span class="linenos">3298</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-3299"><a href="#Select-3299"><span class="linenos">3299</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select-3300"><a href="#Select-3300"><span class="linenos">3300</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Window</span><span class="p">,</span>
+</span><span id="Select-3301"><a href="#Select-3301"><span class="linenos">3301</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select-3302"><a href="#Select-3302"><span class="linenos">3302</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select-3303"><a href="#Select-3303"><span class="linenos">3303</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-3304"><a href="#Select-3304"><span class="linenos">3304</span></a> <span class="p">)</span>
+</span><span id="Select-3305"><a href="#Select-3305"><span class="linenos">3305</span></a>
+</span><span id="Select-3306"><a href="#Select-3306"><span class="linenos">3306</span></a> <span class="k">def</span> <span class="nf">qualify</span><span class="p">(</span>
+</span><span id="Select-3307"><a href="#Select-3307"><span class="linenos">3307</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-3308"><a href="#Select-3308"><span class="linenos">3308</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Select-3309"><a href="#Select-3309"><span class="linenos">3309</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-3310"><a href="#Select-3310"><span class="linenos">3310</span></a> <span class="n">dialect</span><span 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-3311"><a href="#Select-3311"><span class="linenos">3311</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-3312"><a href="#Select-3312"><span class="linenos">3312</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-3313"><a href="#Select-3313"><span class="linenos">3313</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select-3314"><a href="#Select-3314"><span class="linenos">3314</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="Select-3315"><a href="#Select-3315"><span class="linenos">3315</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select-3316"><a href="#Select-3316"><span class="linenos">3316</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-3317"><a href="#Select-3317"><span class="linenos">3317</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-3318"><a href="#Select-3318"><span class="linenos">3318</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select-3319"><a href="#Select-3319"><span class="linenos">3319</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Qualify</span><span class="p">,</span>
+</span><span id="Select-3320"><a href="#Select-3320"><span class="linenos">3320</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select-3321"><a href="#Select-3321"><span class="linenos">3321</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select-3322"><a href="#Select-3322"><span class="linenos">3322</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-3323"><a href="#Select-3323"><span class="linenos">3323</span></a> <span class="p">)</span>
+</span><span id="Select-3324"><a href="#Select-3324"><span class="linenos">3324</span></a>
+</span><span id="Select-3325"><a href="#Select-3325"><span class="linenos">3325</span></a> <span class="k">def</span> <span class="nf">distinct</span><span class="p">(</span>
+</span><span id="Select-3326"><a href="#Select-3326"><span class="linenos">3326</span></a> <span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">ons</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="Select-3327"><a href="#Select-3327"><span class="linenos">3327</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select-3328"><a href="#Select-3328"><span class="linenos">3328</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-3329"><a href="#Select-3329"><span class="linenos">3329</span></a><span class="sd"> Set the OFFSET expression.</span>
+</span><span id="Select-3330"><a href="#Select-3330"><span class="linenos">3330</span></a>
+</span><span id="Select-3331"><a href="#Select-3331"><span class="linenos">3331</span></a><span class="sd"> Example:</span>
+</span><span id="Select-3332"><a href="#Select-3332"><span class="linenos">3332</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).distinct().sql()</span>
+</span><span id="Select-3333"><a href="#Select-3333"><span class="linenos">3333</span></a><span class="sd"> &#39;SELECT DISTINCT x FROM tbl&#39;</span>
</span><span id="Select-3334"><a href="#Select-3334"><span class="linenos">3334</span></a>
-</span><span id="Select-3335"><a href="#Select-3335"><span class="linenos">3335</span></a><span class="sd"> Example:</span>
-</span><span id="Select-3336"><a href="#Select-3336"><span class="linenos">3336</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-3337"><a href="#Select-3337"><span class="linenos">3337</span></a><span class="sd"> &#39;CREATE TABLE x AS SELECT * FROM tbl&#39;</span>
-</span><span id="Select-3338"><a href="#Select-3338"><span class="linenos">3338</span></a>
-</span><span id="Select-3339"><a href="#Select-3339"><span class="linenos">3339</span></a><span class="sd"> Args:</span>
-</span><span id="Select-3340"><a href="#Select-3340"><span class="linenos">3340</span></a><span class="sd"> table: the SQL code string to parse as the table name.</span>
-</span><span id="Select-3341"><a href="#Select-3341"><span class="linenos">3341</span></a><span class="sd"> If another `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select-3342"><a href="#Select-3342"><span class="linenos">3342</span></a><span class="sd"> properties: an optional mapping of table properties</span>
-</span><span id="Select-3343"><a href="#Select-3343"><span class="linenos">3343</span></a><span class="sd"> dialect: the dialect used to parse the input table.</span>
-</span><span id="Select-3344"><a href="#Select-3344"><span class="linenos">3344</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-3345"><a href="#Select-3345"><span class="linenos">3345</span></a><span class="sd"> opts: other options to use to parse the input table.</span>
-</span><span id="Select-3346"><a href="#Select-3346"><span class="linenos">3346</span></a>
-</span><span id="Select-3347"><a href="#Select-3347"><span class="linenos">3347</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-3348"><a href="#Select-3348"><span class="linenos">3348</span></a><span class="sd"> The new Create expression.</span>
-</span><span id="Select-3349"><a href="#Select-3349"><span class="linenos">3349</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-3350"><a href="#Select-3350"><span class="linenos">3350</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-3351"><a href="#Select-3351"><span class="linenos">3351</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-3352"><a href="#Select-3352"><span class="linenos">3352</span></a> <span class="n">table</span><span class="p">,</span>
-</span><span id="Select-3353"><a href="#Select-3353"><span class="linenos">3353</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span>
-</span><span id="Select-3354"><a href="#Select-3354"><span class="linenos">3354</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select-3355"><a href="#Select-3355"><span class="linenos">3355</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-3356"><a href="#Select-3356"><span class="linenos">3356</span></a> <span class="p">)</span>
-</span><span id="Select-3357"><a href="#Select-3357"><span class="linenos">3357</span></a> <span class="n">properties_expression</span> <span class="o">=</span> <span class="kc">None</span>
-</span><span id="Select-3358"><a href="#Select-3358"><span class="linenos">3358</span></a> <span class="k">if</span> <span class="n">properties</span><span class="p">:</span>
-</span><span id="Select-3359"><a href="#Select-3359"><span class="linenos">3359</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-3360"><a href="#Select-3360"><span class="linenos">3360</span></a>
-</span><span id="Select-3361"><a href="#Select-3361"><span class="linenos">3361</span></a> <span class="k">return</span> <span class="n">Create</span><span class="p">(</span>
-</span><span id="Select-3362"><a href="#Select-3362"><span class="linenos">3362</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-3363"><a href="#Select-3363"><span class="linenos">3363</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-3364"><a href="#Select-3364"><span class="linenos">3364</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span>
-</span><span id="Select-3365"><a href="#Select-3365"><span class="linenos">3365</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-3366"><a href="#Select-3366"><span class="linenos">3366</span></a> <span class="p">)</span>
-</span><span id="Select-3367"><a href="#Select-3367"><span class="linenos">3367</span></a>
-</span><span id="Select-3368"><a href="#Select-3368"><span class="linenos">3368</span></a> <span class="k">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-3369"><a href="#Select-3369"><span class="linenos">3369</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-3370"><a href="#Select-3370"><span class="linenos">3370</span></a><span class="sd"> Set the locking read mode for this expression.</span>
-</span><span id="Select-3371"><a href="#Select-3371"><span class="linenos">3371</span></a>
-</span><span id="Select-3372"><a href="#Select-3372"><span class="linenos">3372</span></a><span class="sd"> Examples:</span>
-</span><span id="Select-3373"><a href="#Select-3373"><span class="linenos">3373</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-3374"><a href="#Select-3374"><span class="linenos">3374</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR UPDATE&quot;</span>
-</span><span id="Select-3375"><a href="#Select-3375"><span class="linenos">3375</span></a>
-</span><span id="Select-3376"><a href="#Select-3376"><span class="linenos">3376</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-3377"><a href="#Select-3377"><span class="linenos">3377</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR SHARE&quot;</span>
-</span><span id="Select-3378"><a href="#Select-3378"><span class="linenos">3378</span></a>
-</span><span id="Select-3379"><a href="#Select-3379"><span class="linenos">3379</span></a><span class="sd"> Args:</span>
-</span><span id="Select-3380"><a href="#Select-3380"><span class="linenos">3380</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-3381"><a href="#Select-3381"><span class="linenos">3381</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-3382"><a href="#Select-3382"><span class="linenos">3382</span></a>
-</span><span id="Select-3383"><a href="#Select-3383"><span class="linenos">3383</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-3384"><a href="#Select-3384"><span class="linenos">3384</span></a><span class="sd"> The modified expression.</span>
-</span><span id="Select-3385"><a href="#Select-3385"><span class="linenos">3385</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-3386"><a href="#Select-3386"><span class="linenos">3386</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-3387"><a href="#Select-3387"><span class="linenos">3387</span></a> <span class="n">inst</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;locks&quot;</span><span class="p">,</span> <span class="p">[</span><span class="n">Lock</span><span class="p">(</span><span class="n">update</span><span class="o">=</span><span class="n">update</span><span class="p">)])</span>
-</span><span id="Select-3388"><a href="#Select-3388"><span class="linenos">3388</span></a>
-</span><span id="Select-3389"><a href="#Select-3389"><span class="linenos">3389</span></a> <span class="k">return</span> <span class="n">inst</span>
-</span><span id="Select-3390"><a href="#Select-3390"><span class="linenos">3390</span></a>
-</span><span id="Select-3391"><a href="#Select-3391"><span class="linenos">3391</span></a> <span class="k">def</span> <span class="nf">hint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">hints</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select-3392"><a href="#Select-3392"><span class="linenos">3392</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-3393"><a href="#Select-3393"><span class="linenos">3393</span></a><span class="sd"> Set hints for this expression.</span>
-</span><span id="Select-3394"><a href="#Select-3394"><span class="linenos">3394</span></a>
-</span><span id="Select-3395"><a href="#Select-3395"><span class="linenos">3395</span></a><span class="sd"> Examples:</span>
-</span><span id="Select-3396"><a href="#Select-3396"><span class="linenos">3396</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).hint(&quot;BROADCAST(y)&quot;).sql(dialect=&quot;spark&quot;)</span>
-</span><span id="Select-3397"><a href="#Select-3397"><span class="linenos">3397</span></a><span class="sd"> &#39;SELECT /*+ BROADCAST(y) */ x FROM tbl&#39;</span>
-</span><span id="Select-3398"><a href="#Select-3398"><span class="linenos">3398</span></a>
-</span><span id="Select-3399"><a href="#Select-3399"><span class="linenos">3399</span></a><span class="sd"> Args:</span>
-</span><span id="Select-3400"><a href="#Select-3400"><span class="linenos">3400</span></a><span class="sd"> hints: The SQL code strings to parse as the hints.</span>
-</span><span id="Select-3401"><a href="#Select-3401"><span class="linenos">3401</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select-3402"><a href="#Select-3402"><span class="linenos">3402</span></a><span class="sd"> dialect: The dialect used to parse the hints.</span>
-</span><span id="Select-3403"><a href="#Select-3403"><span class="linenos">3403</span></a><span class="sd"> copy: If `False`, modify this expression instance in-place.</span>
-</span><span id="Select-3404"><a href="#Select-3404"><span class="linenos">3404</span></a>
-</span><span id="Select-3405"><a href="#Select-3405"><span class="linenos">3405</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-3406"><a href="#Select-3406"><span class="linenos">3406</span></a><span class="sd"> The modified expression.</span>
-</span><span id="Select-3407"><a href="#Select-3407"><span class="linenos">3407</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-3408"><a href="#Select-3408"><span class="linenos">3408</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-3409"><a href="#Select-3409"><span class="linenos">3409</span></a> <span class="n">inst</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
-</span><span id="Select-3410"><a href="#Select-3410"><span class="linenos">3410</span></a> <span class="s2">&quot;hint&quot;</span><span class="p">,</span> <span class="n">Hint</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">h</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span> <span class="k">for</span> <span class="n">h</span> <span class="ow">in</span> <span class="n">hints</span><span class="p">])</span>
-</span><span id="Select-3411"><a href="#Select-3411"><span class="linenos">3411</span></a> <span class="p">)</span>
+</span><span id="Select-3335"><a href="#Select-3335"><span class="linenos">3335</span></a><span class="sd"> Args:</span>
+</span><span id="Select-3336"><a href="#Select-3336"><span class="linenos">3336</span></a><span class="sd"> ons: the expressions to distinct on</span>
+</span><span id="Select-3337"><a href="#Select-3337"><span class="linenos">3337</span></a><span class="sd"> distinct: whether the Select should be distinct</span>
+</span><span id="Select-3338"><a href="#Select-3338"><span class="linenos">3338</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-3339"><a href="#Select-3339"><span class="linenos">3339</span></a>
+</span><span id="Select-3340"><a href="#Select-3340"><span class="linenos">3340</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-3341"><a href="#Select-3341"><span class="linenos">3341</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="Select-3342"><a href="#Select-3342"><span class="linenos">3342</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-3343"><a href="#Select-3343"><span class="linenos">3343</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-3344"><a href="#Select-3344"><span class="linenos">3344</span></a> <span class="n">on</span> <span class="o">=</span> <span class="n">Tuple</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">on</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">on</span> <span class="ow">in</span> <span class="n">ons</span> <span class="k">if</span> <span class="n">on</span><span class="p">])</span> <span class="k">if</span> <span class="n">ons</span> <span class="k">else</span> <span class="kc">None</span>
+</span><span id="Select-3345"><a href="#Select-3345"><span class="linenos">3345</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;distinct&quot;</span><span class="p">,</span> <span class="n">Distinct</span><span class="p">(</span><span class="n">on</span><span class="o">=</span><span class="n">on</span><span class="p">)</span> <span class="k">if</span> <span class="n">distinct</span> <span class="k">else</span> <span class="kc">None</span><span class="p">)</span>
+</span><span id="Select-3346"><a href="#Select-3346"><span class="linenos">3346</span></a> <span class="k">return</span> <span class="n">instance</span>
+</span><span id="Select-3347"><a href="#Select-3347"><span class="linenos">3347</span></a>
+</span><span id="Select-3348"><a href="#Select-3348"><span class="linenos">3348</span></a> <span class="k">def</span> <span class="nf">ctas</span><span class="p">(</span>
+</span><span id="Select-3349"><a href="#Select-3349"><span class="linenos">3349</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-3350"><a href="#Select-3350"><span class="linenos">3350</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="Select-3351"><a href="#Select-3351"><span class="linenos">3351</span></a> <span class="n">properties</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Select-3352"><a href="#Select-3352"><span class="linenos">3352</span></a> <span class="n">dialect</span><span 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-3353"><a href="#Select-3353"><span class="linenos">3353</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-3354"><a href="#Select-3354"><span class="linenos">3354</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-3355"><a href="#Select-3355"><span class="linenos">3355</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Create</span><span class="p">:</span>
+</span><span id="Select-3356"><a href="#Select-3356"><span class="linenos">3356</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-3357"><a href="#Select-3357"><span class="linenos">3357</span></a><span class="sd"> Convert this expression to a CREATE TABLE AS statement.</span>
+</span><span id="Select-3358"><a href="#Select-3358"><span class="linenos">3358</span></a>
+</span><span id="Select-3359"><a href="#Select-3359"><span class="linenos">3359</span></a><span class="sd"> Example:</span>
+</span><span id="Select-3360"><a href="#Select-3360"><span class="linenos">3360</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;*&quot;).from_(&quot;tbl&quot;).ctas(&quot;x&quot;).sql()</span>
+</span><span id="Select-3361"><a href="#Select-3361"><span class="linenos">3361</span></a><span class="sd"> &#39;CREATE TABLE x AS SELECT * FROM tbl&#39;</span>
+</span><span id="Select-3362"><a href="#Select-3362"><span class="linenos">3362</span></a>
+</span><span id="Select-3363"><a href="#Select-3363"><span class="linenos">3363</span></a><span class="sd"> Args:</span>
+</span><span id="Select-3364"><a href="#Select-3364"><span class="linenos">3364</span></a><span class="sd"> table: the SQL code string to parse as the table name.</span>
+</span><span id="Select-3365"><a href="#Select-3365"><span class="linenos">3365</span></a><span class="sd"> If another `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select-3366"><a href="#Select-3366"><span class="linenos">3366</span></a><span class="sd"> properties: an optional mapping of table properties</span>
+</span><span id="Select-3367"><a href="#Select-3367"><span class="linenos">3367</span></a><span class="sd"> dialect: the dialect used to parse the input table.</span>
+</span><span id="Select-3368"><a href="#Select-3368"><span class="linenos">3368</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-3369"><a href="#Select-3369"><span class="linenos">3369</span></a><span class="sd"> opts: other options to use to parse the input table.</span>
+</span><span id="Select-3370"><a href="#Select-3370"><span class="linenos">3370</span></a>
+</span><span id="Select-3371"><a href="#Select-3371"><span class="linenos">3371</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-3372"><a href="#Select-3372"><span class="linenos">3372</span></a><span class="sd"> The new Create expression.</span>
+</span><span id="Select-3373"><a href="#Select-3373"><span class="linenos">3373</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-3374"><a href="#Select-3374"><span class="linenos">3374</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-3375"><a href="#Select-3375"><span class="linenos">3375</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-3376"><a href="#Select-3376"><span class="linenos">3376</span></a> <span class="n">table</span><span class="p">,</span>
+</span><span id="Select-3377"><a href="#Select-3377"><span class="linenos">3377</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span>
+</span><span id="Select-3378"><a href="#Select-3378"><span class="linenos">3378</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select-3379"><a href="#Select-3379"><span class="linenos">3379</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-3380"><a href="#Select-3380"><span class="linenos">3380</span></a> <span class="p">)</span>
+</span><span id="Select-3381"><a href="#Select-3381"><span class="linenos">3381</span></a> <span class="n">properties_expression</span> <span class="o">=</span> <span class="kc">None</span>
+</span><span id="Select-3382"><a href="#Select-3382"><span class="linenos">3382</span></a> <span class="k">if</span> <span class="n">properties</span><span class="p">:</span>
+</span><span id="Select-3383"><a href="#Select-3383"><span class="linenos">3383</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-3384"><a href="#Select-3384"><span class="linenos">3384</span></a>
+</span><span id="Select-3385"><a href="#Select-3385"><span class="linenos">3385</span></a> <span class="k">return</span> <span class="n">Create</span><span class="p">(</span>
+</span><span id="Select-3386"><a href="#Select-3386"><span class="linenos">3386</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-3387"><a href="#Select-3387"><span class="linenos">3387</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-3388"><a href="#Select-3388"><span class="linenos">3388</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span>
+</span><span id="Select-3389"><a href="#Select-3389"><span class="linenos">3389</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-3390"><a href="#Select-3390"><span class="linenos">3390</span></a> <span class="p">)</span>
+</span><span id="Select-3391"><a href="#Select-3391"><span class="linenos">3391</span></a>
+</span><span id="Select-3392"><a href="#Select-3392"><span class="linenos">3392</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-3393"><a href="#Select-3393"><span class="linenos">3393</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-3394"><a href="#Select-3394"><span class="linenos">3394</span></a><span class="sd"> Set the locking read mode for this expression.</span>
+</span><span id="Select-3395"><a href="#Select-3395"><span class="linenos">3395</span></a>
+</span><span id="Select-3396"><a href="#Select-3396"><span class="linenos">3396</span></a><span class="sd"> Examples:</span>
+</span><span id="Select-3397"><a href="#Select-3397"><span class="linenos">3397</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-3398"><a href="#Select-3398"><span class="linenos">3398</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR UPDATE&quot;</span>
+</span><span id="Select-3399"><a href="#Select-3399"><span class="linenos">3399</span></a>
+</span><span id="Select-3400"><a href="#Select-3400"><span class="linenos">3400</span></a><span class="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-3401"><a href="#Select-3401"><span class="linenos">3401</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR SHARE&quot;</span>
+</span><span id="Select-3402"><a href="#Select-3402"><span class="linenos">3402</span></a>
+</span><span id="Select-3403"><a href="#Select-3403"><span class="linenos">3403</span></a><span class="sd"> Args:</span>
+</span><span id="Select-3404"><a href="#Select-3404"><span class="linenos">3404</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-3405"><a href="#Select-3405"><span class="linenos">3405</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-3406"><a href="#Select-3406"><span class="linenos">3406</span></a>
+</span><span id="Select-3407"><a href="#Select-3407"><span class="linenos">3407</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-3408"><a href="#Select-3408"><span class="linenos">3408</span></a><span class="sd"> The modified expression.</span>
+</span><span id="Select-3409"><a href="#Select-3409"><span class="linenos">3409</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-3410"><a href="#Select-3410"><span class="linenos">3410</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-3411"><a href="#Select-3411"><span class="linenos">3411</span></a> <span class="n">inst</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;locks&quot;</span><span class="p">,</span> <span class="p">[</span><span class="n">Lock</span><span class="p">(</span><span class="n">update</span><span class="o">=</span><span class="n">update</span><span class="p">)])</span>
</span><span id="Select-3412"><a href="#Select-3412"><span class="linenos">3412</span></a>
</span><span id="Select-3413"><a href="#Select-3413"><span class="linenos">3413</span></a> <span class="k">return</span> <span class="n">inst</span>
</span><span id="Select-3414"><a href="#Select-3414"><span class="linenos">3414</span></a>
-</span><span id="Select-3415"><a href="#Select-3415"><span class="linenos">3415</span></a> <span class="nd">@property</span>
-</span><span id="Select-3416"><a href="#Select-3416"><span class="linenos">3416</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-3417"><a href="#Select-3417"><span class="linenos">3417</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-3415"><a href="#Select-3415"><span class="linenos">3415</span></a> <span class="k">def</span> <span class="nf">hint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">hints</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select-3416"><a href="#Select-3416"><span class="linenos">3416</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-3417"><a href="#Select-3417"><span class="linenos">3417</span></a><span class="sd"> Set hints for this expression.</span>
</span><span id="Select-3418"><a href="#Select-3418"><span class="linenos">3418</span></a>
-</span><span id="Select-3419"><a href="#Select-3419"><span class="linenos">3419</span></a> <span class="nd">@property</span>
-</span><span id="Select-3420"><a href="#Select-3420"><span class="linenos">3420</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-3421"><a href="#Select-3421"><span class="linenos">3421</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-3419"><a href="#Select-3419"><span class="linenos">3419</span></a><span class="sd"> Examples:</span>
+</span><span id="Select-3420"><a href="#Select-3420"><span class="linenos">3420</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).hint(&quot;BROADCAST(y)&quot;).sql(dialect=&quot;spark&quot;)</span>
+</span><span id="Select-3421"><a href="#Select-3421"><span class="linenos">3421</span></a><span class="sd"> &#39;SELECT /*+ BROADCAST(y) */ x FROM tbl&#39;</span>
</span><span id="Select-3422"><a href="#Select-3422"><span class="linenos">3422</span></a>
-</span><span id="Select-3423"><a href="#Select-3423"><span class="linenos">3423</span></a> <span class="nd">@property</span>
-</span><span id="Select-3424"><a href="#Select-3424"><span class="linenos">3424</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-3425"><a href="#Select-3425"><span class="linenos">3425</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-3423"><a href="#Select-3423"><span class="linenos">3423</span></a><span class="sd"> Args:</span>
+</span><span id="Select-3424"><a href="#Select-3424"><span class="linenos">3424</span></a><span class="sd"> hints: The SQL code strings to parse as the hints.</span>
+</span><span id="Select-3425"><a href="#Select-3425"><span class="linenos">3425</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select-3426"><a href="#Select-3426"><span class="linenos">3426</span></a><span class="sd"> dialect: The dialect used to parse the hints.</span>
+</span><span id="Select-3427"><a href="#Select-3427"><span class="linenos">3427</span></a><span class="sd"> copy: If `False`, modify this expression instance in-place.</span>
+</span><span id="Select-3428"><a href="#Select-3428"><span class="linenos">3428</span></a>
+</span><span id="Select-3429"><a href="#Select-3429"><span class="linenos">3429</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-3430"><a href="#Select-3430"><span class="linenos">3430</span></a><span class="sd"> The modified expression.</span>
+</span><span id="Select-3431"><a href="#Select-3431"><span class="linenos">3431</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-3432"><a href="#Select-3432"><span class="linenos">3432</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-3433"><a href="#Select-3433"><span class="linenos">3433</span></a> <span class="n">inst</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
+</span><span id="Select-3434"><a href="#Select-3434"><span class="linenos">3434</span></a> <span class="s2">&quot;hint&quot;</span><span class="p">,</span> <span class="n">Hint</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">h</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span> <span class="k">for</span> <span class="n">h</span> <span class="ow">in</span> <span class="n">hints</span><span class="p">])</span>
+</span><span id="Select-3435"><a href="#Select-3435"><span class="linenos">3435</span></a> <span class="p">)</span>
+</span><span id="Select-3436"><a href="#Select-3436"><span class="linenos">3436</span></a>
+</span><span id="Select-3437"><a href="#Select-3437"><span class="linenos">3437</span></a> <span class="k">return</span> <span class="n">inst</span>
+</span><span id="Select-3438"><a href="#Select-3438"><span class="linenos">3438</span></a>
+</span><span id="Select-3439"><a href="#Select-3439"><span class="linenos">3439</span></a> <span class="nd">@property</span>
+</span><span id="Select-3440"><a href="#Select-3440"><span class="linenos">3440</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-3441"><a href="#Select-3441"><span class="linenos">3441</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-3442"><a href="#Select-3442"><span class="linenos">3442</span></a>
+</span><span id="Select-3443"><a href="#Select-3443"><span class="linenos">3443</span></a> <span class="nd">@property</span>
+</span><span id="Select-3444"><a href="#Select-3444"><span class="linenos">3444</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-3445"><a href="#Select-3445"><span class="linenos">3445</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-3446"><a href="#Select-3446"><span class="linenos">3446</span></a>
+</span><span id="Select-3447"><a href="#Select-3447"><span class="linenos">3447</span></a> <span class="nd">@property</span>
+</span><span id="Select-3448"><a href="#Select-3448"><span class="linenos">3448</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-3449"><a href="#Select-3449"><span class="linenos">3449</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span>
</span></pre></div>
@@ -41101,37 +43132,37 @@ kind is ("AS OF", "BETWEEN")</p>
</div>
<a class="headerlink" href="#Select.from_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select.from_-2747"><a href="#Select.from_-2747"><span class="linenos">2747</span></a> <span class="k">def</span> <span class="nf">from_</span><span class="p">(</span>
-</span><span id="Select.from_-2748"><a href="#Select.from_-2748"><span class="linenos">2748</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="Select.from_-2749"><a href="#Select.from_-2749"><span class="linenos">2749</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select.from_-2750"><a href="#Select.from_-2750"><span class="linenos">2750</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.from_-2751"><a href="#Select.from_-2751"><span class="linenos">2751</span></a><span class="sd"> Set the FROM expression.</span>
-</span><span id="Select.from_-2752"><a href="#Select.from_-2752"><span class="linenos">2752</span></a>
-</span><span id="Select.from_-2753"><a href="#Select.from_-2753"><span class="linenos">2753</span></a><span class="sd"> Example:</span>
-</span><span id="Select.from_-2754"><a href="#Select.from_-2754"><span class="linenos">2754</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).sql()</span>
-</span><span id="Select.from_-2755"><a href="#Select.from_-2755"><span class="linenos">2755</span></a><span class="sd"> &#39;SELECT x FROM tbl&#39;</span>
-</span><span id="Select.from_-2756"><a href="#Select.from_-2756"><span class="linenos">2756</span></a>
-</span><span id="Select.from_-2757"><a href="#Select.from_-2757"><span class="linenos">2757</span></a><span class="sd"> Args:</span>
-</span><span id="Select.from_-2758"><a href="#Select.from_-2758"><span class="linenos">2758</span></a><span class="sd"> expression : the SQL code strings to parse.</span>
-</span><span id="Select.from_-2759"><a href="#Select.from_-2759"><span class="linenos">2759</span></a><span class="sd"> If a `From` instance is passed, this is used as-is.</span>
-</span><span id="Select.from_-2760"><a href="#Select.from_-2760"><span class="linenos">2760</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `From`.</span>
-</span><span id="Select.from_-2761"><a href="#Select.from_-2761"><span class="linenos">2761</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="Select.from_-2762"><a href="#Select.from_-2762"><span class="linenos">2762</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.from_-2763"><a href="#Select.from_-2763"><span class="linenos">2763</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Select.from_-2764"><a href="#Select.from_-2764"><span class="linenos">2764</span></a>
-</span><span id="Select.from_-2765"><a href="#Select.from_-2765"><span class="linenos">2765</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.from_-2766"><a href="#Select.from_-2766"><span class="linenos">2766</span></a><span class="sd"> The modified Select expression.</span>
-</span><span id="Select.from_-2767"><a href="#Select.from_-2767"><span class="linenos">2767</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.from_-2768"><a href="#Select.from_-2768"><span class="linenos">2768</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
-</span><span id="Select.from_-2769"><a href="#Select.from_-2769"><span class="linenos">2769</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
-</span><span id="Select.from_-2770"><a href="#Select.from_-2770"><span class="linenos">2770</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_-2771"><a href="#Select.from_-2771"><span class="linenos">2771</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_-2772"><a href="#Select.from_-2772"><span class="linenos">2772</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_-2773"><a href="#Select.from_-2773"><span class="linenos">2773</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_-2774"><a href="#Select.from_-2774"><span class="linenos">2774</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_-2775"><a href="#Select.from_-2775"><span class="linenos">2775</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_-2776"><a href="#Select.from_-2776"><span class="linenos">2776</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.from_-2777"><a href="#Select.from_-2777"><span class="linenos">2777</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.from_-2771"><a href="#Select.from_-2771"><span class="linenos">2771</span></a> <span class="k">def</span> <span class="nf">from_</span><span class="p">(</span>
+</span><span id="Select.from_-2772"><a href="#Select.from_-2772"><span class="linenos">2772</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="Select.from_-2773"><a href="#Select.from_-2773"><span class="linenos">2773</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select.from_-2774"><a href="#Select.from_-2774"><span class="linenos">2774</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.from_-2775"><a href="#Select.from_-2775"><span class="linenos">2775</span></a><span class="sd"> Set the FROM expression.</span>
+</span><span id="Select.from_-2776"><a href="#Select.from_-2776"><span class="linenos">2776</span></a>
+</span><span id="Select.from_-2777"><a href="#Select.from_-2777"><span class="linenos">2777</span></a><span class="sd"> Example:</span>
+</span><span id="Select.from_-2778"><a href="#Select.from_-2778"><span class="linenos">2778</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).sql()</span>
+</span><span id="Select.from_-2779"><a href="#Select.from_-2779"><span class="linenos">2779</span></a><span class="sd"> &#39;SELECT x FROM tbl&#39;</span>
+</span><span id="Select.from_-2780"><a href="#Select.from_-2780"><span class="linenos">2780</span></a>
+</span><span id="Select.from_-2781"><a href="#Select.from_-2781"><span class="linenos">2781</span></a><span class="sd"> Args:</span>
+</span><span id="Select.from_-2782"><a href="#Select.from_-2782"><span class="linenos">2782</span></a><span class="sd"> expression : the SQL code strings to parse.</span>
+</span><span id="Select.from_-2783"><a href="#Select.from_-2783"><span class="linenos">2783</span></a><span class="sd"> If a `From` instance is passed, this is used as-is.</span>
+</span><span id="Select.from_-2784"><a href="#Select.from_-2784"><span class="linenos">2784</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `From`.</span>
+</span><span id="Select.from_-2785"><a href="#Select.from_-2785"><span class="linenos">2785</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Select.from_-2786"><a href="#Select.from_-2786"><span class="linenos">2786</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.from_-2787"><a href="#Select.from_-2787"><span class="linenos">2787</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select.from_-2788"><a href="#Select.from_-2788"><span class="linenos">2788</span></a>
+</span><span id="Select.from_-2789"><a href="#Select.from_-2789"><span class="linenos">2789</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.from_-2790"><a href="#Select.from_-2790"><span class="linenos">2790</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="Select.from_-2791"><a href="#Select.from_-2791"><span class="linenos">2791</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.from_-2792"><a href="#Select.from_-2792"><span class="linenos">2792</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
+</span><span id="Select.from_-2793"><a href="#Select.from_-2793"><span class="linenos">2793</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
+</span><span id="Select.from_-2794"><a href="#Select.from_-2794"><span class="linenos">2794</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_-2795"><a href="#Select.from_-2795"><span class="linenos">2795</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_-2796"><a href="#Select.from_-2796"><span class="linenos">2796</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_-2797"><a href="#Select.from_-2797"><span class="linenos">2797</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_-2798"><a href="#Select.from_-2798"><span class="linenos">2798</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_-2799"><a href="#Select.from_-2799"><span class="linenos">2799</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_-2800"><a href="#Select.from_-2800"><span class="linenos">2800</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.from_-2801"><a href="#Select.from_-2801"><span class="linenos">2801</span></a> <span class="p">)</span>
</span></pre></div>
@@ -41178,49 +43209,49 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Select.group_by"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select.group_by-2779"><a href="#Select.group_by-2779"><span class="linenos">2779</span></a> <span class="k">def</span> <span class="nf">group_by</span><span class="p">(</span>
-</span><span id="Select.group_by-2780"><a href="#Select.group_by-2780"><span class="linenos">2780</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Select.group_by-2781"><a href="#Select.group_by-2781"><span class="linenos">2781</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Select.group_by-2782"><a href="#Select.group_by-2782"><span class="linenos">2782</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select.group_by-2783"><a href="#Select.group_by-2783"><span class="linenos">2783</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Select.group_by-2784"><a href="#Select.group_by-2784"><span class="linenos">2784</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select.group_by-2785"><a href="#Select.group_by-2785"><span class="linenos">2785</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.group_by-2786"><a href="#Select.group_by-2786"><span class="linenos">2786</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select.group_by-2787"><a href="#Select.group_by-2787"><span class="linenos">2787</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.group_by-2788"><a href="#Select.group_by-2788"><span class="linenos">2788</span></a><span class="sd"> Set the GROUP BY expression.</span>
-</span><span id="Select.group_by-2789"><a href="#Select.group_by-2789"><span class="linenos">2789</span></a>
-</span><span id="Select.group_by-2790"><a href="#Select.group_by-2790"><span class="linenos">2790</span></a><span class="sd"> Example:</span>
-</span><span id="Select.group_by-2791"><a href="#Select.group_by-2791"><span class="linenos">2791</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-2792"><a href="#Select.group_by-2792"><span class="linenos">2792</span></a><span class="sd"> &#39;SELECT x, COUNT(1) FROM tbl GROUP BY x&#39;</span>
-</span><span id="Select.group_by-2793"><a href="#Select.group_by-2793"><span class="linenos">2793</span></a>
-</span><span id="Select.group_by-2794"><a href="#Select.group_by-2794"><span class="linenos">2794</span></a><span class="sd"> Args:</span>
-</span><span id="Select.group_by-2795"><a href="#Select.group_by-2795"><span class="linenos">2795</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Select.group_by-2796"><a href="#Select.group_by-2796"><span class="linenos">2796</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
-</span><span id="Select.group_by-2797"><a href="#Select.group_by-2797"><span class="linenos">2797</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-2798"><a href="#Select.group_by-2798"><span class="linenos">2798</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-2799"><a href="#Select.group_by-2799"><span class="linenos">2799</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="Select.group_by-2800"><a href="#Select.group_by-2800"><span class="linenos">2800</span></a><span class="sd"> Otherwise, this flattens all the `Group` expression into a single expression.</span>
-</span><span id="Select.group_by-2801"><a href="#Select.group_by-2801"><span class="linenos">2801</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="Select.group_by-2802"><a href="#Select.group_by-2802"><span class="linenos">2802</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.group_by-2803"><a href="#Select.group_by-2803"><span class="linenos">2803</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Select.group_by-2804"><a href="#Select.group_by-2804"><span class="linenos">2804</span></a>
-</span><span id="Select.group_by-2805"><a href="#Select.group_by-2805"><span class="linenos">2805</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.group_by-2806"><a href="#Select.group_by-2806"><span class="linenos">2806</span></a><span class="sd"> The modified Select expression.</span>
-</span><span id="Select.group_by-2807"><a href="#Select.group_by-2807"><span class="linenos">2807</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.group_by-2808"><a href="#Select.group_by-2808"><span class="linenos">2808</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-2809"><a href="#Select.group_by-2809"><span class="linenos">2809</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-2810"><a href="#Select.group_by-2810"><span class="linenos">2810</span></a>
-</span><span id="Select.group_by-2811"><a href="#Select.group_by-2811"><span class="linenos">2811</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-2812"><a href="#Select.group_by-2812"><span class="linenos">2812</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select.group_by-2813"><a href="#Select.group_by-2813"><span class="linenos">2813</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-2814"><a href="#Select.group_by-2814"><span class="linenos">2814</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-2815"><a href="#Select.group_by-2815"><span class="linenos">2815</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-2816"><a href="#Select.group_by-2816"><span class="linenos">2816</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-2817"><a href="#Select.group_by-2817"><span class="linenos">2817</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-2818"><a href="#Select.group_by-2818"><span class="linenos">2818</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-2819"><a href="#Select.group_by-2819"><span class="linenos">2819</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-2820"><a href="#Select.group_by-2820"><span class="linenos">2820</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.group_by-2821"><a href="#Select.group_by-2821"><span class="linenos">2821</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.group_by-2803"><a href="#Select.group_by-2803"><span class="linenos">2803</span></a> <span class="k">def</span> <span class="nf">group_by</span><span class="p">(</span>
+</span><span id="Select.group_by-2804"><a href="#Select.group_by-2804"><span class="linenos">2804</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select.group_by-2805"><a href="#Select.group_by-2805"><span class="linenos">2805</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Select.group_by-2806"><a href="#Select.group_by-2806"><span class="linenos">2806</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select.group_by-2807"><a href="#Select.group_by-2807"><span class="linenos">2807</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Select.group_by-2808"><a href="#Select.group_by-2808"><span class="linenos">2808</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select.group_by-2809"><a href="#Select.group_by-2809"><span class="linenos">2809</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.group_by-2810"><a href="#Select.group_by-2810"><span class="linenos">2810</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select.group_by-2811"><a href="#Select.group_by-2811"><span class="linenos">2811</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.group_by-2812"><a href="#Select.group_by-2812"><span class="linenos">2812</span></a><span class="sd"> Set the GROUP BY expression.</span>
+</span><span id="Select.group_by-2813"><a href="#Select.group_by-2813"><span class="linenos">2813</span></a>
+</span><span id="Select.group_by-2814"><a href="#Select.group_by-2814"><span class="linenos">2814</span></a><span class="sd"> Example:</span>
+</span><span id="Select.group_by-2815"><a href="#Select.group_by-2815"><span class="linenos">2815</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-2816"><a href="#Select.group_by-2816"><span class="linenos">2816</span></a><span class="sd"> &#39;SELECT x, COUNT(1) FROM tbl GROUP BY x&#39;</span>
+</span><span id="Select.group_by-2817"><a href="#Select.group_by-2817"><span class="linenos">2817</span></a>
+</span><span id="Select.group_by-2818"><a href="#Select.group_by-2818"><span class="linenos">2818</span></a><span class="sd"> Args:</span>
+</span><span id="Select.group_by-2819"><a href="#Select.group_by-2819"><span class="linenos">2819</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Select.group_by-2820"><a href="#Select.group_by-2820"><span class="linenos">2820</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
+</span><span id="Select.group_by-2821"><a href="#Select.group_by-2821"><span class="linenos">2821</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-2822"><a href="#Select.group_by-2822"><span class="linenos">2822</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-2823"><a href="#Select.group_by-2823"><span class="linenos">2823</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Select.group_by-2824"><a href="#Select.group_by-2824"><span class="linenos">2824</span></a><span class="sd"> Otherwise, this flattens all the `Group` expression into a single expression.</span>
+</span><span id="Select.group_by-2825"><a href="#Select.group_by-2825"><span class="linenos">2825</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Select.group_by-2826"><a href="#Select.group_by-2826"><span class="linenos">2826</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.group_by-2827"><a href="#Select.group_by-2827"><span class="linenos">2827</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select.group_by-2828"><a href="#Select.group_by-2828"><span class="linenos">2828</span></a>
+</span><span id="Select.group_by-2829"><a href="#Select.group_by-2829"><span class="linenos">2829</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.group_by-2830"><a href="#Select.group_by-2830"><span class="linenos">2830</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="Select.group_by-2831"><a href="#Select.group_by-2831"><span class="linenos">2831</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.group_by-2832"><a href="#Select.group_by-2832"><span class="linenos">2832</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-2833"><a href="#Select.group_by-2833"><span class="linenos">2833</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-2834"><a href="#Select.group_by-2834"><span class="linenos">2834</span></a>
+</span><span id="Select.group_by-2835"><a href="#Select.group_by-2835"><span class="linenos">2835</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-2836"><a href="#Select.group_by-2836"><span class="linenos">2836</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select.group_by-2837"><a href="#Select.group_by-2837"><span class="linenos">2837</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-2838"><a href="#Select.group_by-2838"><span class="linenos">2838</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-2839"><a href="#Select.group_by-2839"><span class="linenos">2839</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-2840"><a href="#Select.group_by-2840"><span class="linenos">2840</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-2841"><a href="#Select.group_by-2841"><span class="linenos">2841</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-2842"><a href="#Select.group_by-2842"><span class="linenos">2842</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-2843"><a href="#Select.group_by-2843"><span class="linenos">2843</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-2844"><a href="#Select.group_by-2844"><span class="linenos">2844</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.group_by-2845"><a href="#Select.group_by-2845"><span class="linenos">2845</span></a> <span class="p">)</span>
</span></pre></div>
@@ -41270,45 +43301,45 @@ 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-2823"><a href="#Select.order_by-2823"><span class="linenos">2823</span></a> <span class="k">def</span> <span class="nf">order_by</span><span class="p">(</span>
-</span><span id="Select.order_by-2824"><a href="#Select.order_by-2824"><span class="linenos">2824</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Select.order_by-2825"><a href="#Select.order_by-2825"><span class="linenos">2825</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Select.order_by-2826"><a href="#Select.order_by-2826"><span class="linenos">2826</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.order_by-2827"><a href="#Select.order_by-2827"><span class="linenos">2827</span></a> <span class="n">dialect</span><span 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.order_by-2828"><a href="#Select.order_by-2828"><span class="linenos">2828</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.order_by-2829"><a href="#Select.order_by-2829"><span class="linenos">2829</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.order_by-2830"><a href="#Select.order_by-2830"><span class="linenos">2830</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select.order_by-2831"><a href="#Select.order_by-2831"><span class="linenos">2831</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.order_by-2832"><a href="#Select.order_by-2832"><span class="linenos">2832</span></a><span class="sd"> Set the ORDER BY expression.</span>
-</span><span id="Select.order_by-2833"><a href="#Select.order_by-2833"><span class="linenos">2833</span></a>
-</span><span id="Select.order_by-2834"><a href="#Select.order_by-2834"><span class="linenos">2834</span></a><span class="sd"> Example:</span>
-</span><span id="Select.order_by-2835"><a href="#Select.order_by-2835"><span class="linenos">2835</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-2836"><a href="#Select.order_by-2836"><span class="linenos">2836</span></a><span class="sd"> &#39;SELECT x FROM tbl ORDER BY x DESC&#39;</span>
-</span><span id="Select.order_by-2837"><a href="#Select.order_by-2837"><span class="linenos">2837</span></a>
-</span><span id="Select.order_by-2838"><a href="#Select.order_by-2838"><span class="linenos">2838</span></a><span class="sd"> Args:</span>
-</span><span id="Select.order_by-2839"><a href="#Select.order_by-2839"><span class="linenos">2839</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Select.order_by-2840"><a href="#Select.order_by-2840"><span class="linenos">2840</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
-</span><span id="Select.order_by-2841"><a href="#Select.order_by-2841"><span class="linenos">2841</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-2842"><a href="#Select.order_by-2842"><span class="linenos">2842</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="Select.order_by-2843"><a href="#Select.order_by-2843"><span class="linenos">2843</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
-</span><span id="Select.order_by-2844"><a href="#Select.order_by-2844"><span class="linenos">2844</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="Select.order_by-2845"><a href="#Select.order_by-2845"><span class="linenos">2845</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.order_by-2846"><a href="#Select.order_by-2846"><span class="linenos">2846</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Select.order_by-2847"><a href="#Select.order_by-2847"><span class="linenos">2847</span></a>
-</span><span id="Select.order_by-2848"><a href="#Select.order_by-2848"><span class="linenos">2848</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.order_by-2849"><a href="#Select.order_by-2849"><span class="linenos">2849</span></a><span class="sd"> The modified Select expression.</span>
-</span><span id="Select.order_by-2850"><a href="#Select.order_by-2850"><span class="linenos">2850</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.order_by-2851"><a href="#Select.order_by-2851"><span class="linenos">2851</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-2852"><a href="#Select.order_by-2852"><span class="linenos">2852</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select.order_by-2853"><a href="#Select.order_by-2853"><span class="linenos">2853</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-2854"><a href="#Select.order_by-2854"><span class="linenos">2854</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-2855"><a href="#Select.order_by-2855"><span class="linenos">2855</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-2856"><a href="#Select.order_by-2856"><span class="linenos">2856</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-2857"><a href="#Select.order_by-2857"><span class="linenos">2857</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-2858"><a href="#Select.order_by-2858"><span class="linenos">2858</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-2859"><a href="#Select.order_by-2859"><span class="linenos">2859</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-2860"><a href="#Select.order_by-2860"><span class="linenos">2860</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.order_by-2861"><a href="#Select.order_by-2861"><span class="linenos">2861</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.order_by-2847"><a href="#Select.order_by-2847"><span class="linenos">2847</span></a> <span class="k">def</span> <span class="nf">order_by</span><span class="p">(</span>
+</span><span id="Select.order_by-2848"><a href="#Select.order_by-2848"><span class="linenos">2848</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select.order_by-2849"><a href="#Select.order_by-2849"><span class="linenos">2849</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Select.order_by-2850"><a href="#Select.order_by-2850"><span class="linenos">2850</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.order_by-2851"><a href="#Select.order_by-2851"><span class="linenos">2851</span></a> <span class="n">dialect</span><span 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.order_by-2852"><a href="#Select.order_by-2852"><span class="linenos">2852</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.order_by-2853"><a href="#Select.order_by-2853"><span class="linenos">2853</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.order_by-2854"><a href="#Select.order_by-2854"><span class="linenos">2854</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select.order_by-2855"><a href="#Select.order_by-2855"><span class="linenos">2855</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.order_by-2856"><a href="#Select.order_by-2856"><span class="linenos">2856</span></a><span class="sd"> Set the ORDER BY expression.</span>
+</span><span id="Select.order_by-2857"><a href="#Select.order_by-2857"><span class="linenos">2857</span></a>
+</span><span id="Select.order_by-2858"><a href="#Select.order_by-2858"><span class="linenos">2858</span></a><span class="sd"> Example:</span>
+</span><span id="Select.order_by-2859"><a href="#Select.order_by-2859"><span class="linenos">2859</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-2860"><a href="#Select.order_by-2860"><span class="linenos">2860</span></a><span class="sd"> &#39;SELECT x FROM tbl ORDER BY x DESC&#39;</span>
+</span><span id="Select.order_by-2861"><a href="#Select.order_by-2861"><span class="linenos">2861</span></a>
+</span><span id="Select.order_by-2862"><a href="#Select.order_by-2862"><span class="linenos">2862</span></a><span class="sd"> Args:</span>
+</span><span id="Select.order_by-2863"><a href="#Select.order_by-2863"><span class="linenos">2863</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Select.order_by-2864"><a href="#Select.order_by-2864"><span class="linenos">2864</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
+</span><span id="Select.order_by-2865"><a href="#Select.order_by-2865"><span class="linenos">2865</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-2866"><a href="#Select.order_by-2866"><span class="linenos">2866</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Select.order_by-2867"><a href="#Select.order_by-2867"><span class="linenos">2867</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
+</span><span id="Select.order_by-2868"><a href="#Select.order_by-2868"><span class="linenos">2868</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Select.order_by-2869"><a href="#Select.order_by-2869"><span class="linenos">2869</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.order_by-2870"><a href="#Select.order_by-2870"><span class="linenos">2870</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select.order_by-2871"><a href="#Select.order_by-2871"><span class="linenos">2871</span></a>
+</span><span id="Select.order_by-2872"><a href="#Select.order_by-2872"><span class="linenos">2872</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.order_by-2873"><a href="#Select.order_by-2873"><span class="linenos">2873</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="Select.order_by-2874"><a href="#Select.order_by-2874"><span class="linenos">2874</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.order_by-2875"><a href="#Select.order_by-2875"><span class="linenos">2875</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-2876"><a href="#Select.order_by-2876"><span class="linenos">2876</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select.order_by-2877"><a href="#Select.order_by-2877"><span class="linenos">2877</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-2878"><a href="#Select.order_by-2878"><span class="linenos">2878</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-2879"><a href="#Select.order_by-2879"><span class="linenos">2879</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-2880"><a href="#Select.order_by-2880"><span class="linenos">2880</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-2881"><a href="#Select.order_by-2881"><span class="linenos">2881</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-2882"><a href="#Select.order_by-2882"><span class="linenos">2882</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-2883"><a href="#Select.order_by-2883"><span class="linenos">2883</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-2884"><a href="#Select.order_by-2884"><span class="linenos">2884</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.order_by-2885"><a href="#Select.order_by-2885"><span class="linenos">2885</span></a> <span class="p">)</span>
</span></pre></div>
@@ -41357,45 +43388,45 @@ 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-2863"><a href="#Select.sort_by-2863"><span class="linenos">2863</span></a> <span class="k">def</span> <span class="nf">sort_by</span><span class="p">(</span>
-</span><span id="Select.sort_by-2864"><a href="#Select.sort_by-2864"><span class="linenos">2864</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Select.sort_by-2865"><a href="#Select.sort_by-2865"><span class="linenos">2865</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Select.sort_by-2866"><a href="#Select.sort_by-2866"><span class="linenos">2866</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select.sort_by-2867"><a href="#Select.sort_by-2867"><span class="linenos">2867</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Select.sort_by-2868"><a href="#Select.sort_by-2868"><span class="linenos">2868</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select.sort_by-2869"><a href="#Select.sort_by-2869"><span class="linenos">2869</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.sort_by-2870"><a href="#Select.sort_by-2870"><span class="linenos">2870</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select.sort_by-2871"><a href="#Select.sort_by-2871"><span class="linenos">2871</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.sort_by-2872"><a href="#Select.sort_by-2872"><span class="linenos">2872</span></a><span class="sd"> Set the SORT BY expression.</span>
-</span><span id="Select.sort_by-2873"><a href="#Select.sort_by-2873"><span class="linenos">2873</span></a>
-</span><span id="Select.sort_by-2874"><a href="#Select.sort_by-2874"><span class="linenos">2874</span></a><span class="sd"> Example:</span>
-</span><span id="Select.sort_by-2875"><a href="#Select.sort_by-2875"><span class="linenos">2875</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).sort_by(&quot;x DESC&quot;).sql(dialect=&quot;hive&quot;)</span>
-</span><span id="Select.sort_by-2876"><a href="#Select.sort_by-2876"><span class="linenos">2876</span></a><span class="sd"> &#39;SELECT x FROM tbl SORT BY x DESC&#39;</span>
-</span><span id="Select.sort_by-2877"><a href="#Select.sort_by-2877"><span class="linenos">2877</span></a>
-</span><span id="Select.sort_by-2878"><a href="#Select.sort_by-2878"><span class="linenos">2878</span></a><span class="sd"> Args:</span>
-</span><span id="Select.sort_by-2879"><a href="#Select.sort_by-2879"><span class="linenos">2879</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Select.sort_by-2880"><a href="#Select.sort_by-2880"><span class="linenos">2880</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
-</span><span id="Select.sort_by-2881"><a href="#Select.sort_by-2881"><span class="linenos">2881</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-2882"><a href="#Select.sort_by-2882"><span class="linenos">2882</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="Select.sort_by-2883"><a href="#Select.sort_by-2883"><span class="linenos">2883</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
-</span><span id="Select.sort_by-2884"><a href="#Select.sort_by-2884"><span class="linenos">2884</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="Select.sort_by-2885"><a href="#Select.sort_by-2885"><span class="linenos">2885</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.sort_by-2886"><a href="#Select.sort_by-2886"><span class="linenos">2886</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Select.sort_by-2887"><a href="#Select.sort_by-2887"><span class="linenos">2887</span></a>
-</span><span id="Select.sort_by-2888"><a href="#Select.sort_by-2888"><span class="linenos">2888</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.sort_by-2889"><a href="#Select.sort_by-2889"><span class="linenos">2889</span></a><span class="sd"> The modified Select expression.</span>
-</span><span id="Select.sort_by-2890"><a href="#Select.sort_by-2890"><span class="linenos">2890</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.sort_by-2891"><a href="#Select.sort_by-2891"><span class="linenos">2891</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-2892"><a href="#Select.sort_by-2892"><span class="linenos">2892</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select.sort_by-2893"><a href="#Select.sort_by-2893"><span class="linenos">2893</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-2894"><a href="#Select.sort_by-2894"><span class="linenos">2894</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-2895"><a href="#Select.sort_by-2895"><span class="linenos">2895</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-2896"><a href="#Select.sort_by-2896"><span class="linenos">2896</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-2897"><a href="#Select.sort_by-2897"><span class="linenos">2897</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-2898"><a href="#Select.sort_by-2898"><span class="linenos">2898</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-2899"><a href="#Select.sort_by-2899"><span class="linenos">2899</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-2900"><a href="#Select.sort_by-2900"><span class="linenos">2900</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.sort_by-2901"><a href="#Select.sort_by-2901"><span class="linenos">2901</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.sort_by-2887"><a href="#Select.sort_by-2887"><span class="linenos">2887</span></a> <span class="k">def</span> <span class="nf">sort_by</span><span class="p">(</span>
+</span><span id="Select.sort_by-2888"><a href="#Select.sort_by-2888"><span class="linenos">2888</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select.sort_by-2889"><a href="#Select.sort_by-2889"><span class="linenos">2889</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Select.sort_by-2890"><a href="#Select.sort_by-2890"><span class="linenos">2890</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select.sort_by-2891"><a href="#Select.sort_by-2891"><span class="linenos">2891</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Select.sort_by-2892"><a href="#Select.sort_by-2892"><span class="linenos">2892</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select.sort_by-2893"><a href="#Select.sort_by-2893"><span class="linenos">2893</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.sort_by-2894"><a href="#Select.sort_by-2894"><span class="linenos">2894</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select.sort_by-2895"><a href="#Select.sort_by-2895"><span class="linenos">2895</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.sort_by-2896"><a href="#Select.sort_by-2896"><span class="linenos">2896</span></a><span class="sd"> Set the SORT BY expression.</span>
+</span><span id="Select.sort_by-2897"><a href="#Select.sort_by-2897"><span class="linenos">2897</span></a>
+</span><span id="Select.sort_by-2898"><a href="#Select.sort_by-2898"><span class="linenos">2898</span></a><span class="sd"> Example:</span>
+</span><span id="Select.sort_by-2899"><a href="#Select.sort_by-2899"><span class="linenos">2899</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).sort_by(&quot;x DESC&quot;).sql(dialect=&quot;hive&quot;)</span>
+</span><span id="Select.sort_by-2900"><a href="#Select.sort_by-2900"><span class="linenos">2900</span></a><span class="sd"> &#39;SELECT x FROM tbl SORT BY x DESC&#39;</span>
+</span><span id="Select.sort_by-2901"><a href="#Select.sort_by-2901"><span class="linenos">2901</span></a>
+</span><span id="Select.sort_by-2902"><a href="#Select.sort_by-2902"><span class="linenos">2902</span></a><span class="sd"> Args:</span>
+</span><span id="Select.sort_by-2903"><a href="#Select.sort_by-2903"><span class="linenos">2903</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Select.sort_by-2904"><a href="#Select.sort_by-2904"><span class="linenos">2904</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
+</span><span id="Select.sort_by-2905"><a href="#Select.sort_by-2905"><span class="linenos">2905</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-2906"><a href="#Select.sort_by-2906"><span class="linenos">2906</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Select.sort_by-2907"><a href="#Select.sort_by-2907"><span class="linenos">2907</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
+</span><span id="Select.sort_by-2908"><a href="#Select.sort_by-2908"><span class="linenos">2908</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Select.sort_by-2909"><a href="#Select.sort_by-2909"><span class="linenos">2909</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.sort_by-2910"><a href="#Select.sort_by-2910"><span class="linenos">2910</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select.sort_by-2911"><a href="#Select.sort_by-2911"><span class="linenos">2911</span></a>
+</span><span id="Select.sort_by-2912"><a href="#Select.sort_by-2912"><span class="linenos">2912</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.sort_by-2913"><a href="#Select.sort_by-2913"><span class="linenos">2913</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="Select.sort_by-2914"><a href="#Select.sort_by-2914"><span class="linenos">2914</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.sort_by-2915"><a href="#Select.sort_by-2915"><span class="linenos">2915</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-2916"><a href="#Select.sort_by-2916"><span class="linenos">2916</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select.sort_by-2917"><a href="#Select.sort_by-2917"><span class="linenos">2917</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-2918"><a href="#Select.sort_by-2918"><span class="linenos">2918</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-2919"><a href="#Select.sort_by-2919"><span class="linenos">2919</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-2920"><a href="#Select.sort_by-2920"><span class="linenos">2920</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-2921"><a href="#Select.sort_by-2921"><span class="linenos">2921</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-2922"><a href="#Select.sort_by-2922"><span class="linenos">2922</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-2923"><a href="#Select.sort_by-2923"><span class="linenos">2923</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-2924"><a href="#Select.sort_by-2924"><span class="linenos">2924</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.sort_by-2925"><a href="#Select.sort_by-2925"><span class="linenos">2925</span></a> <span class="p">)</span>
</span></pre></div>
@@ -41444,45 +43475,45 @@ Otherwise, this flattens all the <code><a href="#Order">Order</a></code> express
</div>
<a class="headerlink" href="#Select.cluster_by"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select.cluster_by-2903"><a href="#Select.cluster_by-2903"><span class="linenos">2903</span></a> <span class="k">def</span> <span class="nf">cluster_by</span><span class="p">(</span>
-</span><span id="Select.cluster_by-2904"><a href="#Select.cluster_by-2904"><span class="linenos">2904</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Select.cluster_by-2905"><a href="#Select.cluster_by-2905"><span class="linenos">2905</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Select.cluster_by-2906"><a href="#Select.cluster_by-2906"><span class="linenos">2906</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select.cluster_by-2907"><a href="#Select.cluster_by-2907"><span class="linenos">2907</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Select.cluster_by-2908"><a href="#Select.cluster_by-2908"><span class="linenos">2908</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select.cluster_by-2909"><a href="#Select.cluster_by-2909"><span class="linenos">2909</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.cluster_by-2910"><a href="#Select.cluster_by-2910"><span class="linenos">2910</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select.cluster_by-2911"><a href="#Select.cluster_by-2911"><span class="linenos">2911</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.cluster_by-2912"><a href="#Select.cluster_by-2912"><span class="linenos">2912</span></a><span class="sd"> Set the CLUSTER BY expression.</span>
-</span><span id="Select.cluster_by-2913"><a href="#Select.cluster_by-2913"><span class="linenos">2913</span></a>
-</span><span id="Select.cluster_by-2914"><a href="#Select.cluster_by-2914"><span class="linenos">2914</span></a><span class="sd"> Example:</span>
-</span><span id="Select.cluster_by-2915"><a href="#Select.cluster_by-2915"><span class="linenos">2915</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).cluster_by(&quot;x DESC&quot;).sql(dialect=&quot;hive&quot;)</span>
-</span><span id="Select.cluster_by-2916"><a href="#Select.cluster_by-2916"><span class="linenos">2916</span></a><span class="sd"> &#39;SELECT x FROM tbl CLUSTER BY x DESC&#39;</span>
-</span><span id="Select.cluster_by-2917"><a href="#Select.cluster_by-2917"><span class="linenos">2917</span></a>
-</span><span id="Select.cluster_by-2918"><a href="#Select.cluster_by-2918"><span class="linenos">2918</span></a><span class="sd"> Args:</span>
-</span><span id="Select.cluster_by-2919"><a href="#Select.cluster_by-2919"><span class="linenos">2919</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Select.cluster_by-2920"><a href="#Select.cluster_by-2920"><span class="linenos">2920</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
-</span><span id="Select.cluster_by-2921"><a href="#Select.cluster_by-2921"><span class="linenos">2921</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-2922"><a href="#Select.cluster_by-2922"><span class="linenos">2922</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="Select.cluster_by-2923"><a href="#Select.cluster_by-2923"><span class="linenos">2923</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
-</span><span id="Select.cluster_by-2924"><a href="#Select.cluster_by-2924"><span class="linenos">2924</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="Select.cluster_by-2925"><a href="#Select.cluster_by-2925"><span class="linenos">2925</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.cluster_by-2926"><a href="#Select.cluster_by-2926"><span class="linenos">2926</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Select.cluster_by-2927"><a href="#Select.cluster_by-2927"><span class="linenos">2927</span></a>
-</span><span id="Select.cluster_by-2928"><a href="#Select.cluster_by-2928"><span class="linenos">2928</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.cluster_by-2929"><a href="#Select.cluster_by-2929"><span class="linenos">2929</span></a><span class="sd"> The modified Select expression.</span>
-</span><span id="Select.cluster_by-2930"><a href="#Select.cluster_by-2930"><span class="linenos">2930</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.cluster_by-2931"><a href="#Select.cluster_by-2931"><span class="linenos">2931</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-2932"><a href="#Select.cluster_by-2932"><span class="linenos">2932</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select.cluster_by-2933"><a href="#Select.cluster_by-2933"><span class="linenos">2933</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-2934"><a href="#Select.cluster_by-2934"><span class="linenos">2934</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-2935"><a href="#Select.cluster_by-2935"><span class="linenos">2935</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-2936"><a href="#Select.cluster_by-2936"><span class="linenos">2936</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-2937"><a href="#Select.cluster_by-2937"><span class="linenos">2937</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-2938"><a href="#Select.cluster_by-2938"><span class="linenos">2938</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-2939"><a href="#Select.cluster_by-2939"><span class="linenos">2939</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-2940"><a href="#Select.cluster_by-2940"><span class="linenos">2940</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.cluster_by-2941"><a href="#Select.cluster_by-2941"><span class="linenos">2941</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.cluster_by-2927"><a href="#Select.cluster_by-2927"><span class="linenos">2927</span></a> <span class="k">def</span> <span class="nf">cluster_by</span><span class="p">(</span>
+</span><span id="Select.cluster_by-2928"><a href="#Select.cluster_by-2928"><span class="linenos">2928</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select.cluster_by-2929"><a href="#Select.cluster_by-2929"><span class="linenos">2929</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Select.cluster_by-2930"><a href="#Select.cluster_by-2930"><span class="linenos">2930</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select.cluster_by-2931"><a href="#Select.cluster_by-2931"><span class="linenos">2931</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Select.cluster_by-2932"><a href="#Select.cluster_by-2932"><span class="linenos">2932</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select.cluster_by-2933"><a href="#Select.cluster_by-2933"><span class="linenos">2933</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.cluster_by-2934"><a href="#Select.cluster_by-2934"><span class="linenos">2934</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select.cluster_by-2935"><a href="#Select.cluster_by-2935"><span class="linenos">2935</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.cluster_by-2936"><a href="#Select.cluster_by-2936"><span class="linenos">2936</span></a><span class="sd"> Set the CLUSTER BY expression.</span>
+</span><span id="Select.cluster_by-2937"><a href="#Select.cluster_by-2937"><span class="linenos">2937</span></a>
+</span><span id="Select.cluster_by-2938"><a href="#Select.cluster_by-2938"><span class="linenos">2938</span></a><span class="sd"> Example:</span>
+</span><span id="Select.cluster_by-2939"><a href="#Select.cluster_by-2939"><span class="linenos">2939</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).cluster_by(&quot;x DESC&quot;).sql(dialect=&quot;hive&quot;)</span>
+</span><span id="Select.cluster_by-2940"><a href="#Select.cluster_by-2940"><span class="linenos">2940</span></a><span class="sd"> &#39;SELECT x FROM tbl CLUSTER BY x DESC&#39;</span>
+</span><span id="Select.cluster_by-2941"><a href="#Select.cluster_by-2941"><span class="linenos">2941</span></a>
+</span><span id="Select.cluster_by-2942"><a href="#Select.cluster_by-2942"><span class="linenos">2942</span></a><span class="sd"> Args:</span>
+</span><span id="Select.cluster_by-2943"><a href="#Select.cluster_by-2943"><span class="linenos">2943</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Select.cluster_by-2944"><a href="#Select.cluster_by-2944"><span class="linenos">2944</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
+</span><span id="Select.cluster_by-2945"><a href="#Select.cluster_by-2945"><span class="linenos">2945</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-2946"><a href="#Select.cluster_by-2946"><span class="linenos">2946</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Select.cluster_by-2947"><a href="#Select.cluster_by-2947"><span class="linenos">2947</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
+</span><span id="Select.cluster_by-2948"><a href="#Select.cluster_by-2948"><span class="linenos">2948</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Select.cluster_by-2949"><a href="#Select.cluster_by-2949"><span class="linenos">2949</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.cluster_by-2950"><a href="#Select.cluster_by-2950"><span class="linenos">2950</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select.cluster_by-2951"><a href="#Select.cluster_by-2951"><span class="linenos">2951</span></a>
+</span><span id="Select.cluster_by-2952"><a href="#Select.cluster_by-2952"><span class="linenos">2952</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.cluster_by-2953"><a href="#Select.cluster_by-2953"><span class="linenos">2953</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="Select.cluster_by-2954"><a href="#Select.cluster_by-2954"><span class="linenos">2954</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.cluster_by-2955"><a href="#Select.cluster_by-2955"><span class="linenos">2955</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-2956"><a href="#Select.cluster_by-2956"><span class="linenos">2956</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select.cluster_by-2957"><a href="#Select.cluster_by-2957"><span class="linenos">2957</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-2958"><a href="#Select.cluster_by-2958"><span class="linenos">2958</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-2959"><a href="#Select.cluster_by-2959"><span class="linenos">2959</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-2960"><a href="#Select.cluster_by-2960"><span class="linenos">2960</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-2961"><a href="#Select.cluster_by-2961"><span class="linenos">2961</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-2962"><a href="#Select.cluster_by-2962"><span class="linenos">2962</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-2963"><a href="#Select.cluster_by-2963"><span class="linenos">2963</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-2964"><a href="#Select.cluster_by-2964"><span class="linenos">2964</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.cluster_by-2965"><a href="#Select.cluster_by-2965"><span class="linenos">2965</span></a> <span class="p">)</span>
</span></pre></div>
@@ -41531,39 +43562,39 @@ 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-2943"><a href="#Select.limit-2943"><span class="linenos">2943</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span>
-</span><span id="Select.limit-2944"><a href="#Select.limit-2944"><span class="linenos">2944</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span> <span class="o">|</span> <span class="nb">int</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="Select.limit-2945"><a href="#Select.limit-2945"><span class="linenos">2945</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select.limit-2946"><a href="#Select.limit-2946"><span class="linenos">2946</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.limit-2947"><a href="#Select.limit-2947"><span class="linenos">2947</span></a><span class="sd"> Set the LIMIT expression.</span>
-</span><span id="Select.limit-2948"><a href="#Select.limit-2948"><span class="linenos">2948</span></a>
-</span><span id="Select.limit-2949"><a href="#Select.limit-2949"><span class="linenos">2949</span></a><span class="sd"> Example:</span>
-</span><span id="Select.limit-2950"><a href="#Select.limit-2950"><span class="linenos">2950</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-2951"><a href="#Select.limit-2951"><span class="linenos">2951</span></a><span class="sd"> &#39;SELECT x FROM tbl LIMIT 10&#39;</span>
-</span><span id="Select.limit-2952"><a href="#Select.limit-2952"><span class="linenos">2952</span></a>
-</span><span id="Select.limit-2953"><a href="#Select.limit-2953"><span class="linenos">2953</span></a><span class="sd"> Args:</span>
-</span><span id="Select.limit-2954"><a href="#Select.limit-2954"><span class="linenos">2954</span></a><span class="sd"> expression: the SQL code string to parse.</span>
-</span><span id="Select.limit-2955"><a href="#Select.limit-2955"><span class="linenos">2955</span></a><span class="sd"> This can also be an integer.</span>
-</span><span id="Select.limit-2956"><a href="#Select.limit-2956"><span class="linenos">2956</span></a><span class="sd"> If a `Limit` instance is passed, this is used as-is.</span>
-</span><span id="Select.limit-2957"><a href="#Select.limit-2957"><span class="linenos">2957</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Limit`.</span>
-</span><span id="Select.limit-2958"><a href="#Select.limit-2958"><span class="linenos">2958</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="Select.limit-2959"><a href="#Select.limit-2959"><span class="linenos">2959</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.limit-2960"><a href="#Select.limit-2960"><span class="linenos">2960</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Select.limit-2961"><a href="#Select.limit-2961"><span class="linenos">2961</span></a>
-</span><span id="Select.limit-2962"><a href="#Select.limit-2962"><span class="linenos">2962</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.limit-2963"><a href="#Select.limit-2963"><span class="linenos">2963</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select.limit-2964"><a href="#Select.limit-2964"><span class="linenos">2964</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.limit-2965"><a href="#Select.limit-2965"><span class="linenos">2965</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
-</span><span id="Select.limit-2966"><a href="#Select.limit-2966"><span class="linenos">2966</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-2967"><a href="#Select.limit-2967"><span class="linenos">2967</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-2968"><a href="#Select.limit-2968"><span class="linenos">2968</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-2969"><a href="#Select.limit-2969"><span class="linenos">2969</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-2970"><a href="#Select.limit-2970"><span class="linenos">2970</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-2971"><a href="#Select.limit-2971"><span class="linenos">2971</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-2972"><a href="#Select.limit-2972"><span class="linenos">2972</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-2973"><a href="#Select.limit-2973"><span class="linenos">2973</span></a> <span class="n">into_arg</span><span class="o">=</span><span class="s2">&quot;expression&quot;</span><span class="p">,</span>
-</span><span id="Select.limit-2974"><a href="#Select.limit-2974"><span class="linenos">2974</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.limit-2975"><a href="#Select.limit-2975"><span class="linenos">2975</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.limit-2967"><a href="#Select.limit-2967"><span class="linenos">2967</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span>
+</span><span id="Select.limit-2968"><a href="#Select.limit-2968"><span class="linenos">2968</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span> <span class="o">|</span> <span class="nb">int</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="Select.limit-2969"><a href="#Select.limit-2969"><span class="linenos">2969</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select.limit-2970"><a href="#Select.limit-2970"><span class="linenos">2970</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.limit-2971"><a href="#Select.limit-2971"><span class="linenos">2971</span></a><span class="sd"> Set the LIMIT expression.</span>
+</span><span id="Select.limit-2972"><a href="#Select.limit-2972"><span class="linenos">2972</span></a>
+</span><span id="Select.limit-2973"><a href="#Select.limit-2973"><span class="linenos">2973</span></a><span class="sd"> Example:</span>
+</span><span id="Select.limit-2974"><a href="#Select.limit-2974"><span class="linenos">2974</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-2975"><a href="#Select.limit-2975"><span class="linenos">2975</span></a><span class="sd"> &#39;SELECT x FROM tbl LIMIT 10&#39;</span>
+</span><span id="Select.limit-2976"><a href="#Select.limit-2976"><span class="linenos">2976</span></a>
+</span><span id="Select.limit-2977"><a href="#Select.limit-2977"><span class="linenos">2977</span></a><span class="sd"> Args:</span>
+</span><span id="Select.limit-2978"><a href="#Select.limit-2978"><span class="linenos">2978</span></a><span class="sd"> expression: the SQL code string to parse.</span>
+</span><span id="Select.limit-2979"><a href="#Select.limit-2979"><span class="linenos">2979</span></a><span class="sd"> This can also be an integer.</span>
+</span><span id="Select.limit-2980"><a href="#Select.limit-2980"><span class="linenos">2980</span></a><span class="sd"> If a `Limit` instance is passed, this is used as-is.</span>
+</span><span id="Select.limit-2981"><a href="#Select.limit-2981"><span class="linenos">2981</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Limit`.</span>
+</span><span id="Select.limit-2982"><a href="#Select.limit-2982"><span class="linenos">2982</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Select.limit-2983"><a href="#Select.limit-2983"><span class="linenos">2983</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.limit-2984"><a href="#Select.limit-2984"><span class="linenos">2984</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select.limit-2985"><a href="#Select.limit-2985"><span class="linenos">2985</span></a>
+</span><span id="Select.limit-2986"><a href="#Select.limit-2986"><span class="linenos">2986</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.limit-2987"><a href="#Select.limit-2987"><span class="linenos">2987</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="Select.limit-2988"><a href="#Select.limit-2988"><span class="linenos">2988</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.limit-2989"><a href="#Select.limit-2989"><span class="linenos">2989</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
+</span><span id="Select.limit-2990"><a href="#Select.limit-2990"><span class="linenos">2990</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-2991"><a href="#Select.limit-2991"><span class="linenos">2991</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-2992"><a href="#Select.limit-2992"><span class="linenos">2992</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-2993"><a href="#Select.limit-2993"><span class="linenos">2993</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-2994"><a href="#Select.limit-2994"><span class="linenos">2994</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-2995"><a href="#Select.limit-2995"><span class="linenos">2995</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-2996"><a href="#Select.limit-2996"><span class="linenos">2996</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-2997"><a href="#Select.limit-2997"><span class="linenos">2997</span></a> <span class="n">into_arg</span><span class="o">=</span><span class="s2">&quot;expression&quot;</span><span class="p">,</span>
+</span><span id="Select.limit-2998"><a href="#Select.limit-2998"><span class="linenos">2998</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.limit-2999"><a href="#Select.limit-2999"><span class="linenos">2999</span></a> <span class="p">)</span>
</span></pre></div>
@@ -41611,39 +43642,39 @@ 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-2977"><a href="#Select.offset-2977"><span class="linenos">2977</span></a> <span class="k">def</span> <span class="nf">offset</span><span class="p">(</span>
-</span><span id="Select.offset-2978"><a href="#Select.offset-2978"><span class="linenos">2978</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span> <span class="o">|</span> <span class="nb">int</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="Select.offset-2979"><a href="#Select.offset-2979"><span class="linenos">2979</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select.offset-2980"><a href="#Select.offset-2980"><span class="linenos">2980</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.offset-2981"><a href="#Select.offset-2981"><span class="linenos">2981</span></a><span class="sd"> Set the OFFSET expression.</span>
-</span><span id="Select.offset-2982"><a href="#Select.offset-2982"><span class="linenos">2982</span></a>
-</span><span id="Select.offset-2983"><a href="#Select.offset-2983"><span class="linenos">2983</span></a><span class="sd"> Example:</span>
-</span><span id="Select.offset-2984"><a href="#Select.offset-2984"><span class="linenos">2984</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-2985"><a href="#Select.offset-2985"><span class="linenos">2985</span></a><span class="sd"> &#39;SELECT x FROM tbl OFFSET 10&#39;</span>
-</span><span id="Select.offset-2986"><a href="#Select.offset-2986"><span class="linenos">2986</span></a>
-</span><span id="Select.offset-2987"><a href="#Select.offset-2987"><span class="linenos">2987</span></a><span class="sd"> Args:</span>
-</span><span id="Select.offset-2988"><a href="#Select.offset-2988"><span class="linenos">2988</span></a><span class="sd"> expression: the SQL code string to parse.</span>
-</span><span id="Select.offset-2989"><a href="#Select.offset-2989"><span class="linenos">2989</span></a><span class="sd"> This can also be an integer.</span>
-</span><span id="Select.offset-2990"><a href="#Select.offset-2990"><span class="linenos">2990</span></a><span class="sd"> If a `Offset` instance is passed, this is used as-is.</span>
-</span><span id="Select.offset-2991"><a href="#Select.offset-2991"><span class="linenos">2991</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Offset`.</span>
-</span><span id="Select.offset-2992"><a href="#Select.offset-2992"><span class="linenos">2992</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="Select.offset-2993"><a href="#Select.offset-2993"><span class="linenos">2993</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.offset-2994"><a href="#Select.offset-2994"><span class="linenos">2994</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Select.offset-2995"><a href="#Select.offset-2995"><span class="linenos">2995</span></a>
-</span><span id="Select.offset-2996"><a href="#Select.offset-2996"><span class="linenos">2996</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.offset-2997"><a href="#Select.offset-2997"><span class="linenos">2997</span></a><span class="sd"> The modified Select expression.</span>
-</span><span id="Select.offset-2998"><a href="#Select.offset-2998"><span class="linenos">2998</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.offset-2999"><a href="#Select.offset-2999"><span class="linenos">2999</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
-</span><span id="Select.offset-3000"><a href="#Select.offset-3000"><span class="linenos">3000</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-3001"><a href="#Select.offset-3001"><span class="linenos">3001</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-3002"><a href="#Select.offset-3002"><span class="linenos">3002</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-3003"><a href="#Select.offset-3003"><span class="linenos">3003</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-3004"><a href="#Select.offset-3004"><span class="linenos">3004</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-3005"><a href="#Select.offset-3005"><span class="linenos">3005</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-3006"><a href="#Select.offset-3006"><span class="linenos">3006</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-3007"><a href="#Select.offset-3007"><span class="linenos">3007</span></a> <span class="n">into_arg</span><span class="o">=</span><span class="s2">&quot;expression&quot;</span><span class="p">,</span>
-</span><span id="Select.offset-3008"><a href="#Select.offset-3008"><span class="linenos">3008</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.offset-3009"><a href="#Select.offset-3009"><span class="linenos">3009</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.offset-3001"><a href="#Select.offset-3001"><span class="linenos">3001</span></a> <span class="k">def</span> <span class="nf">offset</span><span class="p">(</span>
+</span><span id="Select.offset-3002"><a href="#Select.offset-3002"><span class="linenos">3002</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span> <span class="o">|</span> <span class="nb">int</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="Select.offset-3003"><a href="#Select.offset-3003"><span class="linenos">3003</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select.offset-3004"><a href="#Select.offset-3004"><span class="linenos">3004</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.offset-3005"><a href="#Select.offset-3005"><span class="linenos">3005</span></a><span class="sd"> Set the OFFSET expression.</span>
+</span><span id="Select.offset-3006"><a href="#Select.offset-3006"><span class="linenos">3006</span></a>
+</span><span id="Select.offset-3007"><a href="#Select.offset-3007"><span class="linenos">3007</span></a><span class="sd"> Example:</span>
+</span><span id="Select.offset-3008"><a href="#Select.offset-3008"><span class="linenos">3008</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-3009"><a href="#Select.offset-3009"><span class="linenos">3009</span></a><span class="sd"> &#39;SELECT x FROM tbl OFFSET 10&#39;</span>
+</span><span id="Select.offset-3010"><a href="#Select.offset-3010"><span class="linenos">3010</span></a>
+</span><span id="Select.offset-3011"><a href="#Select.offset-3011"><span class="linenos">3011</span></a><span class="sd"> Args:</span>
+</span><span id="Select.offset-3012"><a href="#Select.offset-3012"><span class="linenos">3012</span></a><span class="sd"> expression: the SQL code string to parse.</span>
+</span><span id="Select.offset-3013"><a href="#Select.offset-3013"><span class="linenos">3013</span></a><span class="sd"> This can also be an integer.</span>
+</span><span id="Select.offset-3014"><a href="#Select.offset-3014"><span class="linenos">3014</span></a><span class="sd"> If a `Offset` instance is passed, this is used as-is.</span>
+</span><span id="Select.offset-3015"><a href="#Select.offset-3015"><span class="linenos">3015</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Offset`.</span>
+</span><span id="Select.offset-3016"><a href="#Select.offset-3016"><span class="linenos">3016</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Select.offset-3017"><a href="#Select.offset-3017"><span class="linenos">3017</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.offset-3018"><a href="#Select.offset-3018"><span class="linenos">3018</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select.offset-3019"><a href="#Select.offset-3019"><span class="linenos">3019</span></a>
+</span><span id="Select.offset-3020"><a href="#Select.offset-3020"><span class="linenos">3020</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.offset-3021"><a href="#Select.offset-3021"><span class="linenos">3021</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="Select.offset-3022"><a href="#Select.offset-3022"><span class="linenos">3022</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.offset-3023"><a href="#Select.offset-3023"><span class="linenos">3023</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
+</span><span id="Select.offset-3024"><a href="#Select.offset-3024"><span class="linenos">3024</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-3025"><a href="#Select.offset-3025"><span class="linenos">3025</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-3026"><a href="#Select.offset-3026"><span class="linenos">3026</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-3027"><a href="#Select.offset-3027"><span class="linenos">3027</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-3028"><a href="#Select.offset-3028"><span class="linenos">3028</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-3029"><a href="#Select.offset-3029"><span class="linenos">3029</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-3030"><a href="#Select.offset-3030"><span class="linenos">3030</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-3031"><a href="#Select.offset-3031"><span class="linenos">3031</span></a> <span class="n">into_arg</span><span class="o">=</span><span class="s2">&quot;expression&quot;</span><span class="p">,</span>
+</span><span id="Select.offset-3032"><a href="#Select.offset-3032"><span class="linenos">3032</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.offset-3033"><a href="#Select.offset-3033"><span class="linenos">3033</span></a> <span class="p">)</span>
</span></pre></div>
@@ -41691,42 +43722,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-3011"><a href="#Select.select-3011"><span class="linenos">3011</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
-</span><span id="Select.select-3012"><a href="#Select.select-3012"><span class="linenos">3012</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Select.select-3013"><a href="#Select.select-3013"><span class="linenos">3013</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Select.select-3014"><a href="#Select.select-3014"><span class="linenos">3014</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-3015"><a href="#Select.select-3015"><span class="linenos">3015</span></a> <span class="n">dialect</span><span 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-3016"><a href="#Select.select-3016"><span class="linenos">3016</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-3017"><a href="#Select.select-3017"><span class="linenos">3017</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.select-3018"><a href="#Select.select-3018"><span class="linenos">3018</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-3019"><a href="#Select.select-3019"><span class="linenos">3019</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.select-3020"><a href="#Select.select-3020"><span class="linenos">3020</span></a><span class="sd"> Append to or set the SELECT expressions.</span>
-</span><span id="Select.select-3021"><a href="#Select.select-3021"><span class="linenos">3021</span></a>
-</span><span id="Select.select-3022"><a href="#Select.select-3022"><span class="linenos">3022</span></a><span class="sd"> Example:</span>
-</span><span id="Select.select-3023"><a href="#Select.select-3023"><span class="linenos">3023</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;, &quot;y&quot;).sql()</span>
-</span><span id="Select.select-3024"><a href="#Select.select-3024"><span class="linenos">3024</span></a><span class="sd"> &#39;SELECT x, y&#39;</span>
-</span><span id="Select.select-3025"><a href="#Select.select-3025"><span class="linenos">3025</span></a>
-</span><span id="Select.select-3026"><a href="#Select.select-3026"><span class="linenos">3026</span></a><span class="sd"> Args:</span>
-</span><span id="Select.select-3027"><a href="#Select.select-3027"><span class="linenos">3027</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Select.select-3028"><a href="#Select.select-3028"><span class="linenos">3028</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select.select-3029"><a href="#Select.select-3029"><span class="linenos">3029</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="Select.select-3030"><a href="#Select.select-3030"><span class="linenos">3030</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="Select.select-3031"><a href="#Select.select-3031"><span class="linenos">3031</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="Select.select-3032"><a href="#Select.select-3032"><span class="linenos">3032</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.select-3033"><a href="#Select.select-3033"><span class="linenos">3033</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Select.select-3034"><a href="#Select.select-3034"><span class="linenos">3034</span></a>
-</span><span id="Select.select-3035"><a href="#Select.select-3035"><span class="linenos">3035</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.select-3036"><a href="#Select.select-3036"><span class="linenos">3036</span></a><span class="sd"> The modified Select expression.</span>
-</span><span id="Select.select-3037"><a href="#Select.select-3037"><span class="linenos">3037</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.select-3038"><a href="#Select.select-3038"><span class="linenos">3038</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="Select.select-3039"><a href="#Select.select-3039"><span class="linenos">3039</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select.select-3040"><a href="#Select.select-3040"><span class="linenos">3040</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-3041"><a href="#Select.select-3041"><span class="linenos">3041</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-3042"><a href="#Select.select-3042"><span class="linenos">3042</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-3043"><a href="#Select.select-3043"><span class="linenos">3043</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-3044"><a href="#Select.select-3044"><span class="linenos">3044</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-3045"><a href="#Select.select-3045"><span class="linenos">3045</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.select-3046"><a href="#Select.select-3046"><span class="linenos">3046</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.select-3035"><a href="#Select.select-3035"><span class="linenos">3035</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
+</span><span id="Select.select-3036"><a href="#Select.select-3036"><span class="linenos">3036</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select.select-3037"><a href="#Select.select-3037"><span class="linenos">3037</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Select.select-3038"><a href="#Select.select-3038"><span class="linenos">3038</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-3039"><a href="#Select.select-3039"><span class="linenos">3039</span></a> <span class="n">dialect</span><span 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-3040"><a href="#Select.select-3040"><span class="linenos">3040</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-3041"><a href="#Select.select-3041"><span class="linenos">3041</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.select-3042"><a href="#Select.select-3042"><span class="linenos">3042</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-3043"><a href="#Select.select-3043"><span class="linenos">3043</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.select-3044"><a href="#Select.select-3044"><span class="linenos">3044</span></a><span class="sd"> Append to or set the SELECT expressions.</span>
+</span><span id="Select.select-3045"><a href="#Select.select-3045"><span class="linenos">3045</span></a>
+</span><span id="Select.select-3046"><a href="#Select.select-3046"><span class="linenos">3046</span></a><span class="sd"> Example:</span>
+</span><span id="Select.select-3047"><a href="#Select.select-3047"><span class="linenos">3047</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;, &quot;y&quot;).sql()</span>
+</span><span id="Select.select-3048"><a href="#Select.select-3048"><span class="linenos">3048</span></a><span class="sd"> &#39;SELECT x, y&#39;</span>
+</span><span id="Select.select-3049"><a href="#Select.select-3049"><span class="linenos">3049</span></a>
+</span><span id="Select.select-3050"><a href="#Select.select-3050"><span class="linenos">3050</span></a><span class="sd"> Args:</span>
+</span><span id="Select.select-3051"><a href="#Select.select-3051"><span class="linenos">3051</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Select.select-3052"><a href="#Select.select-3052"><span class="linenos">3052</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select.select-3053"><a href="#Select.select-3053"><span class="linenos">3053</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Select.select-3054"><a href="#Select.select-3054"><span class="linenos">3054</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="Select.select-3055"><a href="#Select.select-3055"><span class="linenos">3055</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Select.select-3056"><a href="#Select.select-3056"><span class="linenos">3056</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.select-3057"><a href="#Select.select-3057"><span class="linenos">3057</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select.select-3058"><a href="#Select.select-3058"><span class="linenos">3058</span></a>
+</span><span id="Select.select-3059"><a href="#Select.select-3059"><span class="linenos">3059</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.select-3060"><a href="#Select.select-3060"><span class="linenos">3060</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="Select.select-3061"><a href="#Select.select-3061"><span class="linenos">3061</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.select-3062"><a href="#Select.select-3062"><span class="linenos">3062</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="Select.select-3063"><a href="#Select.select-3063"><span class="linenos">3063</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select.select-3064"><a href="#Select.select-3064"><span class="linenos">3064</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-3065"><a href="#Select.select-3065"><span class="linenos">3065</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-3066"><a href="#Select.select-3066"><span class="linenos">3066</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-3067"><a href="#Select.select-3067"><span class="linenos">3067</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-3068"><a href="#Select.select-3068"><span class="linenos">3068</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-3069"><a href="#Select.select-3069"><span class="linenos">3069</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.select-3070"><a href="#Select.select-3070"><span class="linenos">3070</span></a> <span class="p">)</span>
</span></pre></div>
@@ -41774,44 +43805,44 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Select.lateral"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select.lateral-3048"><a href="#Select.lateral-3048"><span class="linenos">3048</span></a> <span class="k">def</span> <span class="nf">lateral</span><span class="p">(</span>
-</span><span id="Select.lateral-3049"><a href="#Select.lateral-3049"><span class="linenos">3049</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Select.lateral-3050"><a href="#Select.lateral-3050"><span class="linenos">3050</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Select.lateral-3051"><a href="#Select.lateral-3051"><span class="linenos">3051</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select.lateral-3052"><a href="#Select.lateral-3052"><span class="linenos">3052</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Select.lateral-3053"><a href="#Select.lateral-3053"><span class="linenos">3053</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select.lateral-3054"><a href="#Select.lateral-3054"><span class="linenos">3054</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.lateral-3055"><a href="#Select.lateral-3055"><span class="linenos">3055</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select.lateral-3056"><a href="#Select.lateral-3056"><span class="linenos">3056</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.lateral-3057"><a href="#Select.lateral-3057"><span class="linenos">3057</span></a><span class="sd"> Append to or set the LATERAL expressions.</span>
-</span><span id="Select.lateral-3058"><a href="#Select.lateral-3058"><span class="linenos">3058</span></a>
-</span><span id="Select.lateral-3059"><a href="#Select.lateral-3059"><span class="linenos">3059</span></a><span class="sd"> Example:</span>
-</span><span id="Select.lateral-3060"><a href="#Select.lateral-3060"><span class="linenos">3060</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-3061"><a href="#Select.lateral-3061"><span class="linenos">3061</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-3062"><a href="#Select.lateral-3062"><span class="linenos">3062</span></a>
-</span><span id="Select.lateral-3063"><a href="#Select.lateral-3063"><span class="linenos">3063</span></a><span class="sd"> Args:</span>
-</span><span id="Select.lateral-3064"><a href="#Select.lateral-3064"><span class="linenos">3064</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Select.lateral-3065"><a href="#Select.lateral-3065"><span class="linenos">3065</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select.lateral-3066"><a href="#Select.lateral-3066"><span class="linenos">3066</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="Select.lateral-3067"><a href="#Select.lateral-3067"><span class="linenos">3067</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="Select.lateral-3068"><a href="#Select.lateral-3068"><span class="linenos">3068</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="Select.lateral-3069"><a href="#Select.lateral-3069"><span class="linenos">3069</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.lateral-3070"><a href="#Select.lateral-3070"><span class="linenos">3070</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Select.lateral-3071"><a href="#Select.lateral-3071"><span class="linenos">3071</span></a>
-</span><span id="Select.lateral-3072"><a href="#Select.lateral-3072"><span class="linenos">3072</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.lateral-3073"><a href="#Select.lateral-3073"><span class="linenos">3073</span></a><span class="sd"> The modified Select expression.</span>
-</span><span id="Select.lateral-3074"><a href="#Select.lateral-3074"><span class="linenos">3074</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.lateral-3075"><a href="#Select.lateral-3075"><span class="linenos">3075</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="Select.lateral-3076"><a href="#Select.lateral-3076"><span class="linenos">3076</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select.lateral-3077"><a href="#Select.lateral-3077"><span class="linenos">3077</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-3078"><a href="#Select.lateral-3078"><span class="linenos">3078</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-3079"><a href="#Select.lateral-3079"><span class="linenos">3079</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-3080"><a href="#Select.lateral-3080"><span class="linenos">3080</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-3081"><a href="#Select.lateral-3081"><span class="linenos">3081</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-3082"><a href="#Select.lateral-3082"><span class="linenos">3082</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-3083"><a href="#Select.lateral-3083"><span class="linenos">3083</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-3084"><a href="#Select.lateral-3084"><span class="linenos">3084</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.lateral-3085"><a href="#Select.lateral-3085"><span class="linenos">3085</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.lateral-3072"><a href="#Select.lateral-3072"><span class="linenos">3072</span></a> <span class="k">def</span> <span class="nf">lateral</span><span class="p">(</span>
+</span><span id="Select.lateral-3073"><a href="#Select.lateral-3073"><span class="linenos">3073</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select.lateral-3074"><a href="#Select.lateral-3074"><span class="linenos">3074</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Select.lateral-3075"><a href="#Select.lateral-3075"><span class="linenos">3075</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select.lateral-3076"><a href="#Select.lateral-3076"><span class="linenos">3076</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Select.lateral-3077"><a href="#Select.lateral-3077"><span class="linenos">3077</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select.lateral-3078"><a href="#Select.lateral-3078"><span class="linenos">3078</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.lateral-3079"><a href="#Select.lateral-3079"><span class="linenos">3079</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select.lateral-3080"><a href="#Select.lateral-3080"><span class="linenos">3080</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.lateral-3081"><a href="#Select.lateral-3081"><span class="linenos">3081</span></a><span class="sd"> Append to or set the LATERAL expressions.</span>
+</span><span id="Select.lateral-3082"><a href="#Select.lateral-3082"><span class="linenos">3082</span></a>
+</span><span id="Select.lateral-3083"><a href="#Select.lateral-3083"><span class="linenos">3083</span></a><span class="sd"> Example:</span>
+</span><span id="Select.lateral-3084"><a href="#Select.lateral-3084"><span class="linenos">3084</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-3085"><a href="#Select.lateral-3085"><span class="linenos">3085</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-3086"><a href="#Select.lateral-3086"><span class="linenos">3086</span></a>
+</span><span id="Select.lateral-3087"><a href="#Select.lateral-3087"><span class="linenos">3087</span></a><span class="sd"> Args:</span>
+</span><span id="Select.lateral-3088"><a href="#Select.lateral-3088"><span class="linenos">3088</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Select.lateral-3089"><a href="#Select.lateral-3089"><span class="linenos">3089</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select.lateral-3090"><a href="#Select.lateral-3090"><span class="linenos">3090</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Select.lateral-3091"><a href="#Select.lateral-3091"><span class="linenos">3091</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="Select.lateral-3092"><a href="#Select.lateral-3092"><span class="linenos">3092</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Select.lateral-3093"><a href="#Select.lateral-3093"><span class="linenos">3093</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.lateral-3094"><a href="#Select.lateral-3094"><span class="linenos">3094</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select.lateral-3095"><a href="#Select.lateral-3095"><span class="linenos">3095</span></a>
+</span><span id="Select.lateral-3096"><a href="#Select.lateral-3096"><span class="linenos">3096</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.lateral-3097"><a href="#Select.lateral-3097"><span class="linenos">3097</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="Select.lateral-3098"><a href="#Select.lateral-3098"><span class="linenos">3098</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.lateral-3099"><a href="#Select.lateral-3099"><span class="linenos">3099</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="Select.lateral-3100"><a href="#Select.lateral-3100"><span class="linenos">3100</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select.lateral-3101"><a href="#Select.lateral-3101"><span class="linenos">3101</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-3102"><a href="#Select.lateral-3102"><span class="linenos">3102</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-3103"><a href="#Select.lateral-3103"><span class="linenos">3103</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-3104"><a href="#Select.lateral-3104"><span class="linenos">3104</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-3105"><a href="#Select.lateral-3105"><span class="linenos">3105</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-3106"><a href="#Select.lateral-3106"><span class="linenos">3106</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-3107"><a href="#Select.lateral-3107"><span class="linenos">3107</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-3108"><a href="#Select.lateral-3108"><span class="linenos">3108</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.lateral-3109"><a href="#Select.lateral-3109"><span class="linenos">3109</span></a> <span class="p">)</span>
</span></pre></div>
@@ -41859,103 +43890,103 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Select.join"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select.join-3087"><a href="#Select.join-3087"><span class="linenos">3087</span></a> <span class="k">def</span> <span class="nf">join</span><span class="p">(</span>
-</span><span id="Select.join-3088"><a href="#Select.join-3088"><span class="linenos">3088</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Select.join-3089"><a href="#Select.join-3089"><span class="linenos">3089</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="Select.join-3090"><a href="#Select.join-3090"><span class="linenos">3090</span></a> <span class="n">on</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Select.join-3091"><a href="#Select.join-3091"><span class="linenos">3091</span></a> <span class="n">using</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Collection</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Select.join-3092"><a href="#Select.join-3092"><span class="linenos">3092</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select.join-3093"><a href="#Select.join-3093"><span class="linenos">3093</span></a> <span class="n">join_type</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Select.join-3094"><a href="#Select.join-3094"><span class="linenos">3094</span></a> <span class="n">join_alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Select.join-3095"><a href="#Select.join-3095"><span class="linenos">3095</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Select.join-3096"><a href="#Select.join-3096"><span class="linenos">3096</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select.join-3097"><a href="#Select.join-3097"><span class="linenos">3097</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.join-3098"><a href="#Select.join-3098"><span class="linenos">3098</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select.join-3099"><a href="#Select.join-3099"><span class="linenos">3099</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.join-3100"><a href="#Select.join-3100"><span class="linenos">3100</span></a><span class="sd"> Append to or set the JOIN expressions.</span>
-</span><span id="Select.join-3101"><a href="#Select.join-3101"><span class="linenos">3101</span></a>
-</span><span id="Select.join-3102"><a href="#Select.join-3102"><span class="linenos">3102</span></a><span class="sd"> Example:</span>
-</span><span id="Select.join-3103"><a href="#Select.join-3103"><span class="linenos">3103</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-3104"><a href="#Select.join-3104"><span class="linenos">3104</span></a><span class="sd"> &#39;SELECT * FROM tbl JOIN tbl2 ON tbl1.y = tbl2.y&#39;</span>
-</span><span id="Select.join-3105"><a href="#Select.join-3105"><span class="linenos">3105</span></a>
-</span><span id="Select.join-3106"><a href="#Select.join-3106"><span class="linenos">3106</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-3107"><a href="#Select.join-3107"><span class="linenos">3107</span></a><span class="sd"> &#39;SELECT 1 FROM a JOIN b USING (x, y, z)&#39;</span>
-</span><span id="Select.join-3108"><a href="#Select.join-3108"><span class="linenos">3108</span></a>
-</span><span id="Select.join-3109"><a href="#Select.join-3109"><span class="linenos">3109</span></a><span class="sd"> Use `join_type` to change the type of join:</span>
-</span><span id="Select.join-3110"><a href="#Select.join-3110"><span class="linenos">3110</span></a>
-</span><span id="Select.join-3111"><a href="#Select.join-3111"><span class="linenos">3111</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-3112"><a href="#Select.join-3112"><span class="linenos">3112</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-3113"><a href="#Select.join-3113"><span class="linenos">3113</span></a>
-</span><span id="Select.join-3114"><a href="#Select.join-3114"><span class="linenos">3114</span></a><span class="sd"> Args:</span>
-</span><span id="Select.join-3115"><a href="#Select.join-3115"><span class="linenos">3115</span></a><span class="sd"> expression: the SQL code string to parse.</span>
-</span><span id="Select.join-3116"><a href="#Select.join-3116"><span class="linenos">3116</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select.join-3117"><a href="#Select.join-3117"><span class="linenos">3117</span></a><span class="sd"> on: optionally specify the join &quot;on&quot; criteria as a SQL string.</span>
-</span><span id="Select.join-3118"><a href="#Select.join-3118"><span class="linenos">3118</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select.join-3119"><a href="#Select.join-3119"><span class="linenos">3119</span></a><span class="sd"> using: optionally specify the join &quot;using&quot; criteria as a SQL string.</span>
-</span><span id="Select.join-3120"><a href="#Select.join-3120"><span class="linenos">3120</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select.join-3121"><a href="#Select.join-3121"><span class="linenos">3121</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="Select.join-3122"><a href="#Select.join-3122"><span class="linenos">3122</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="Select.join-3123"><a href="#Select.join-3123"><span class="linenos">3123</span></a><span class="sd"> join_type: if set, alter the parsed join type.</span>
-</span><span id="Select.join-3124"><a href="#Select.join-3124"><span class="linenos">3124</span></a><span class="sd"> join_alias: an optional alias for the joined source.</span>
-</span><span id="Select.join-3125"><a href="#Select.join-3125"><span class="linenos">3125</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="Select.join-3126"><a href="#Select.join-3126"><span class="linenos">3126</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.join-3127"><a href="#Select.join-3127"><span class="linenos">3127</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Select.join-3128"><a href="#Select.join-3128"><span class="linenos">3128</span></a>
-</span><span id="Select.join-3129"><a href="#Select.join-3129"><span class="linenos">3129</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.join-3130"><a href="#Select.join-3130"><span class="linenos">3130</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select.join-3131"><a href="#Select.join-3131"><span class="linenos">3131</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.join-3132"><a href="#Select.join-3132"><span class="linenos">3132</span></a> <span class="n">parse_args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;dialect&quot;</span><span class="p">:</span> <span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">}</span>
-</span><span id="Select.join-3133"><a href="#Select.join-3133"><span class="linenos">3133</span></a>
-</span><span id="Select.join-3134"><a href="#Select.join-3134"><span class="linenos">3134</span></a> <span class="k">try</span><span class="p">:</span>
-</span><span id="Select.join-3135"><a href="#Select.join-3135"><span class="linenos">3135</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-3136"><a href="#Select.join-3136"><span class="linenos">3136</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span>
-</span><span id="Select.join-3137"><a href="#Select.join-3137"><span class="linenos">3137</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-3138"><a href="#Select.join-3138"><span class="linenos">3138</span></a>
-</span><span id="Select.join-3139"><a href="#Select.join-3139"><span class="linenos">3139</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-3140"><a href="#Select.join-3140"><span class="linenos">3140</span></a>
-</span><span id="Select.join-3141"><a href="#Select.join-3141"><span class="linenos">3141</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-3142"><a href="#Select.join-3142"><span class="linenos">3142</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-3143"><a href="#Select.join-3143"><span class="linenos">3143</span></a>
-</span><span id="Select.join-3144"><a href="#Select.join-3144"><span class="linenos">3144</span></a> <span class="k">if</span> <span class="n">join_type</span><span class="p">:</span>
-</span><span id="Select.join-3145"><a href="#Select.join-3145"><span class="linenos">3145</span></a> <span class="n">method</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">]</span>
-</span><span id="Select.join-3146"><a href="#Select.join-3146"><span class="linenos">3146</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-3147"><a href="#Select.join-3147"><span class="linenos">3147</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-3148"><a href="#Select.join-3148"><span class="linenos">3148</span></a>
-</span><span id="Select.join-3149"><a href="#Select.join-3149"><span class="linenos">3149</span></a> <span class="n">method</span><span class="p">,</span> <span class="n">side</span><span class="p">,</span> <span class="n">kind</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">join_type</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="s2">&quot;JOIN_TYPE&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span> <span class="c1"># type: ignore</span>
-</span><span id="Select.join-3150"><a href="#Select.join-3150"><span class="linenos">3150</span></a>
-</span><span id="Select.join-3151"><a href="#Select.join-3151"><span class="linenos">3151</span></a> <span class="k">if</span> <span class="n">method</span><span class="p">:</span>
-</span><span id="Select.join-3152"><a href="#Select.join-3152"><span class="linenos">3152</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;method&quot;</span><span class="p">,</span> <span class="n">method</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
-</span><span id="Select.join-3153"><a href="#Select.join-3153"><span class="linenos">3153</span></a> <span class="k">if</span> <span class="n">side</span><span class="p">:</span>
-</span><span id="Select.join-3154"><a href="#Select.join-3154"><span class="linenos">3154</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-3155"><a href="#Select.join-3155"><span class="linenos">3155</span></a> <span class="k">if</span> <span class="n">kind</span><span class="p">:</span>
-</span><span id="Select.join-3156"><a href="#Select.join-3156"><span class="linenos">3156</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.join-3111"><a href="#Select.join-3111"><span class="linenos">3111</span></a> <span class="k">def</span> <span class="nf">join</span><span class="p">(</span>
+</span><span id="Select.join-3112"><a href="#Select.join-3112"><span class="linenos">3112</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select.join-3113"><a href="#Select.join-3113"><span class="linenos">3113</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="Select.join-3114"><a href="#Select.join-3114"><span class="linenos">3114</span></a> <span class="n">on</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Select.join-3115"><a href="#Select.join-3115"><span class="linenos">3115</span></a> <span class="n">using</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Collection</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Select.join-3116"><a href="#Select.join-3116"><span class="linenos">3116</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select.join-3117"><a href="#Select.join-3117"><span class="linenos">3117</span></a> <span class="n">join_type</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Select.join-3118"><a href="#Select.join-3118"><span class="linenos">3118</span></a> <span class="n">join_alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Select.join-3119"><a href="#Select.join-3119"><span class="linenos">3119</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Select.join-3120"><a href="#Select.join-3120"><span class="linenos">3120</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select.join-3121"><a href="#Select.join-3121"><span class="linenos">3121</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.join-3122"><a href="#Select.join-3122"><span class="linenos">3122</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-3123"><a href="#Select.join-3123"><span class="linenos">3123</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.join-3124"><a href="#Select.join-3124"><span class="linenos">3124</span></a><span class="sd"> Append to or set the JOIN expressions.</span>
+</span><span id="Select.join-3125"><a href="#Select.join-3125"><span class="linenos">3125</span></a>
+</span><span id="Select.join-3126"><a href="#Select.join-3126"><span class="linenos">3126</span></a><span class="sd"> Example:</span>
+</span><span id="Select.join-3127"><a href="#Select.join-3127"><span class="linenos">3127</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-3128"><a href="#Select.join-3128"><span class="linenos">3128</span></a><span class="sd"> &#39;SELECT * FROM tbl JOIN tbl2 ON tbl1.y = tbl2.y&#39;</span>
+</span><span id="Select.join-3129"><a href="#Select.join-3129"><span class="linenos">3129</span></a>
+</span><span id="Select.join-3130"><a href="#Select.join-3130"><span class="linenos">3130</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-3131"><a href="#Select.join-3131"><span class="linenos">3131</span></a><span class="sd"> &#39;SELECT 1 FROM a JOIN b USING (x, y, z)&#39;</span>
+</span><span id="Select.join-3132"><a href="#Select.join-3132"><span class="linenos">3132</span></a>
+</span><span id="Select.join-3133"><a href="#Select.join-3133"><span class="linenos">3133</span></a><span class="sd"> Use `join_type` to change the type of join:</span>
+</span><span id="Select.join-3134"><a href="#Select.join-3134"><span class="linenos">3134</span></a>
+</span><span id="Select.join-3135"><a href="#Select.join-3135"><span class="linenos">3135</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-3136"><a href="#Select.join-3136"><span class="linenos">3136</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-3137"><a href="#Select.join-3137"><span class="linenos">3137</span></a>
+</span><span id="Select.join-3138"><a href="#Select.join-3138"><span class="linenos">3138</span></a><span class="sd"> Args:</span>
+</span><span id="Select.join-3139"><a href="#Select.join-3139"><span class="linenos">3139</span></a><span class="sd"> expression: the SQL code string to parse.</span>
+</span><span id="Select.join-3140"><a href="#Select.join-3140"><span class="linenos">3140</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select.join-3141"><a href="#Select.join-3141"><span class="linenos">3141</span></a><span class="sd"> on: optionally specify the join &quot;on&quot; criteria as a SQL string.</span>
+</span><span id="Select.join-3142"><a href="#Select.join-3142"><span class="linenos">3142</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select.join-3143"><a href="#Select.join-3143"><span class="linenos">3143</span></a><span class="sd"> using: optionally specify the join &quot;using&quot; criteria as a SQL string.</span>
+</span><span id="Select.join-3144"><a href="#Select.join-3144"><span class="linenos">3144</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select.join-3145"><a href="#Select.join-3145"><span class="linenos">3145</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Select.join-3146"><a href="#Select.join-3146"><span class="linenos">3146</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="Select.join-3147"><a href="#Select.join-3147"><span class="linenos">3147</span></a><span class="sd"> join_type: if set, alter the parsed join type.</span>
+</span><span id="Select.join-3148"><a href="#Select.join-3148"><span class="linenos">3148</span></a><span class="sd"> join_alias: an optional alias for the joined source.</span>
+</span><span id="Select.join-3149"><a href="#Select.join-3149"><span class="linenos">3149</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Select.join-3150"><a href="#Select.join-3150"><span class="linenos">3150</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.join-3151"><a href="#Select.join-3151"><span class="linenos">3151</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select.join-3152"><a href="#Select.join-3152"><span class="linenos">3152</span></a>
+</span><span id="Select.join-3153"><a href="#Select.join-3153"><span class="linenos">3153</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.join-3154"><a href="#Select.join-3154"><span class="linenos">3154</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="Select.join-3155"><a href="#Select.join-3155"><span class="linenos">3155</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.join-3156"><a href="#Select.join-3156"><span class="linenos">3156</span></a> <span class="n">parse_args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;dialect&quot;</span><span class="p">:</span> <span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">}</span>
</span><span id="Select.join-3157"><a href="#Select.join-3157"><span class="linenos">3157</span></a>
-</span><span id="Select.join-3158"><a href="#Select.join-3158"><span class="linenos">3158</span></a> <span class="k">if</span> <span class="n">on</span><span class="p">:</span>
-</span><span id="Select.join-3159"><a href="#Select.join-3159"><span class="linenos">3159</span></a> <span class="n">on</span> <span class="o">=</span> <span class="n">and_</span><span class="p">(</span><span class="o">*</span><span class="n">ensure_list</span><span class="p">(</span><span class="n">on</span><span class="p">),</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="Select.join-3160"><a href="#Select.join-3160"><span class="linenos">3160</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-3161"><a href="#Select.join-3161"><span class="linenos">3161</span></a>
-</span><span id="Select.join-3162"><a href="#Select.join-3162"><span class="linenos">3162</span></a> <span class="k">if</span> <span class="n">using</span><span class="p">:</span>
-</span><span id="Select.join-3163"><a href="#Select.join-3163"><span class="linenos">3163</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-3164"><a href="#Select.join-3164"><span class="linenos">3164</span></a> <span class="o">*</span><span class="n">ensure_list</span><span class="p">(</span><span class="n">using</span><span class="p">),</span>
-</span><span id="Select.join-3165"><a href="#Select.join-3165"><span class="linenos">3165</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-3166"><a href="#Select.join-3166"><span class="linenos">3166</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-3167"><a href="#Select.join-3167"><span class="linenos">3167</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-3168"><a href="#Select.join-3168"><span class="linenos">3168</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-3169"><a href="#Select.join-3169"><span class="linenos">3169</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Identifier</span><span class="p">,</span>
-</span><span id="Select.join-3170"><a href="#Select.join-3170"><span class="linenos">3170</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.join-3171"><a href="#Select.join-3171"><span class="linenos">3171</span></a> <span class="p">)</span>
+</span><span id="Select.join-3158"><a href="#Select.join-3158"><span class="linenos">3158</span></a> <span class="k">try</span><span class="p">:</span>
+</span><span id="Select.join-3159"><a href="#Select.join-3159"><span class="linenos">3159</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-3160"><a href="#Select.join-3160"><span class="linenos">3160</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span>
+</span><span id="Select.join-3161"><a href="#Select.join-3161"><span class="linenos">3161</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-3162"><a href="#Select.join-3162"><span class="linenos">3162</span></a>
+</span><span id="Select.join-3163"><a href="#Select.join-3163"><span class="linenos">3163</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-3164"><a href="#Select.join-3164"><span class="linenos">3164</span></a>
+</span><span id="Select.join-3165"><a href="#Select.join-3165"><span class="linenos">3165</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-3166"><a href="#Select.join-3166"><span class="linenos">3166</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-3167"><a href="#Select.join-3167"><span class="linenos">3167</span></a>
+</span><span id="Select.join-3168"><a href="#Select.join-3168"><span class="linenos">3168</span></a> <span class="k">if</span> <span class="n">join_type</span><span class="p">:</span>
+</span><span id="Select.join-3169"><a href="#Select.join-3169"><span class="linenos">3169</span></a> <span class="n">method</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">]</span>
+</span><span id="Select.join-3170"><a href="#Select.join-3170"><span class="linenos">3170</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-3171"><a href="#Select.join-3171"><span class="linenos">3171</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-3172"><a href="#Select.join-3172"><span class="linenos">3172</span></a>
-</span><span id="Select.join-3173"><a href="#Select.join-3173"><span class="linenos">3173</span></a> <span class="k">if</span> <span class="n">join_alias</span><span class="p">:</span>
-</span><span id="Select.join-3174"><a href="#Select.join-3174"><span class="linenos">3174</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-3175"><a href="#Select.join-3175"><span class="linenos">3175</span></a>
-</span><span id="Select.join-3176"><a href="#Select.join-3176"><span class="linenos">3176</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="Select.join-3177"><a href="#Select.join-3177"><span class="linenos">3177</span></a> <span class="n">join</span><span class="p">,</span>
-</span><span id="Select.join-3178"><a href="#Select.join-3178"><span class="linenos">3178</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-3179"><a href="#Select.join-3179"><span class="linenos">3179</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-3180"><a href="#Select.join-3180"><span class="linenos">3180</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-3181"><a href="#Select.join-3181"><span class="linenos">3181</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-3182"><a href="#Select.join-3182"><span class="linenos">3182</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.join-3183"><a href="#Select.join-3183"><span class="linenos">3183</span></a> <span class="p">)</span>
+</span><span id="Select.join-3173"><a href="#Select.join-3173"><span class="linenos">3173</span></a> <span class="n">method</span><span class="p">,</span> <span class="n">side</span><span class="p">,</span> <span class="n">kind</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">join_type</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="s2">&quot;JOIN_TYPE&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span> <span class="c1"># type: ignore</span>
+</span><span id="Select.join-3174"><a href="#Select.join-3174"><span class="linenos">3174</span></a>
+</span><span id="Select.join-3175"><a href="#Select.join-3175"><span class="linenos">3175</span></a> <span class="k">if</span> <span class="n">method</span><span class="p">:</span>
+</span><span id="Select.join-3176"><a href="#Select.join-3176"><span class="linenos">3176</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;method&quot;</span><span class="p">,</span> <span class="n">method</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
+</span><span id="Select.join-3177"><a href="#Select.join-3177"><span class="linenos">3177</span></a> <span class="k">if</span> <span class="n">side</span><span class="p">:</span>
+</span><span id="Select.join-3178"><a href="#Select.join-3178"><span class="linenos">3178</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-3179"><a href="#Select.join-3179"><span class="linenos">3179</span></a> <span class="k">if</span> <span class="n">kind</span><span class="p">:</span>
+</span><span id="Select.join-3180"><a href="#Select.join-3180"><span class="linenos">3180</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-3181"><a href="#Select.join-3181"><span class="linenos">3181</span></a>
+</span><span id="Select.join-3182"><a href="#Select.join-3182"><span class="linenos">3182</span></a> <span class="k">if</span> <span class="n">on</span><span class="p">:</span>
+</span><span id="Select.join-3183"><a href="#Select.join-3183"><span class="linenos">3183</span></a> <span class="n">on</span> <span class="o">=</span> <span class="n">and_</span><span class="p">(</span><span class="o">*</span><span class="n">ensure_list</span><span class="p">(</span><span class="n">on</span><span class="p">),</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="Select.join-3184"><a href="#Select.join-3184"><span class="linenos">3184</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-3185"><a href="#Select.join-3185"><span class="linenos">3185</span></a>
+</span><span id="Select.join-3186"><a href="#Select.join-3186"><span class="linenos">3186</span></a> <span class="k">if</span> <span class="n">using</span><span class="p">:</span>
+</span><span id="Select.join-3187"><a href="#Select.join-3187"><span class="linenos">3187</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-3188"><a href="#Select.join-3188"><span class="linenos">3188</span></a> <span class="o">*</span><span class="n">ensure_list</span><span class="p">(</span><span class="n">using</span><span class="p">),</span>
+</span><span id="Select.join-3189"><a href="#Select.join-3189"><span class="linenos">3189</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-3190"><a href="#Select.join-3190"><span class="linenos">3190</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-3191"><a href="#Select.join-3191"><span class="linenos">3191</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-3192"><a href="#Select.join-3192"><span class="linenos">3192</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-3193"><a href="#Select.join-3193"><span class="linenos">3193</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Identifier</span><span class="p">,</span>
+</span><span id="Select.join-3194"><a href="#Select.join-3194"><span class="linenos">3194</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.join-3195"><a href="#Select.join-3195"><span class="linenos">3195</span></a> <span class="p">)</span>
+</span><span id="Select.join-3196"><a href="#Select.join-3196"><span class="linenos">3196</span></a>
+</span><span id="Select.join-3197"><a href="#Select.join-3197"><span class="linenos">3197</span></a> <span class="k">if</span> <span class="n">join_alias</span><span class="p">:</span>
+</span><span id="Select.join-3198"><a href="#Select.join-3198"><span class="linenos">3198</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-3199"><a href="#Select.join-3199"><span class="linenos">3199</span></a>
+</span><span id="Select.join-3200"><a href="#Select.join-3200"><span class="linenos">3200</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="Select.join-3201"><a href="#Select.join-3201"><span class="linenos">3201</span></a> <span class="n">join</span><span class="p">,</span>
+</span><span id="Select.join-3202"><a href="#Select.join-3202"><span class="linenos">3202</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select.join-3203"><a href="#Select.join-3203"><span class="linenos">3203</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-3204"><a href="#Select.join-3204"><span class="linenos">3204</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select.join-3205"><a href="#Select.join-3205"><span class="linenos">3205</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select.join-3206"><a href="#Select.join-3206"><span class="linenos">3206</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.join-3207"><a href="#Select.join-3207"><span class="linenos">3207</span></a> <span class="p">)</span>
</span></pre></div>
@@ -42023,44 +44054,44 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Select.where"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select.where-3185"><a href="#Select.where-3185"><span class="linenos">3185</span></a> <span class="k">def</span> <span class="nf">where</span><span class="p">(</span>
-</span><span id="Select.where-3186"><a href="#Select.where-3186"><span class="linenos">3186</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Select.where-3187"><a href="#Select.where-3187"><span class="linenos">3187</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Select.where-3188"><a href="#Select.where-3188"><span class="linenos">3188</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select.where-3189"><a href="#Select.where-3189"><span class="linenos">3189</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Select.where-3190"><a href="#Select.where-3190"><span class="linenos">3190</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select.where-3191"><a href="#Select.where-3191"><span class="linenos">3191</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.where-3192"><a href="#Select.where-3192"><span class="linenos">3192</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select.where-3193"><a href="#Select.where-3193"><span class="linenos">3193</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.where-3194"><a href="#Select.where-3194"><span class="linenos">3194</span></a><span class="sd"> Append to or set the WHERE expressions.</span>
-</span><span id="Select.where-3195"><a href="#Select.where-3195"><span class="linenos">3195</span></a>
-</span><span id="Select.where-3196"><a href="#Select.where-3196"><span class="linenos">3196</span></a><span class="sd"> Example:</span>
-</span><span id="Select.where-3197"><a href="#Select.where-3197"><span class="linenos">3197</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-3198"><a href="#Select.where-3198"><span class="linenos">3198</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-3199"><a href="#Select.where-3199"><span class="linenos">3199</span></a>
-</span><span id="Select.where-3200"><a href="#Select.where-3200"><span class="linenos">3200</span></a><span class="sd"> Args:</span>
-</span><span id="Select.where-3201"><a href="#Select.where-3201"><span class="linenos">3201</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Select.where-3202"><a href="#Select.where-3202"><span class="linenos">3202</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select.where-3203"><a href="#Select.where-3203"><span class="linenos">3203</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
-</span><span id="Select.where-3204"><a href="#Select.where-3204"><span class="linenos">3204</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
-</span><span id="Select.where-3205"><a href="#Select.where-3205"><span class="linenos">3205</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="Select.where-3206"><a href="#Select.where-3206"><span class="linenos">3206</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="Select.where-3207"><a href="#Select.where-3207"><span class="linenos">3207</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.where-3208"><a href="#Select.where-3208"><span class="linenos">3208</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Select.where-3209"><a href="#Select.where-3209"><span class="linenos">3209</span></a>
-</span><span id="Select.where-3210"><a href="#Select.where-3210"><span class="linenos">3210</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.where-3211"><a href="#Select.where-3211"><span class="linenos">3211</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select.where-3212"><a href="#Select.where-3212"><span class="linenos">3212</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.where-3213"><a href="#Select.where-3213"><span class="linenos">3213</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="Select.where-3214"><a href="#Select.where-3214"><span class="linenos">3214</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select.where-3215"><a href="#Select.where-3215"><span class="linenos">3215</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-3216"><a href="#Select.where-3216"><span class="linenos">3216</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-3217"><a href="#Select.where-3217"><span class="linenos">3217</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-3218"><a href="#Select.where-3218"><span class="linenos">3218</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-3219"><a href="#Select.where-3219"><span class="linenos">3219</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-3220"><a href="#Select.where-3220"><span class="linenos">3220</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-3221"><a href="#Select.where-3221"><span class="linenos">3221</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.where-3222"><a href="#Select.where-3222"><span class="linenos">3222</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.where-3209"><a href="#Select.where-3209"><span class="linenos">3209</span></a> <span class="k">def</span> <span class="nf">where</span><span class="p">(</span>
+</span><span id="Select.where-3210"><a href="#Select.where-3210"><span class="linenos">3210</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select.where-3211"><a href="#Select.where-3211"><span class="linenos">3211</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Select.where-3212"><a href="#Select.where-3212"><span class="linenos">3212</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select.where-3213"><a href="#Select.where-3213"><span class="linenos">3213</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Select.where-3214"><a href="#Select.where-3214"><span class="linenos">3214</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select.where-3215"><a href="#Select.where-3215"><span class="linenos">3215</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.where-3216"><a href="#Select.where-3216"><span class="linenos">3216</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select.where-3217"><a href="#Select.where-3217"><span class="linenos">3217</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.where-3218"><a href="#Select.where-3218"><span class="linenos">3218</span></a><span class="sd"> Append to or set the WHERE expressions.</span>
+</span><span id="Select.where-3219"><a href="#Select.where-3219"><span class="linenos">3219</span></a>
+</span><span id="Select.where-3220"><a href="#Select.where-3220"><span class="linenos">3220</span></a><span class="sd"> Example:</span>
+</span><span id="Select.where-3221"><a href="#Select.where-3221"><span class="linenos">3221</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-3222"><a href="#Select.where-3222"><span class="linenos">3222</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-3223"><a href="#Select.where-3223"><span class="linenos">3223</span></a>
+</span><span id="Select.where-3224"><a href="#Select.where-3224"><span class="linenos">3224</span></a><span class="sd"> Args:</span>
+</span><span id="Select.where-3225"><a href="#Select.where-3225"><span class="linenos">3225</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Select.where-3226"><a href="#Select.where-3226"><span class="linenos">3226</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select.where-3227"><a href="#Select.where-3227"><span class="linenos">3227</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
+</span><span id="Select.where-3228"><a href="#Select.where-3228"><span class="linenos">3228</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
+</span><span id="Select.where-3229"><a href="#Select.where-3229"><span class="linenos">3229</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="Select.where-3230"><a href="#Select.where-3230"><span class="linenos">3230</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Select.where-3231"><a href="#Select.where-3231"><span class="linenos">3231</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.where-3232"><a href="#Select.where-3232"><span class="linenos">3232</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select.where-3233"><a href="#Select.where-3233"><span class="linenos">3233</span></a>
+</span><span id="Select.where-3234"><a href="#Select.where-3234"><span class="linenos">3234</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.where-3235"><a href="#Select.where-3235"><span class="linenos">3235</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="Select.where-3236"><a href="#Select.where-3236"><span class="linenos">3236</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.where-3237"><a href="#Select.where-3237"><span class="linenos">3237</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="Select.where-3238"><a href="#Select.where-3238"><span class="linenos">3238</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select.where-3239"><a href="#Select.where-3239"><span class="linenos">3239</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-3240"><a href="#Select.where-3240"><span class="linenos">3240</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-3241"><a href="#Select.where-3241"><span class="linenos">3241</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-3242"><a href="#Select.where-3242"><span class="linenos">3242</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-3243"><a href="#Select.where-3243"><span class="linenos">3243</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-3244"><a href="#Select.where-3244"><span class="linenos">3244</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-3245"><a href="#Select.where-3245"><span class="linenos">3245</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.where-3246"><a href="#Select.where-3246"><span class="linenos">3246</span></a> <span class="p">)</span>
</span></pre></div>
@@ -42109,44 +44140,44 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Select.having"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select.having-3224"><a href="#Select.having-3224"><span class="linenos">3224</span></a> <span class="k">def</span> <span class="nf">having</span><span class="p">(</span>
-</span><span id="Select.having-3225"><a href="#Select.having-3225"><span class="linenos">3225</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Select.having-3226"><a href="#Select.having-3226"><span class="linenos">3226</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Select.having-3227"><a href="#Select.having-3227"><span class="linenos">3227</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select.having-3228"><a href="#Select.having-3228"><span class="linenos">3228</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Select.having-3229"><a href="#Select.having-3229"><span class="linenos">3229</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select.having-3230"><a href="#Select.having-3230"><span class="linenos">3230</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.having-3231"><a href="#Select.having-3231"><span class="linenos">3231</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select.having-3232"><a href="#Select.having-3232"><span class="linenos">3232</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.having-3233"><a href="#Select.having-3233"><span class="linenos">3233</span></a><span class="sd"> Append to or set the HAVING expressions.</span>
-</span><span id="Select.having-3234"><a href="#Select.having-3234"><span class="linenos">3234</span></a>
-</span><span id="Select.having-3235"><a href="#Select.having-3235"><span class="linenos">3235</span></a><span class="sd"> Example:</span>
-</span><span id="Select.having-3236"><a href="#Select.having-3236"><span class="linenos">3236</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-3237"><a href="#Select.having-3237"><span class="linenos">3237</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-3238"><a href="#Select.having-3238"><span class="linenos">3238</span></a>
-</span><span id="Select.having-3239"><a href="#Select.having-3239"><span class="linenos">3239</span></a><span class="sd"> Args:</span>
-</span><span id="Select.having-3240"><a href="#Select.having-3240"><span class="linenos">3240</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Select.having-3241"><a href="#Select.having-3241"><span class="linenos">3241</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select.having-3242"><a href="#Select.having-3242"><span class="linenos">3242</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
-</span><span id="Select.having-3243"><a href="#Select.having-3243"><span class="linenos">3243</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
-</span><span id="Select.having-3244"><a href="#Select.having-3244"><span class="linenos">3244</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="Select.having-3245"><a href="#Select.having-3245"><span class="linenos">3245</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="Select.having-3246"><a href="#Select.having-3246"><span class="linenos">3246</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.having-3247"><a href="#Select.having-3247"><span class="linenos">3247</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Select.having-3248"><a href="#Select.having-3248"><span class="linenos">3248</span></a>
-</span><span id="Select.having-3249"><a href="#Select.having-3249"><span class="linenos">3249</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.having-3250"><a href="#Select.having-3250"><span class="linenos">3250</span></a><span class="sd"> The modified Select expression.</span>
-</span><span id="Select.having-3251"><a href="#Select.having-3251"><span class="linenos">3251</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.having-3252"><a href="#Select.having-3252"><span class="linenos">3252</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="Select.having-3253"><a href="#Select.having-3253"><span class="linenos">3253</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select.having-3254"><a href="#Select.having-3254"><span class="linenos">3254</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-3255"><a href="#Select.having-3255"><span class="linenos">3255</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-3256"><a href="#Select.having-3256"><span class="linenos">3256</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-3257"><a href="#Select.having-3257"><span class="linenos">3257</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-3258"><a href="#Select.having-3258"><span class="linenos">3258</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-3259"><a href="#Select.having-3259"><span class="linenos">3259</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-3260"><a href="#Select.having-3260"><span class="linenos">3260</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.having-3261"><a href="#Select.having-3261"><span class="linenos">3261</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.having-3248"><a href="#Select.having-3248"><span class="linenos">3248</span></a> <span class="k">def</span> <span class="nf">having</span><span class="p">(</span>
+</span><span id="Select.having-3249"><a href="#Select.having-3249"><span class="linenos">3249</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select.having-3250"><a href="#Select.having-3250"><span class="linenos">3250</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Select.having-3251"><a href="#Select.having-3251"><span class="linenos">3251</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select.having-3252"><a href="#Select.having-3252"><span class="linenos">3252</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Select.having-3253"><a href="#Select.having-3253"><span class="linenos">3253</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select.having-3254"><a href="#Select.having-3254"><span class="linenos">3254</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.having-3255"><a href="#Select.having-3255"><span class="linenos">3255</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select.having-3256"><a href="#Select.having-3256"><span class="linenos">3256</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.having-3257"><a href="#Select.having-3257"><span class="linenos">3257</span></a><span class="sd"> Append to or set the HAVING expressions.</span>
+</span><span id="Select.having-3258"><a href="#Select.having-3258"><span class="linenos">3258</span></a>
+</span><span id="Select.having-3259"><a href="#Select.having-3259"><span class="linenos">3259</span></a><span class="sd"> Example:</span>
+</span><span id="Select.having-3260"><a href="#Select.having-3260"><span class="linenos">3260</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-3261"><a href="#Select.having-3261"><span class="linenos">3261</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-3262"><a href="#Select.having-3262"><span class="linenos">3262</span></a>
+</span><span id="Select.having-3263"><a href="#Select.having-3263"><span class="linenos">3263</span></a><span class="sd"> Args:</span>
+</span><span id="Select.having-3264"><a href="#Select.having-3264"><span class="linenos">3264</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Select.having-3265"><a href="#Select.having-3265"><span class="linenos">3265</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select.having-3266"><a href="#Select.having-3266"><span class="linenos">3266</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
+</span><span id="Select.having-3267"><a href="#Select.having-3267"><span class="linenos">3267</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
+</span><span id="Select.having-3268"><a href="#Select.having-3268"><span class="linenos">3268</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="Select.having-3269"><a href="#Select.having-3269"><span class="linenos">3269</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Select.having-3270"><a href="#Select.having-3270"><span class="linenos">3270</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.having-3271"><a href="#Select.having-3271"><span class="linenos">3271</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select.having-3272"><a href="#Select.having-3272"><span class="linenos">3272</span></a>
+</span><span id="Select.having-3273"><a href="#Select.having-3273"><span class="linenos">3273</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.having-3274"><a href="#Select.having-3274"><span class="linenos">3274</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="Select.having-3275"><a href="#Select.having-3275"><span class="linenos">3275</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.having-3276"><a href="#Select.having-3276"><span class="linenos">3276</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="Select.having-3277"><a href="#Select.having-3277"><span class="linenos">3277</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select.having-3278"><a href="#Select.having-3278"><span class="linenos">3278</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-3279"><a href="#Select.having-3279"><span class="linenos">3279</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-3280"><a href="#Select.having-3280"><span class="linenos">3280</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-3281"><a href="#Select.having-3281"><span class="linenos">3281</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-3282"><a href="#Select.having-3282"><span class="linenos">3282</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-3283"><a href="#Select.having-3283"><span class="linenos">3283</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-3284"><a href="#Select.having-3284"><span class="linenos">3284</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.having-3285"><a href="#Select.having-3285"><span class="linenos">3285</span></a> <span class="p">)</span>
</span></pre></div>
@@ -42195,24 +44226,24 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Select.window"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select.window-3263"><a href="#Select.window-3263"><span class="linenos">3263</span></a> <span class="k">def</span> <span class="nf">window</span><span class="p">(</span>
-</span><span id="Select.window-3264"><a href="#Select.window-3264"><span class="linenos">3264</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Select.window-3265"><a href="#Select.window-3265"><span class="linenos">3265</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Select.window-3266"><a href="#Select.window-3266"><span class="linenos">3266</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select.window-3267"><a href="#Select.window-3267"><span class="linenos">3267</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Select.window-3268"><a href="#Select.window-3268"><span class="linenos">3268</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select.window-3269"><a href="#Select.window-3269"><span class="linenos">3269</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.window-3270"><a href="#Select.window-3270"><span class="linenos">3270</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select.window-3271"><a href="#Select.window-3271"><span class="linenos">3271</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="Select.window-3272"><a href="#Select.window-3272"><span class="linenos">3272</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select.window-3273"><a href="#Select.window-3273"><span class="linenos">3273</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-3274"><a href="#Select.window-3274"><span class="linenos">3274</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-3275"><a href="#Select.window-3275"><span class="linenos">3275</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-3276"><a href="#Select.window-3276"><span class="linenos">3276</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-3277"><a href="#Select.window-3277"><span class="linenos">3277</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-3278"><a href="#Select.window-3278"><span class="linenos">3278</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-3279"><a href="#Select.window-3279"><span class="linenos">3279</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.window-3280"><a href="#Select.window-3280"><span class="linenos">3280</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.window-3287"><a href="#Select.window-3287"><span class="linenos">3287</span></a> <span class="k">def</span> <span class="nf">window</span><span class="p">(</span>
+</span><span id="Select.window-3288"><a href="#Select.window-3288"><span class="linenos">3288</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select.window-3289"><a href="#Select.window-3289"><span class="linenos">3289</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Select.window-3290"><a href="#Select.window-3290"><span class="linenos">3290</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select.window-3291"><a href="#Select.window-3291"><span class="linenos">3291</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Select.window-3292"><a href="#Select.window-3292"><span class="linenos">3292</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select.window-3293"><a href="#Select.window-3293"><span class="linenos">3293</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.window-3294"><a href="#Select.window-3294"><span class="linenos">3294</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select.window-3295"><a href="#Select.window-3295"><span class="linenos">3295</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="Select.window-3296"><a href="#Select.window-3296"><span class="linenos">3296</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select.window-3297"><a href="#Select.window-3297"><span class="linenos">3297</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-3298"><a href="#Select.window-3298"><span class="linenos">3298</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-3299"><a href="#Select.window-3299"><span class="linenos">3299</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-3300"><a href="#Select.window-3300"><span class="linenos">3300</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-3301"><a href="#Select.window-3301"><span class="linenos">3301</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-3302"><a href="#Select.window-3302"><span class="linenos">3302</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-3303"><a href="#Select.window-3303"><span class="linenos">3303</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.window-3304"><a href="#Select.window-3304"><span class="linenos">3304</span></a> <span class="p">)</span>
</span></pre></div>
@@ -42230,24 +44261,24 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Select.qualify"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select.qualify-3282"><a href="#Select.qualify-3282"><span class="linenos">3282</span></a> <span class="k">def</span> <span class="nf">qualify</span><span class="p">(</span>
-</span><span id="Select.qualify-3283"><a href="#Select.qualify-3283"><span class="linenos">3283</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Select.qualify-3284"><a href="#Select.qualify-3284"><span class="linenos">3284</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Select.qualify-3285"><a href="#Select.qualify-3285"><span class="linenos">3285</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select.qualify-3286"><a href="#Select.qualify-3286"><span class="linenos">3286</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Select.qualify-3287"><a href="#Select.qualify-3287"><span class="linenos">3287</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select.qualify-3288"><a href="#Select.qualify-3288"><span class="linenos">3288</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.qualify-3289"><a href="#Select.qualify-3289"><span class="linenos">3289</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select.qualify-3290"><a href="#Select.qualify-3290"><span class="linenos">3290</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="Select.qualify-3291"><a href="#Select.qualify-3291"><span class="linenos">3291</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select.qualify-3292"><a href="#Select.qualify-3292"><span class="linenos">3292</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-3293"><a href="#Select.qualify-3293"><span class="linenos">3293</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-3294"><a href="#Select.qualify-3294"><span class="linenos">3294</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-3295"><a href="#Select.qualify-3295"><span class="linenos">3295</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-3296"><a href="#Select.qualify-3296"><span class="linenos">3296</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-3297"><a href="#Select.qualify-3297"><span class="linenos">3297</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-3298"><a href="#Select.qualify-3298"><span class="linenos">3298</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.qualify-3299"><a href="#Select.qualify-3299"><span class="linenos">3299</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.qualify-3306"><a href="#Select.qualify-3306"><span class="linenos">3306</span></a> <span class="k">def</span> <span class="nf">qualify</span><span class="p">(</span>
+</span><span id="Select.qualify-3307"><a href="#Select.qualify-3307"><span class="linenos">3307</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select.qualify-3308"><a href="#Select.qualify-3308"><span class="linenos">3308</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Select.qualify-3309"><a href="#Select.qualify-3309"><span class="linenos">3309</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select.qualify-3310"><a href="#Select.qualify-3310"><span class="linenos">3310</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Select.qualify-3311"><a href="#Select.qualify-3311"><span class="linenos">3311</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select.qualify-3312"><a href="#Select.qualify-3312"><span class="linenos">3312</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.qualify-3313"><a href="#Select.qualify-3313"><span class="linenos">3313</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select.qualify-3314"><a href="#Select.qualify-3314"><span class="linenos">3314</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="Select.qualify-3315"><a href="#Select.qualify-3315"><span class="linenos">3315</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select.qualify-3316"><a href="#Select.qualify-3316"><span class="linenos">3316</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-3317"><a href="#Select.qualify-3317"><span class="linenos">3317</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-3318"><a href="#Select.qualify-3318"><span class="linenos">3318</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-3319"><a href="#Select.qualify-3319"><span class="linenos">3319</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-3320"><a href="#Select.qualify-3320"><span class="linenos">3320</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-3321"><a href="#Select.qualify-3321"><span class="linenos">3321</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-3322"><a href="#Select.qualify-3322"><span class="linenos">3322</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.qualify-3323"><a href="#Select.qualify-3323"><span class="linenos">3323</span></a> <span class="p">)</span>
</span></pre></div>
@@ -42265,28 +44296,28 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Select.distinct"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select.distinct-3301"><a href="#Select.distinct-3301"><span class="linenos">3301</span></a> <span class="k">def</span> <span class="nf">distinct</span><span class="p">(</span>
-</span><span id="Select.distinct-3302"><a href="#Select.distinct-3302"><span class="linenos">3302</span></a> <span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">ons</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="Select.distinct-3303"><a href="#Select.distinct-3303"><span class="linenos">3303</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select.distinct-3304"><a href="#Select.distinct-3304"><span class="linenos">3304</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.distinct-3305"><a href="#Select.distinct-3305"><span class="linenos">3305</span></a><span class="sd"> Set the OFFSET expression.</span>
-</span><span id="Select.distinct-3306"><a href="#Select.distinct-3306"><span class="linenos">3306</span></a>
-</span><span id="Select.distinct-3307"><a href="#Select.distinct-3307"><span class="linenos">3307</span></a><span class="sd"> Example:</span>
-</span><span id="Select.distinct-3308"><a href="#Select.distinct-3308"><span class="linenos">3308</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-3309"><a href="#Select.distinct-3309"><span class="linenos">3309</span></a><span class="sd"> &#39;SELECT DISTINCT x FROM tbl&#39;</span>
-</span><span id="Select.distinct-3310"><a href="#Select.distinct-3310"><span class="linenos">3310</span></a>
-</span><span id="Select.distinct-3311"><a href="#Select.distinct-3311"><span class="linenos">3311</span></a><span class="sd"> Args:</span>
-</span><span id="Select.distinct-3312"><a href="#Select.distinct-3312"><span class="linenos">3312</span></a><span class="sd"> ons: the expressions to distinct on</span>
-</span><span id="Select.distinct-3313"><a href="#Select.distinct-3313"><span class="linenos">3313</span></a><span class="sd"> distinct: whether the Select should be distinct</span>
-</span><span id="Select.distinct-3314"><a href="#Select.distinct-3314"><span class="linenos">3314</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.distinct-3315"><a href="#Select.distinct-3315"><span class="linenos">3315</span></a>
-</span><span id="Select.distinct-3316"><a href="#Select.distinct-3316"><span class="linenos">3316</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.distinct-3317"><a href="#Select.distinct-3317"><span class="linenos">3317</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select.distinct-3318"><a href="#Select.distinct-3318"><span class="linenos">3318</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.distinct-3319"><a href="#Select.distinct-3319"><span class="linenos">3319</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-3320"><a href="#Select.distinct-3320"><span class="linenos">3320</span></a> <span class="n">on</span> <span class="o">=</span> <span class="n">Tuple</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">on</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">on</span> <span class="ow">in</span> <span class="n">ons</span> <span class="k">if</span> <span class="n">on</span><span class="p">])</span> <span class="k">if</span> <span class="n">ons</span> <span class="k">else</span> <span class="kc">None</span>
-</span><span id="Select.distinct-3321"><a href="#Select.distinct-3321"><span class="linenos">3321</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;distinct&quot;</span><span class="p">,</span> <span class="n">Distinct</span><span class="p">(</span><span class="n">on</span><span class="o">=</span><span class="n">on</span><span class="p">)</span> <span class="k">if</span> <span class="n">distinct</span> <span class="k">else</span> <span class="kc">None</span><span class="p">)</span>
-</span><span id="Select.distinct-3322"><a href="#Select.distinct-3322"><span class="linenos">3322</span></a> <span class="k">return</span> <span class="n">instance</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.distinct-3325"><a href="#Select.distinct-3325"><span class="linenos">3325</span></a> <span class="k">def</span> <span class="nf">distinct</span><span class="p">(</span>
+</span><span id="Select.distinct-3326"><a href="#Select.distinct-3326"><span class="linenos">3326</span></a> <span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">ons</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="Select.distinct-3327"><a href="#Select.distinct-3327"><span class="linenos">3327</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select.distinct-3328"><a href="#Select.distinct-3328"><span class="linenos">3328</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.distinct-3329"><a href="#Select.distinct-3329"><span class="linenos">3329</span></a><span class="sd"> Set the OFFSET expression.</span>
+</span><span id="Select.distinct-3330"><a href="#Select.distinct-3330"><span class="linenos">3330</span></a>
+</span><span id="Select.distinct-3331"><a href="#Select.distinct-3331"><span class="linenos">3331</span></a><span class="sd"> Example:</span>
+</span><span id="Select.distinct-3332"><a href="#Select.distinct-3332"><span class="linenos">3332</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-3333"><a href="#Select.distinct-3333"><span class="linenos">3333</span></a><span class="sd"> &#39;SELECT DISTINCT x FROM tbl&#39;</span>
+</span><span id="Select.distinct-3334"><a href="#Select.distinct-3334"><span class="linenos">3334</span></a>
+</span><span id="Select.distinct-3335"><a href="#Select.distinct-3335"><span class="linenos">3335</span></a><span class="sd"> Args:</span>
+</span><span id="Select.distinct-3336"><a href="#Select.distinct-3336"><span class="linenos">3336</span></a><span class="sd"> ons: the expressions to distinct on</span>
+</span><span id="Select.distinct-3337"><a href="#Select.distinct-3337"><span class="linenos">3337</span></a><span class="sd"> distinct: whether the Select should be distinct</span>
+</span><span id="Select.distinct-3338"><a href="#Select.distinct-3338"><span class="linenos">3338</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.distinct-3339"><a href="#Select.distinct-3339"><span class="linenos">3339</span></a>
+</span><span id="Select.distinct-3340"><a href="#Select.distinct-3340"><span class="linenos">3340</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.distinct-3341"><a href="#Select.distinct-3341"><span class="linenos">3341</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="Select.distinct-3342"><a href="#Select.distinct-3342"><span class="linenos">3342</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.distinct-3343"><a href="#Select.distinct-3343"><span class="linenos">3343</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-3344"><a href="#Select.distinct-3344"><span class="linenos">3344</span></a> <span class="n">on</span> <span class="o">=</span> <span class="n">Tuple</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">on</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">on</span> <span class="ow">in</span> <span class="n">ons</span> <span class="k">if</span> <span class="n">on</span><span class="p">])</span> <span class="k">if</span> <span class="n">ons</span> <span class="k">else</span> <span class="kc">None</span>
+</span><span id="Select.distinct-3345"><a href="#Select.distinct-3345"><span class="linenos">3345</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;distinct&quot;</span><span class="p">,</span> <span class="n">Distinct</span><span class="p">(</span><span class="n">on</span><span class="o">=</span><span class="n">on</span><span class="p">)</span> <span class="k">if</span> <span class="n">distinct</span> <span class="k">else</span> <span class="kc">None</span><span class="p">)</span>
+</span><span id="Select.distinct-3346"><a href="#Select.distinct-3346"><span class="linenos">3346</span></a> <span class="k">return</span> <span class="n">instance</span>
</span></pre></div>
@@ -42330,49 +44361,49 @@ 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-3324"><a href="#Select.ctas-3324"><span class="linenos">3324</span></a> <span class="k">def</span> <span class="nf">ctas</span><span class="p">(</span>
-</span><span id="Select.ctas-3325"><a href="#Select.ctas-3325"><span class="linenos">3325</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Select.ctas-3326"><a href="#Select.ctas-3326"><span class="linenos">3326</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="Select.ctas-3327"><a href="#Select.ctas-3327"><span class="linenos">3327</span></a> <span class="n">properties</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Select.ctas-3328"><a href="#Select.ctas-3328"><span class="linenos">3328</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Select.ctas-3329"><a href="#Select.ctas-3329"><span class="linenos">3329</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select.ctas-3330"><a href="#Select.ctas-3330"><span class="linenos">3330</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.ctas-3331"><a href="#Select.ctas-3331"><span class="linenos">3331</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Create</span><span class="p">:</span>
-</span><span id="Select.ctas-3332"><a href="#Select.ctas-3332"><span class="linenos">3332</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.ctas-3333"><a href="#Select.ctas-3333"><span class="linenos">3333</span></a><span class="sd"> Convert this expression to a CREATE TABLE AS statement.</span>
-</span><span id="Select.ctas-3334"><a href="#Select.ctas-3334"><span class="linenos">3334</span></a>
-</span><span id="Select.ctas-3335"><a href="#Select.ctas-3335"><span class="linenos">3335</span></a><span class="sd"> Example:</span>
-</span><span id="Select.ctas-3336"><a href="#Select.ctas-3336"><span class="linenos">3336</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-3337"><a href="#Select.ctas-3337"><span class="linenos">3337</span></a><span class="sd"> &#39;CREATE TABLE x AS SELECT * FROM tbl&#39;</span>
-</span><span id="Select.ctas-3338"><a href="#Select.ctas-3338"><span class="linenos">3338</span></a>
-</span><span id="Select.ctas-3339"><a href="#Select.ctas-3339"><span class="linenos">3339</span></a><span class="sd"> Args:</span>
-</span><span id="Select.ctas-3340"><a href="#Select.ctas-3340"><span class="linenos">3340</span></a><span class="sd"> table: the SQL code string to parse as the table name.</span>
-</span><span id="Select.ctas-3341"><a href="#Select.ctas-3341"><span class="linenos">3341</span></a><span class="sd"> If another `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select.ctas-3342"><a href="#Select.ctas-3342"><span class="linenos">3342</span></a><span class="sd"> properties: an optional mapping of table properties</span>
-</span><span id="Select.ctas-3343"><a href="#Select.ctas-3343"><span class="linenos">3343</span></a><span class="sd"> dialect: the dialect used to parse the input table.</span>
-</span><span id="Select.ctas-3344"><a href="#Select.ctas-3344"><span class="linenos">3344</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.ctas-3345"><a href="#Select.ctas-3345"><span class="linenos">3345</span></a><span class="sd"> opts: other options to use to parse the input table.</span>
-</span><span id="Select.ctas-3346"><a href="#Select.ctas-3346"><span class="linenos">3346</span></a>
-</span><span id="Select.ctas-3347"><a href="#Select.ctas-3347"><span class="linenos">3347</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.ctas-3348"><a href="#Select.ctas-3348"><span class="linenos">3348</span></a><span class="sd"> The new Create expression.</span>
-</span><span id="Select.ctas-3349"><a href="#Select.ctas-3349"><span class="linenos">3349</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.ctas-3350"><a href="#Select.ctas-3350"><span class="linenos">3350</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-3351"><a href="#Select.ctas-3351"><span class="linenos">3351</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-3352"><a href="#Select.ctas-3352"><span class="linenos">3352</span></a> <span class="n">table</span><span class="p">,</span>
-</span><span id="Select.ctas-3353"><a href="#Select.ctas-3353"><span class="linenos">3353</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-3354"><a href="#Select.ctas-3354"><span class="linenos">3354</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-3355"><a href="#Select.ctas-3355"><span class="linenos">3355</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.ctas-3356"><a href="#Select.ctas-3356"><span class="linenos">3356</span></a> <span class="p">)</span>
-</span><span id="Select.ctas-3357"><a href="#Select.ctas-3357"><span class="linenos">3357</span></a> <span class="n">properties_expression</span> <span class="o">=</span> <span class="kc">None</span>
-</span><span id="Select.ctas-3358"><a href="#Select.ctas-3358"><span class="linenos">3358</span></a> <span class="k">if</span> <span class="n">properties</span><span class="p">:</span>
-</span><span id="Select.ctas-3359"><a href="#Select.ctas-3359"><span class="linenos">3359</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-3360"><a href="#Select.ctas-3360"><span class="linenos">3360</span></a>
-</span><span id="Select.ctas-3361"><a href="#Select.ctas-3361"><span class="linenos">3361</span></a> <span class="k">return</span> <span class="n">Create</span><span class="p">(</span>
-</span><span id="Select.ctas-3362"><a href="#Select.ctas-3362"><span class="linenos">3362</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-3363"><a href="#Select.ctas-3363"><span class="linenos">3363</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-3364"><a href="#Select.ctas-3364"><span class="linenos">3364</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-3365"><a href="#Select.ctas-3365"><span class="linenos">3365</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-3366"><a href="#Select.ctas-3366"><span class="linenos">3366</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.ctas-3348"><a href="#Select.ctas-3348"><span class="linenos">3348</span></a> <span class="k">def</span> <span class="nf">ctas</span><span class="p">(</span>
+</span><span id="Select.ctas-3349"><a href="#Select.ctas-3349"><span class="linenos">3349</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select.ctas-3350"><a href="#Select.ctas-3350"><span class="linenos">3350</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="Select.ctas-3351"><a href="#Select.ctas-3351"><span class="linenos">3351</span></a> <span class="n">properties</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Select.ctas-3352"><a href="#Select.ctas-3352"><span class="linenos">3352</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Select.ctas-3353"><a href="#Select.ctas-3353"><span class="linenos">3353</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select.ctas-3354"><a href="#Select.ctas-3354"><span class="linenos">3354</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.ctas-3355"><a href="#Select.ctas-3355"><span class="linenos">3355</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Create</span><span class="p">:</span>
+</span><span id="Select.ctas-3356"><a href="#Select.ctas-3356"><span class="linenos">3356</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.ctas-3357"><a href="#Select.ctas-3357"><span class="linenos">3357</span></a><span class="sd"> Convert this expression to a CREATE TABLE AS statement.</span>
+</span><span id="Select.ctas-3358"><a href="#Select.ctas-3358"><span class="linenos">3358</span></a>
+</span><span id="Select.ctas-3359"><a href="#Select.ctas-3359"><span class="linenos">3359</span></a><span class="sd"> Example:</span>
+</span><span id="Select.ctas-3360"><a href="#Select.ctas-3360"><span class="linenos">3360</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-3361"><a href="#Select.ctas-3361"><span class="linenos">3361</span></a><span class="sd"> &#39;CREATE TABLE x AS SELECT * FROM tbl&#39;</span>
+</span><span id="Select.ctas-3362"><a href="#Select.ctas-3362"><span class="linenos">3362</span></a>
+</span><span id="Select.ctas-3363"><a href="#Select.ctas-3363"><span class="linenos">3363</span></a><span class="sd"> Args:</span>
+</span><span id="Select.ctas-3364"><a href="#Select.ctas-3364"><span class="linenos">3364</span></a><span class="sd"> table: the SQL code string to parse as the table name.</span>
+</span><span id="Select.ctas-3365"><a href="#Select.ctas-3365"><span class="linenos">3365</span></a><span class="sd"> If another `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select.ctas-3366"><a href="#Select.ctas-3366"><span class="linenos">3366</span></a><span class="sd"> properties: an optional mapping of table properties</span>
+</span><span id="Select.ctas-3367"><a href="#Select.ctas-3367"><span class="linenos">3367</span></a><span class="sd"> dialect: the dialect used to parse the input table.</span>
+</span><span id="Select.ctas-3368"><a href="#Select.ctas-3368"><span class="linenos">3368</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.ctas-3369"><a href="#Select.ctas-3369"><span class="linenos">3369</span></a><span class="sd"> opts: other options to use to parse the input table.</span>
+</span><span id="Select.ctas-3370"><a href="#Select.ctas-3370"><span class="linenos">3370</span></a>
+</span><span id="Select.ctas-3371"><a href="#Select.ctas-3371"><span class="linenos">3371</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.ctas-3372"><a href="#Select.ctas-3372"><span class="linenos">3372</span></a><span class="sd"> The new Create expression.</span>
+</span><span id="Select.ctas-3373"><a href="#Select.ctas-3373"><span class="linenos">3373</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.ctas-3374"><a href="#Select.ctas-3374"><span class="linenos">3374</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-3375"><a href="#Select.ctas-3375"><span class="linenos">3375</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-3376"><a href="#Select.ctas-3376"><span class="linenos">3376</span></a> <span class="n">table</span><span class="p">,</span>
+</span><span id="Select.ctas-3377"><a href="#Select.ctas-3377"><span class="linenos">3377</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-3378"><a href="#Select.ctas-3378"><span class="linenos">3378</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-3379"><a href="#Select.ctas-3379"><span class="linenos">3379</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.ctas-3380"><a href="#Select.ctas-3380"><span class="linenos">3380</span></a> <span class="p">)</span>
+</span><span id="Select.ctas-3381"><a href="#Select.ctas-3381"><span class="linenos">3381</span></a> <span class="n">properties_expression</span> <span class="o">=</span> <span class="kc">None</span>
+</span><span id="Select.ctas-3382"><a href="#Select.ctas-3382"><span class="linenos">3382</span></a> <span class="k">if</span> <span class="n">properties</span><span class="p">:</span>
+</span><span id="Select.ctas-3383"><a href="#Select.ctas-3383"><span class="linenos">3383</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-3384"><a href="#Select.ctas-3384"><span class="linenos">3384</span></a>
+</span><span id="Select.ctas-3385"><a href="#Select.ctas-3385"><span class="linenos">3385</span></a> <span class="k">return</span> <span class="n">Create</span><span class="p">(</span>
+</span><span id="Select.ctas-3386"><a href="#Select.ctas-3386"><span class="linenos">3386</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-3387"><a href="#Select.ctas-3387"><span class="linenos">3387</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-3388"><a href="#Select.ctas-3388"><span class="linenos">3388</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-3389"><a href="#Select.ctas-3389"><span class="linenos">3389</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-3390"><a href="#Select.ctas-3390"><span class="linenos">3390</span></a> <span class="p">)</span>
</span></pre></div>
@@ -42419,28 +44450,28 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Select.lock"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select.lock-3368"><a href="#Select.lock-3368"><span class="linenos">3368</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-3369"><a href="#Select.lock-3369"><span class="linenos">3369</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.lock-3370"><a href="#Select.lock-3370"><span class="linenos">3370</span></a><span class="sd"> Set the locking read mode for this expression.</span>
-</span><span id="Select.lock-3371"><a href="#Select.lock-3371"><span class="linenos">3371</span></a>
-</span><span id="Select.lock-3372"><a href="#Select.lock-3372"><span class="linenos">3372</span></a><span class="sd"> Examples:</span>
-</span><span id="Select.lock-3373"><a href="#Select.lock-3373"><span class="linenos">3373</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-3374"><a href="#Select.lock-3374"><span class="linenos">3374</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR UPDATE&quot;</span>
-</span><span id="Select.lock-3375"><a href="#Select.lock-3375"><span class="linenos">3375</span></a>
-</span><span id="Select.lock-3376"><a href="#Select.lock-3376"><span class="linenos">3376</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-3377"><a href="#Select.lock-3377"><span class="linenos">3377</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR SHARE&quot;</span>
-</span><span id="Select.lock-3378"><a href="#Select.lock-3378"><span class="linenos">3378</span></a>
-</span><span id="Select.lock-3379"><a href="#Select.lock-3379"><span class="linenos">3379</span></a><span class="sd"> Args:</span>
-</span><span id="Select.lock-3380"><a href="#Select.lock-3380"><span class="linenos">3380</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-3381"><a href="#Select.lock-3381"><span class="linenos">3381</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.lock-3382"><a href="#Select.lock-3382"><span class="linenos">3382</span></a>
-</span><span id="Select.lock-3383"><a href="#Select.lock-3383"><span class="linenos">3383</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.lock-3384"><a href="#Select.lock-3384"><span class="linenos">3384</span></a><span class="sd"> The modified expression.</span>
-</span><span id="Select.lock-3385"><a href="#Select.lock-3385"><span class="linenos">3385</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.lock-3386"><a href="#Select.lock-3386"><span class="linenos">3386</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-3387"><a href="#Select.lock-3387"><span class="linenos">3387</span></a> <span class="n">inst</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;locks&quot;</span><span class="p">,</span> <span class="p">[</span><span class="n">Lock</span><span class="p">(</span><span class="n">update</span><span class="o">=</span><span class="n">update</span><span class="p">)])</span>
-</span><span id="Select.lock-3388"><a href="#Select.lock-3388"><span class="linenos">3388</span></a>
-</span><span id="Select.lock-3389"><a href="#Select.lock-3389"><span class="linenos">3389</span></a> <span class="k">return</span> <span class="n">inst</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.lock-3392"><a href="#Select.lock-3392"><span class="linenos">3392</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-3393"><a href="#Select.lock-3393"><span class="linenos">3393</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.lock-3394"><a href="#Select.lock-3394"><span class="linenos">3394</span></a><span class="sd"> Set the locking read mode for this expression.</span>
+</span><span id="Select.lock-3395"><a href="#Select.lock-3395"><span class="linenos">3395</span></a>
+</span><span id="Select.lock-3396"><a href="#Select.lock-3396"><span class="linenos">3396</span></a><span class="sd"> Examples:</span>
+</span><span id="Select.lock-3397"><a href="#Select.lock-3397"><span class="linenos">3397</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-3398"><a href="#Select.lock-3398"><span class="linenos">3398</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR UPDATE&quot;</span>
+</span><span id="Select.lock-3399"><a href="#Select.lock-3399"><span class="linenos">3399</span></a>
+</span><span id="Select.lock-3400"><a href="#Select.lock-3400"><span class="linenos">3400</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-3401"><a href="#Select.lock-3401"><span class="linenos">3401</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR SHARE&quot;</span>
+</span><span id="Select.lock-3402"><a href="#Select.lock-3402"><span class="linenos">3402</span></a>
+</span><span id="Select.lock-3403"><a href="#Select.lock-3403"><span class="linenos">3403</span></a><span class="sd"> Args:</span>
+</span><span id="Select.lock-3404"><a href="#Select.lock-3404"><span class="linenos">3404</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-3405"><a href="#Select.lock-3405"><span class="linenos">3405</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.lock-3406"><a href="#Select.lock-3406"><span class="linenos">3406</span></a>
+</span><span id="Select.lock-3407"><a href="#Select.lock-3407"><span class="linenos">3407</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.lock-3408"><a href="#Select.lock-3408"><span class="linenos">3408</span></a><span class="sd"> The modified expression.</span>
+</span><span id="Select.lock-3409"><a href="#Select.lock-3409"><span class="linenos">3409</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.lock-3410"><a href="#Select.lock-3410"><span class="linenos">3410</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-3411"><a href="#Select.lock-3411"><span class="linenos">3411</span></a> <span class="n">inst</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;locks&quot;</span><span class="p">,</span> <span class="p">[</span><span class="n">Lock</span><span class="p">(</span><span class="n">update</span><span class="o">=</span><span class="n">update</span><span class="p">)])</span>
+</span><span id="Select.lock-3412"><a href="#Select.lock-3412"><span class="linenos">3412</span></a>
+</span><span id="Select.lock-3413"><a href="#Select.lock-3413"><span class="linenos">3413</span></a> <span class="k">return</span> <span class="n">inst</span>
</span></pre></div>
@@ -42489,29 +44520,29 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Select.hint"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select.hint-3391"><a href="#Select.hint-3391"><span class="linenos">3391</span></a> <span class="k">def</span> <span class="nf">hint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">hints</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select.hint-3392"><a href="#Select.hint-3392"><span class="linenos">3392</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.hint-3393"><a href="#Select.hint-3393"><span class="linenos">3393</span></a><span class="sd"> Set hints for this expression.</span>
-</span><span id="Select.hint-3394"><a href="#Select.hint-3394"><span class="linenos">3394</span></a>
-</span><span id="Select.hint-3395"><a href="#Select.hint-3395"><span class="linenos">3395</span></a><span class="sd"> Examples:</span>
-</span><span id="Select.hint-3396"><a href="#Select.hint-3396"><span class="linenos">3396</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).hint(&quot;BROADCAST(y)&quot;).sql(dialect=&quot;spark&quot;)</span>
-</span><span id="Select.hint-3397"><a href="#Select.hint-3397"><span class="linenos">3397</span></a><span class="sd"> &#39;SELECT /*+ BROADCAST(y) */ x FROM tbl&#39;</span>
-</span><span id="Select.hint-3398"><a href="#Select.hint-3398"><span class="linenos">3398</span></a>
-</span><span id="Select.hint-3399"><a href="#Select.hint-3399"><span class="linenos">3399</span></a><span class="sd"> Args:</span>
-</span><span id="Select.hint-3400"><a href="#Select.hint-3400"><span class="linenos">3400</span></a><span class="sd"> hints: The SQL code strings to parse as the hints.</span>
-</span><span id="Select.hint-3401"><a href="#Select.hint-3401"><span class="linenos">3401</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select.hint-3402"><a href="#Select.hint-3402"><span class="linenos">3402</span></a><span class="sd"> dialect: The dialect used to parse the hints.</span>
-</span><span id="Select.hint-3403"><a href="#Select.hint-3403"><span class="linenos">3403</span></a><span class="sd"> copy: If `False`, modify this expression instance in-place.</span>
-</span><span id="Select.hint-3404"><a href="#Select.hint-3404"><span class="linenos">3404</span></a>
-</span><span id="Select.hint-3405"><a href="#Select.hint-3405"><span class="linenos">3405</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.hint-3406"><a href="#Select.hint-3406"><span class="linenos">3406</span></a><span class="sd"> The modified expression.</span>
-</span><span id="Select.hint-3407"><a href="#Select.hint-3407"><span class="linenos">3407</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.hint-3408"><a href="#Select.hint-3408"><span class="linenos">3408</span></a> <span class="n">inst</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
-</span><span id="Select.hint-3409"><a href="#Select.hint-3409"><span class="linenos">3409</span></a> <span class="n">inst</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
-</span><span id="Select.hint-3410"><a href="#Select.hint-3410"><span class="linenos">3410</span></a> <span class="s2">&quot;hint&quot;</span><span class="p">,</span> <span class="n">Hint</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">h</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span> <span class="k">for</span> <span class="n">h</span> <span class="ow">in</span> <span class="n">hints</span><span class="p">])</span>
-</span><span id="Select.hint-3411"><a href="#Select.hint-3411"><span class="linenos">3411</span></a> <span class="p">)</span>
-</span><span id="Select.hint-3412"><a href="#Select.hint-3412"><span class="linenos">3412</span></a>
-</span><span id="Select.hint-3413"><a href="#Select.hint-3413"><span class="linenos">3413</span></a> <span class="k">return</span> <span class="n">inst</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.hint-3415"><a href="#Select.hint-3415"><span class="linenos">3415</span></a> <span class="k">def</span> <span class="nf">hint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">hints</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select.hint-3416"><a href="#Select.hint-3416"><span class="linenos">3416</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.hint-3417"><a href="#Select.hint-3417"><span class="linenos">3417</span></a><span class="sd"> Set hints for this expression.</span>
+</span><span id="Select.hint-3418"><a href="#Select.hint-3418"><span class="linenos">3418</span></a>
+</span><span id="Select.hint-3419"><a href="#Select.hint-3419"><span class="linenos">3419</span></a><span class="sd"> Examples:</span>
+</span><span id="Select.hint-3420"><a href="#Select.hint-3420"><span class="linenos">3420</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).hint(&quot;BROADCAST(y)&quot;).sql(dialect=&quot;spark&quot;)</span>
+</span><span id="Select.hint-3421"><a href="#Select.hint-3421"><span class="linenos">3421</span></a><span class="sd"> &#39;SELECT /*+ BROADCAST(y) */ x FROM tbl&#39;</span>
+</span><span id="Select.hint-3422"><a href="#Select.hint-3422"><span class="linenos">3422</span></a>
+</span><span id="Select.hint-3423"><a href="#Select.hint-3423"><span class="linenos">3423</span></a><span class="sd"> Args:</span>
+</span><span id="Select.hint-3424"><a href="#Select.hint-3424"><span class="linenos">3424</span></a><span class="sd"> hints: The SQL code strings to parse as the hints.</span>
+</span><span id="Select.hint-3425"><a href="#Select.hint-3425"><span class="linenos">3425</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select.hint-3426"><a href="#Select.hint-3426"><span class="linenos">3426</span></a><span class="sd"> dialect: The dialect used to parse the hints.</span>
+</span><span id="Select.hint-3427"><a href="#Select.hint-3427"><span class="linenos">3427</span></a><span class="sd"> copy: If `False`, modify this expression instance in-place.</span>
+</span><span id="Select.hint-3428"><a href="#Select.hint-3428"><span class="linenos">3428</span></a>
+</span><span id="Select.hint-3429"><a href="#Select.hint-3429"><span class="linenos">3429</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.hint-3430"><a href="#Select.hint-3430"><span class="linenos">3430</span></a><span class="sd"> The modified expression.</span>
+</span><span id="Select.hint-3431"><a href="#Select.hint-3431"><span class="linenos">3431</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.hint-3432"><a href="#Select.hint-3432"><span class="linenos">3432</span></a> <span class="n">inst</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
+</span><span id="Select.hint-3433"><a href="#Select.hint-3433"><span class="linenos">3433</span></a> <span class="n">inst</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
+</span><span id="Select.hint-3434"><a href="#Select.hint-3434"><span class="linenos">3434</span></a> <span class="s2">&quot;hint&quot;</span><span class="p">,</span> <span class="n">Hint</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">h</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span> <span class="k">for</span> <span class="n">h</span> <span class="ow">in</span> <span class="n">hints</span><span class="p">])</span>
+</span><span id="Select.hint-3435"><a href="#Select.hint-3435"><span class="linenos">3435</span></a> <span class="p">)</span>
+</span><span id="Select.hint-3436"><a href="#Select.hint-3436"><span class="linenos">3436</span></a>
+</span><span id="Select.hint-3437"><a href="#Select.hint-3437"><span class="linenos">3437</span></a> <span class="k">return</span> <span class="n">inst</span>
</span></pre></div>
@@ -42546,37 +44577,58 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<div id="Select.named_selects" class="classattr">
- <div class="attr variable">
+ <input id="Select.named_selects-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">named_selects</span><span class="annotation">: List[str]</span>
-
+ <label class="view-source-button" for="Select.named_selects-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Select.named_selects"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.named_selects-3439"><a href="#Select.named_selects-3439"><span class="linenos">3439</span></a> <span class="nd">@property</span>
+</span><span id="Select.named_selects-3440"><a href="#Select.named_selects-3440"><span class="linenos">3440</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
+</span><span id="Select.named_selects-3441"><a href="#Select.named_selects-3441"><span class="linenos">3441</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">e</span><span class="o">.</span><span class="n">output_name</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span> <span class="k">if</span> <span class="n">e</span><span class="o">.</span><span class="n">alias_or_name</span><span class="p">]</span>
+</span></pre></div>
+
+
</div>
<div id="Select.is_star" class="classattr">
- <div class="attr variable">
+ <input id="Select.is_star-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">is_star</span><span class="annotation">: bool</span>
-
+ <label class="view-source-button" for="Select.is_star-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Select.is_star"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.is_star-3443"><a href="#Select.is_star-3443"><span class="linenos">3443</span></a> <span class="nd">@property</span>
+</span><span id="Select.is_star-3444"><a href="#Select.is_star-3444"><span class="linenos">3444</span></a> <span class="k">def</span> <span class="nf">is_star</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="Select.is_star-3445"><a href="#Select.is_star-3445"><span class="linenos">3445</span></a> <span class="k">return</span> <span class="nb">any</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">is_star</span> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span>
+</span></pre></div>
+
+
<div class="docstring"><p>Checks whether an expression is a star.</p>
</div>
</div>
<div id="Select.selects" class="classattr">
- <div class="attr variable">
+ <input id="Select.selects-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">selects</span><span class="annotation">: List[<a href="#Expression">Expression</a>]</span>
-
+ <label class="view-source-button" for="Select.selects-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Select.selects"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.selects-3447"><a href="#Select.selects-3447"><span class="linenos">3447</span></a> <span class="nd">@property</span>
+</span><span id="Select.selects-3448"><a href="#Select.selects-3448"><span class="linenos">3448</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="Select.selects-3449"><a href="#Select.selects-3449"><span class="linenos">3449</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span>
+</span></pre></div>
+
+
</div>
@@ -42616,6 +44668,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Select.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Select.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Select.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Select.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Select.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Select.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Select.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -42636,6 +44689,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Select.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Select.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Select.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Select.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Select.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Select.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Select.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -42657,6 +44711,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Select.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Select.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Select.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Select.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Subqueryable">Subqueryable</a></dt>
@@ -42685,47 +44740,47 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Subquery"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Subquery-3428"><a href="#Subquery-3428"><span class="linenos">3428</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-3429"><a href="#Subquery-3429"><span class="linenos">3429</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Subquery-3430"><a href="#Subquery-3430"><span class="linenos">3430</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-3431"><a href="#Subquery-3431"><span class="linenos">3431</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-3432"><a href="#Subquery-3432"><span class="linenos">3432</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-3433"><a href="#Subquery-3433"><span class="linenos">3433</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span>
-</span><span id="Subquery-3434"><a href="#Subquery-3434"><span class="linenos">3434</span></a> <span class="p">}</span>
-</span><span id="Subquery-3435"><a href="#Subquery-3435"><span class="linenos">3435</span></a>
-</span><span id="Subquery-3436"><a href="#Subquery-3436"><span class="linenos">3436</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-3437"><a href="#Subquery-3437"><span class="linenos">3437</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Subquery-3438"><a href="#Subquery-3438"><span class="linenos">3438</span></a><span class="sd"> Returns the first non subquery.</span>
-</span><span id="Subquery-3439"><a href="#Subquery-3439"><span class="linenos">3439</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Subquery-3440"><a href="#Subquery-3440"><span class="linenos">3440</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
-</span><span id="Subquery-3441"><a href="#Subquery-3441"><span class="linenos">3441</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-3442"><a href="#Subquery-3442"><span class="linenos">3442</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-3443"><a href="#Subquery-3443"><span class="linenos">3443</span></a> <span class="k">return</span> <span class="n">expression</span>
-</span><span id="Subquery-3444"><a href="#Subquery-3444"><span class="linenos">3444</span></a>
-</span><span id="Subquery-3445"><a href="#Subquery-3445"><span class="linenos">3445</span></a> <span class="k">def</span> <span class="nf">unwrap</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Subquery</span><span class="p">:</span>
-</span><span id="Subquery-3446"><a href="#Subquery-3446"><span class="linenos">3446</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
-</span><span id="Subquery-3447"><a href="#Subquery-3447"><span class="linenos">3447</span></a> <span class="k">while</span> <span class="n">expression</span><span class="o">.</span><span class="n">same_parent</span> <span class="ow">and</span> <span class="n">expression</span><span class="o">.</span><span class="n">is_wrapper</span><span class="p">:</span>
-</span><span id="Subquery-3448"><a href="#Subquery-3448"><span class="linenos">3448</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Subquery</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">parent</span><span class="p">)</span>
-</span><span id="Subquery-3449"><a href="#Subquery-3449"><span class="linenos">3449</span></a> <span class="k">return</span> <span class="n">expression</span>
-</span><span id="Subquery-3450"><a href="#Subquery-3450"><span class="linenos">3450</span></a>
-</span><span id="Subquery-3451"><a href="#Subquery-3451"><span class="linenos">3451</span></a> <span class="nd">@property</span>
-</span><span id="Subquery-3452"><a href="#Subquery-3452"><span class="linenos">3452</span></a> <span class="k">def</span> <span class="nf">is_wrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="Subquery-3453"><a href="#Subquery-3453"><span class="linenos">3453</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Subquery-3454"><a href="#Subquery-3454"><span class="linenos">3454</span></a><span class="sd"> Whether this Subquery acts as a simple wrapper around another expression.</span>
-</span><span id="Subquery-3455"><a href="#Subquery-3455"><span class="linenos">3455</span></a>
-</span><span id="Subquery-3456"><a href="#Subquery-3456"><span class="linenos">3456</span></a><span class="sd"> SELECT * FROM (((SELECT * FROM t)))</span>
-</span><span id="Subquery-3457"><a href="#Subquery-3457"><span class="linenos">3457</span></a><span class="sd"> ^</span>
-</span><span id="Subquery-3458"><a href="#Subquery-3458"><span class="linenos">3458</span></a><span class="sd"> This corresponds to a &quot;wrapper&quot; Subquery node</span>
-</span><span id="Subquery-3459"><a href="#Subquery-3459"><span class="linenos">3459</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Subquery-3460"><a href="#Subquery-3460"><span class="linenos">3460</span></a> <span class="k">return</span> <span class="nb">all</span><span class="p">(</span><span class="n">v</span> <span class="ow">is</span> <span class="kc">None</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> <span class="k">if</span> <span class="n">k</span> <span class="o">!=</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
-</span><span id="Subquery-3461"><a href="#Subquery-3461"><span class="linenos">3461</span></a>
-</span><span id="Subquery-3462"><a href="#Subquery-3462"><span class="linenos">3462</span></a> <span class="nd">@property</span>
-</span><span id="Subquery-3463"><a href="#Subquery-3463"><span class="linenos">3463</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-3464"><a href="#Subquery-3464"><span class="linenos">3464</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-3465"><a href="#Subquery-3465"><span class="linenos">3465</span></a>
-</span><span id="Subquery-3466"><a href="#Subquery-3466"><span class="linenos">3466</span></a> <span class="nd">@property</span>
-</span><span id="Subquery-3467"><a href="#Subquery-3467"><span class="linenos">3467</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Subquery-3468"><a href="#Subquery-3468"><span class="linenos">3468</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-3452"><a href="#Subquery-3452"><span class="linenos">3452</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-3453"><a href="#Subquery-3453"><span class="linenos">3453</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Subquery-3454"><a href="#Subquery-3454"><span class="linenos">3454</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-3455"><a href="#Subquery-3455"><span class="linenos">3455</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-3456"><a href="#Subquery-3456"><span class="linenos">3456</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-3457"><a href="#Subquery-3457"><span class="linenos">3457</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span>
+</span><span id="Subquery-3458"><a href="#Subquery-3458"><span class="linenos">3458</span></a> <span class="p">}</span>
+</span><span id="Subquery-3459"><a href="#Subquery-3459"><span class="linenos">3459</span></a>
+</span><span id="Subquery-3460"><a href="#Subquery-3460"><span class="linenos">3460</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-3461"><a href="#Subquery-3461"><span class="linenos">3461</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Subquery-3462"><a href="#Subquery-3462"><span class="linenos">3462</span></a><span class="sd"> Returns the first non subquery.</span>
+</span><span id="Subquery-3463"><a href="#Subquery-3463"><span class="linenos">3463</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Subquery-3464"><a href="#Subquery-3464"><span class="linenos">3464</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
+</span><span id="Subquery-3465"><a href="#Subquery-3465"><span class="linenos">3465</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-3466"><a href="#Subquery-3466"><span class="linenos">3466</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-3467"><a href="#Subquery-3467"><span class="linenos">3467</span></a> <span class="k">return</span> <span class="n">expression</span>
+</span><span id="Subquery-3468"><a href="#Subquery-3468"><span class="linenos">3468</span></a>
+</span><span id="Subquery-3469"><a href="#Subquery-3469"><span class="linenos">3469</span></a> <span class="k">def</span> <span class="nf">unwrap</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Subquery</span><span class="p">:</span>
+</span><span id="Subquery-3470"><a href="#Subquery-3470"><span class="linenos">3470</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
+</span><span id="Subquery-3471"><a href="#Subquery-3471"><span class="linenos">3471</span></a> <span class="k">while</span> <span class="n">expression</span><span class="o">.</span><span class="n">same_parent</span> <span class="ow">and</span> <span class="n">expression</span><span class="o">.</span><span class="n">is_wrapper</span><span class="p">:</span>
+</span><span id="Subquery-3472"><a href="#Subquery-3472"><span class="linenos">3472</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Subquery</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">parent</span><span class="p">)</span>
+</span><span id="Subquery-3473"><a href="#Subquery-3473"><span class="linenos">3473</span></a> <span class="k">return</span> <span class="n">expression</span>
+</span><span id="Subquery-3474"><a href="#Subquery-3474"><span class="linenos">3474</span></a>
+</span><span id="Subquery-3475"><a href="#Subquery-3475"><span class="linenos">3475</span></a> <span class="nd">@property</span>
+</span><span id="Subquery-3476"><a href="#Subquery-3476"><span class="linenos">3476</span></a> <span class="k">def</span> <span class="nf">is_wrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="Subquery-3477"><a href="#Subquery-3477"><span class="linenos">3477</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Subquery-3478"><a href="#Subquery-3478"><span class="linenos">3478</span></a><span class="sd"> Whether this Subquery acts as a simple wrapper around another expression.</span>
+</span><span id="Subquery-3479"><a href="#Subquery-3479"><span class="linenos">3479</span></a>
+</span><span id="Subquery-3480"><a href="#Subquery-3480"><span class="linenos">3480</span></a><span class="sd"> SELECT * FROM (((SELECT * FROM t)))</span>
+</span><span id="Subquery-3481"><a href="#Subquery-3481"><span class="linenos">3481</span></a><span class="sd"> ^</span>
+</span><span id="Subquery-3482"><a href="#Subquery-3482"><span class="linenos">3482</span></a><span class="sd"> This corresponds to a &quot;wrapper&quot; Subquery node</span>
+</span><span id="Subquery-3483"><a href="#Subquery-3483"><span class="linenos">3483</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Subquery-3484"><a href="#Subquery-3484"><span class="linenos">3484</span></a> <span class="k">return</span> <span class="nb">all</span><span class="p">(</span><span class="n">v</span> <span class="ow">is</span> <span class="kc">None</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> <span class="k">if</span> <span class="n">k</span> <span class="o">!=</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
+</span><span id="Subquery-3485"><a href="#Subquery-3485"><span class="linenos">3485</span></a>
+</span><span id="Subquery-3486"><a href="#Subquery-3486"><span class="linenos">3486</span></a> <span class="nd">@property</span>
+</span><span id="Subquery-3487"><a href="#Subquery-3487"><span class="linenos">3487</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-3488"><a href="#Subquery-3488"><span class="linenos">3488</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-3489"><a href="#Subquery-3489"><span class="linenos">3489</span></a>
+</span><span id="Subquery-3490"><a href="#Subquery-3490"><span class="linenos">3490</span></a> <span class="nd">@property</span>
+</span><span id="Subquery-3491"><a href="#Subquery-3491"><span class="linenos">3491</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Subquery-3492"><a href="#Subquery-3492"><span class="linenos">3492</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias</span>
</span></pre></div>
@@ -42755,14 +44810,14 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Subquery.unnest"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Subquery.unnest-3436"><a href="#Subquery.unnest-3436"><span class="linenos">3436</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-3437"><a href="#Subquery.unnest-3437"><span class="linenos">3437</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Subquery.unnest-3438"><a href="#Subquery.unnest-3438"><span class="linenos">3438</span></a><span class="sd"> Returns the first non subquery.</span>
-</span><span id="Subquery.unnest-3439"><a href="#Subquery.unnest-3439"><span class="linenos">3439</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Subquery.unnest-3440"><a href="#Subquery.unnest-3440"><span class="linenos">3440</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
-</span><span id="Subquery.unnest-3441"><a href="#Subquery.unnest-3441"><span class="linenos">3441</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-3442"><a href="#Subquery.unnest-3442"><span class="linenos">3442</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-3443"><a href="#Subquery.unnest-3443"><span class="linenos">3443</span></a> <span class="k">return</span> <span class="n">expression</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Subquery.unnest-3460"><a href="#Subquery.unnest-3460"><span class="linenos">3460</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-3461"><a href="#Subquery.unnest-3461"><span class="linenos">3461</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Subquery.unnest-3462"><a href="#Subquery.unnest-3462"><span class="linenos">3462</span></a><span class="sd"> Returns the first non subquery.</span>
+</span><span id="Subquery.unnest-3463"><a href="#Subquery.unnest-3463"><span class="linenos">3463</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Subquery.unnest-3464"><a href="#Subquery.unnest-3464"><span class="linenos">3464</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
+</span><span id="Subquery.unnest-3465"><a href="#Subquery.unnest-3465"><span class="linenos">3465</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-3466"><a href="#Subquery.unnest-3466"><span class="linenos">3466</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-3467"><a href="#Subquery.unnest-3467"><span class="linenos">3467</span></a> <span class="k">return</span> <span class="n">expression</span>
</span></pre></div>
@@ -42782,11 +44837,11 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Subquery.unwrap"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Subquery.unwrap-3445"><a href="#Subquery.unwrap-3445"><span class="linenos">3445</span></a> <span class="k">def</span> <span class="nf">unwrap</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Subquery</span><span class="p">:</span>
-</span><span id="Subquery.unwrap-3446"><a href="#Subquery.unwrap-3446"><span class="linenos">3446</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
-</span><span id="Subquery.unwrap-3447"><a href="#Subquery.unwrap-3447"><span class="linenos">3447</span></a> <span class="k">while</span> <span class="n">expression</span><span class="o">.</span><span class="n">same_parent</span> <span class="ow">and</span> <span class="n">expression</span><span class="o">.</span><span class="n">is_wrapper</span><span class="p">:</span>
-</span><span id="Subquery.unwrap-3448"><a href="#Subquery.unwrap-3448"><span class="linenos">3448</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Subquery</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">parent</span><span class="p">)</span>
-</span><span id="Subquery.unwrap-3449"><a href="#Subquery.unwrap-3449"><span class="linenos">3449</span></a> <span class="k">return</span> <span class="n">expression</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Subquery.unwrap-3469"><a href="#Subquery.unwrap-3469"><span class="linenos">3469</span></a> <span class="k">def</span> <span class="nf">unwrap</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Subquery</span><span class="p">:</span>
+</span><span id="Subquery.unwrap-3470"><a href="#Subquery.unwrap-3470"><span class="linenos">3470</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
+</span><span id="Subquery.unwrap-3471"><a href="#Subquery.unwrap-3471"><span class="linenos">3471</span></a> <span class="k">while</span> <span class="n">expression</span><span class="o">.</span><span class="n">same_parent</span> <span class="ow">and</span> <span class="n">expression</span><span class="o">.</span><span class="n">is_wrapper</span><span class="p">:</span>
+</span><span id="Subquery.unwrap-3472"><a href="#Subquery.unwrap-3472"><span class="linenos">3472</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Subquery</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">parent</span><span class="p">)</span>
+</span><span id="Subquery.unwrap-3473"><a href="#Subquery.unwrap-3473"><span class="linenos">3473</span></a> <span class="k">return</span> <span class="n">expression</span>
</span></pre></div>
@@ -42794,13 +44849,27 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<div id="Subquery.is_wrapper" class="classattr">
- <div class="attr variable">
+ <input id="Subquery.is_wrapper-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">is_wrapper</span><span class="annotation">: bool</span>
-
+ <label class="view-source-button" for="Subquery.is_wrapper-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Subquery.is_wrapper"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Subquery.is_wrapper-3475"><a href="#Subquery.is_wrapper-3475"><span class="linenos">3475</span></a> <span class="nd">@property</span>
+</span><span id="Subquery.is_wrapper-3476"><a href="#Subquery.is_wrapper-3476"><span class="linenos">3476</span></a> <span class="k">def</span> <span class="nf">is_wrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="Subquery.is_wrapper-3477"><a href="#Subquery.is_wrapper-3477"><span class="linenos">3477</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Subquery.is_wrapper-3478"><a href="#Subquery.is_wrapper-3478"><span class="linenos">3478</span></a><span class="sd"> Whether this Subquery acts as a simple wrapper around another expression.</span>
+</span><span id="Subquery.is_wrapper-3479"><a href="#Subquery.is_wrapper-3479"><span class="linenos">3479</span></a>
+</span><span id="Subquery.is_wrapper-3480"><a href="#Subquery.is_wrapper-3480"><span class="linenos">3480</span></a><span class="sd"> SELECT * FROM (((SELECT * FROM t)))</span>
+</span><span id="Subquery.is_wrapper-3481"><a href="#Subquery.is_wrapper-3481"><span class="linenos">3481</span></a><span class="sd"> ^</span>
+</span><span id="Subquery.is_wrapper-3482"><a href="#Subquery.is_wrapper-3482"><span class="linenos">3482</span></a><span class="sd"> This corresponds to a &quot;wrapper&quot; Subquery node</span>
+</span><span id="Subquery.is_wrapper-3483"><a href="#Subquery.is_wrapper-3483"><span class="linenos">3483</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Subquery.is_wrapper-3484"><a href="#Subquery.is_wrapper-3484"><span class="linenos">3484</span></a> <span class="k">return</span> <span class="nb">all</span><span class="p">(</span><span class="n">v</span> <span class="ow">is</span> <span class="kc">None</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> <span class="k">if</span> <span class="n">k</span> <span class="o">!=</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
+</span></pre></div>
+
+
<div class="docstring"><p>Whether this Subquery acts as a simple wrapper around another expression.</p>
<p>SELECT * FROM (((SELECT * FROM t)))
@@ -42811,26 +44880,40 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<div id="Subquery.is_star" class="classattr">
- <div class="attr variable">
+ <input id="Subquery.is_star-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">is_star</span><span class="annotation">: bool</span>
-
+ <label class="view-source-button" for="Subquery.is_star-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Subquery.is_star"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Subquery.is_star-3486"><a href="#Subquery.is_star-3486"><span class="linenos">3486</span></a> <span class="nd">@property</span>
+</span><span id="Subquery.is_star-3487"><a href="#Subquery.is_star-3487"><span class="linenos">3487</span></a> <span class="k">def</span> <span class="nf">is_star</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="Subquery.is_star-3488"><a href="#Subquery.is_star-3488"><span class="linenos">3488</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">is_star</span>
+</span></pre></div>
+
+
<div class="docstring"><p>Checks whether an expression is a star.</p>
</div>
</div>
<div id="Subquery.output_name" class="classattr">
- <div class="attr variable">
+ <input id="Subquery.output_name-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">output_name</span><span class="annotation">: str</span>
-
+ <label class="view-source-button" for="Subquery.output_name-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Subquery.output_name"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Subquery.output_name-3490"><a href="#Subquery.output_name-3490"><span class="linenos">3490</span></a> <span class="nd">@property</span>
+</span><span id="Subquery.output_name-3491"><a href="#Subquery.output_name-3491"><span class="linenos">3491</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Subquery.output_name-3492"><a href="#Subquery.output_name-3492"><span class="linenos">3492</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias</span>
+</span></pre></div>
+
+
<div class="docstring"><p>Name of the output column if this expression is a selection.</p>
<p>If the Expression has no output name, an empty string is returned.</p>
@@ -42888,6 +44971,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Subquery.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Subquery.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Subquery.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Subquery.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Subquery.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Subquery.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Subquery.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -42907,6 +44991,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Subquery.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Subquery.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Subquery.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Subquery.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Subquery.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Subquery.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Subquery.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -42928,6 +45013,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Subquery.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Subquery.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Subquery.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Subquery.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#DerivedTable">DerivedTable</a></dt>
@@ -42955,20 +45041,19 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#TableSample"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TableSample-3471"><a href="#TableSample-3471"><span class="linenos">3471</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-3472"><a href="#TableSample-3472"><span class="linenos">3472</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="TableSample-3473"><a href="#TableSample-3473"><span class="linenos">3473</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-3474"><a href="#TableSample-3474"><span class="linenos">3474</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="TableSample-3475"><a href="#TableSample-3475"><span class="linenos">3475</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-3476"><a href="#TableSample-3476"><span class="linenos">3476</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-3477"><a href="#TableSample-3477"><span class="linenos">3477</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-3478"><a href="#TableSample-3478"><span class="linenos">3478</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-3479"><a href="#TableSample-3479"><span class="linenos">3479</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-3480"><a href="#TableSample-3480"><span class="linenos">3480</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-3481"><a href="#TableSample-3481"><span class="linenos">3481</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-3482"><a href="#TableSample-3482"><span class="linenos">3482</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-3483"><a href="#TableSample-3483"><span class="linenos">3483</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-3484"><a href="#TableSample-3484"><span class="linenos">3484</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TableSample-3495"><a href="#TableSample-3495"><span class="linenos">3495</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-3496"><a href="#TableSample-3496"><span class="linenos">3496</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="TableSample-3497"><a href="#TableSample-3497"><span class="linenos">3497</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-3498"><a href="#TableSample-3498"><span class="linenos">3498</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="TableSample-3499"><a href="#TableSample-3499"><span class="linenos">3499</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-3500"><a href="#TableSample-3500"><span class="linenos">3500</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-3501"><a href="#TableSample-3501"><span class="linenos">3501</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-3502"><a href="#TableSample-3502"><span class="linenos">3502</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-3503"><a href="#TableSample-3503"><span class="linenos">3503</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-3504"><a href="#TableSample-3504"><span class="linenos">3504</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-3505"><a href="#TableSample-3505"><span class="linenos">3505</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-3506"><a href="#TableSample-3506"><span class="linenos">3506</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-3507"><a href="#TableSample-3507"><span class="linenos">3507</span></a> <span class="p">}</span>
</span></pre></div>
@@ -42978,7 +45063,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<div class="attr variable">
<span class="name">arg_types</span> =
<input id="TableSample.arg_types-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
- <label class="view-value-button pdoc-button" for="TableSample.arg_types-view-value"></label><span class="default_value">{&#39;this&#39;: False, &#39;expressions&#39;: False, &#39;method&#39;: False, &#39;bucket_numerator&#39;: False, &#39;bucket_denominator&#39;: False, &#39;bucket_field&#39;: False, &#39;percent&#39;: False, &#39;rows&#39;: False, &#39;size&#39;: False, &#39;seed&#39;: False, &#39;kind&#39;: False}</span>
+ <label class="view-value-button pdoc-button" for="TableSample.arg_types-view-value"></label><span class="default_value">{&#39;this&#39;: False, &#39;expressions&#39;: False, &#39;method&#39;: False, &#39;bucket_numerator&#39;: False, &#39;bucket_denominator&#39;: False, &#39;bucket_field&#39;: False, &#39;percent&#39;: False, &#39;rows&#39;: False, &#39;size&#39;: False, &#39;seed&#39;: False}</span>
</div>
@@ -43024,6 +45109,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="TableSample.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="TableSample.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="TableSample.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="TableSample.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="TableSample.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="TableSample.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="TableSample.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -43044,6 +45130,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="TableSample.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="TableSample.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="TableSample.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="TableSample.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="TableSample.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="TableSample.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="TableSample.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -43065,6 +45152,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="TableSample.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="TableSample.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="TableSample.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="TableSample.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -43081,14 +45169,14 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Tag"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Tag-3487"><a href="#Tag-3487"><span class="linenos">3487</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-3488"><a href="#Tag-3488"><span class="linenos">3488</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-3489"><a href="#Tag-3489"><span class="linenos">3489</span></a>
-</span><span id="Tag-3490"><a href="#Tag-3490"><span class="linenos">3490</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Tag-3491"><a href="#Tag-3491"><span class="linenos">3491</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-3492"><a href="#Tag-3492"><span class="linenos">3492</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-3493"><a href="#Tag-3493"><span class="linenos">3493</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-3494"><a href="#Tag-3494"><span class="linenos">3494</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Tag-3510"><a href="#Tag-3510"><span class="linenos">3510</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-3511"><a href="#Tag-3511"><span class="linenos">3511</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-3512"><a href="#Tag-3512"><span class="linenos">3512</span></a>
+</span><span id="Tag-3513"><a href="#Tag-3513"><span class="linenos">3513</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Tag-3514"><a href="#Tag-3514"><span class="linenos">3514</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-3515"><a href="#Tag-3515"><span class="linenos">3515</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-3516"><a href="#Tag-3516"><span class="linenos">3516</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-3517"><a href="#Tag-3517"><span class="linenos">3517</span></a> <span class="p">}</span>
</span></pre></div>
@@ -43145,6 +45233,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Tag.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Tag.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Tag.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Tag.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Tag.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Tag.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Tag.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -43165,6 +45254,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Tag.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Tag.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Tag.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Tag.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Tag.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Tag.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Tag.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -43186,6 +45276,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Tag.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Tag.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Tag.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Tag.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -43202,18 +45293,22 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Pivot"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Pivot-3499"><a href="#Pivot-3499"><span class="linenos">3499</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-3500"><a href="#Pivot-3500"><span class="linenos">3500</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Pivot-3501"><a href="#Pivot-3501"><span class="linenos">3501</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-3502"><a href="#Pivot-3502"><span class="linenos">3502</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-3503"><a href="#Pivot-3503"><span class="linenos">3503</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Pivot-3504"><a href="#Pivot-3504"><span class="linenos">3504</span></a> <span class="s2">&quot;field&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Pivot-3505"><a href="#Pivot-3505"><span class="linenos">3505</span></a> <span class="s2">&quot;unpivot&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Pivot-3506"><a href="#Pivot-3506"><span class="linenos">3506</span></a> <span class="s2">&quot;using&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Pivot-3507"><a href="#Pivot-3507"><span class="linenos">3507</span></a> <span class="s2">&quot;group&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Pivot-3508"><a href="#Pivot-3508"><span class="linenos">3508</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-3509"><a href="#Pivot-3509"><span class="linenos">3509</span></a> <span class="s2">&quot;include_nulls&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Pivot-3510"><a href="#Pivot-3510"><span class="linenos">3510</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Pivot-3522"><a href="#Pivot-3522"><span class="linenos">3522</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-3523"><a href="#Pivot-3523"><span class="linenos">3523</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Pivot-3524"><a href="#Pivot-3524"><span class="linenos">3524</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-3525"><a href="#Pivot-3525"><span class="linenos">3525</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-3526"><a href="#Pivot-3526"><span class="linenos">3526</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Pivot-3527"><a href="#Pivot-3527"><span class="linenos">3527</span></a> <span class="s2">&quot;field&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Pivot-3528"><a href="#Pivot-3528"><span class="linenos">3528</span></a> <span class="s2">&quot;unpivot&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Pivot-3529"><a href="#Pivot-3529"><span class="linenos">3529</span></a> <span class="s2">&quot;using&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Pivot-3530"><a href="#Pivot-3530"><span class="linenos">3530</span></a> <span class="s2">&quot;group&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Pivot-3531"><a href="#Pivot-3531"><span class="linenos">3531</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-3532"><a href="#Pivot-3532"><span class="linenos">3532</span></a> <span class="s2">&quot;include_nulls&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Pivot-3533"><a href="#Pivot-3533"><span class="linenos">3533</span></a> <span class="p">}</span>
+</span><span id="Pivot-3534"><a href="#Pivot-3534"><span class="linenos">3534</span></a>
+</span><span id="Pivot-3535"><a href="#Pivot-3535"><span class="linenos">3535</span></a> <span class="nd">@property</span>
+</span><span id="Pivot-3536"><a href="#Pivot-3536"><span class="linenos">3536</span></a> <span class="k">def</span> <span class="nf">unpivot</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="Pivot-3537"><a href="#Pivot-3537"><span class="linenos">3537</span></a> <span class="k">return</span> <span class="nb">bool</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;unpivot&quot;</span><span class="p">))</span>
</span></pre></div>
@@ -43232,6 +45327,24 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
+ <div id="Pivot.unpivot" class="classattr">
+ <input id="Pivot.unpivot-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
+ <span class="name">unpivot</span><span class="annotation">: bool</span>
+
+ <label class="view-source-button" for="Pivot.unpivot-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#Pivot.unpivot"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Pivot.unpivot-3535"><a href="#Pivot.unpivot-3535"><span class="linenos">3535</span></a> <span class="nd">@property</span>
+</span><span id="Pivot.unpivot-3536"><a href="#Pivot.unpivot-3536"><span class="linenos">3536</span></a> <span class="k">def</span> <span class="nf">unpivot</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="Pivot.unpivot-3537"><a href="#Pivot.unpivot-3537"><span class="linenos">3537</span></a> <span class="k">return</span> <span class="nb">bool</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;unpivot&quot;</span><span class="p">))</span>
+</span></pre></div>
+
+
+
+
+ </div>
<div id="Pivot.key" class="classattr">
<div class="attr variable">
<span class="name">key</span> =
@@ -43269,6 +45382,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Pivot.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Pivot.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Pivot.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Pivot.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Pivot.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Pivot.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Pivot.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -43289,6 +45403,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Pivot.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Pivot.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Pivot.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Pivot.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Pivot.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Pivot.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Pivot.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -43310,6 +45425,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Pivot.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Pivot.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Pivot.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Pivot.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -43326,16 +45442,16 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Window"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Window-3513"><a href="#Window-3513"><span class="linenos">3513</span></a><span class="k">class</span> <span class="nc">Window</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
-</span><span id="Window-3514"><a href="#Window-3514"><span class="linenos">3514</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Window-3515"><a href="#Window-3515"><span class="linenos">3515</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-3516"><a href="#Window-3516"><span class="linenos">3516</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-3517"><a href="#Window-3517"><span class="linenos">3517</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-3518"><a href="#Window-3518"><span class="linenos">3518</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-3519"><a href="#Window-3519"><span class="linenos">3519</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-3520"><a href="#Window-3520"><span class="linenos">3520</span></a> <span class="s2">&quot;over&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Window-3521"><a href="#Window-3521"><span class="linenos">3521</span></a> <span class="s2">&quot;first&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Window-3522"><a href="#Window-3522"><span class="linenos">3522</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Window-3540"><a href="#Window-3540"><span class="linenos">3540</span></a><span class="k">class</span> <span class="nc">Window</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
+</span><span id="Window-3541"><a href="#Window-3541"><span class="linenos">3541</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Window-3542"><a href="#Window-3542"><span class="linenos">3542</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-3543"><a href="#Window-3543"><span class="linenos">3543</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-3544"><a href="#Window-3544"><span class="linenos">3544</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-3545"><a href="#Window-3545"><span class="linenos">3545</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-3546"><a href="#Window-3546"><span class="linenos">3546</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-3547"><a href="#Window-3547"><span class="linenos">3547</span></a> <span class="s2">&quot;over&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Window-3548"><a href="#Window-3548"><span class="linenos">3548</span></a> <span class="s2">&quot;first&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Window-3549"><a href="#Window-3549"><span class="linenos">3549</span></a> <span class="p">}</span>
</span></pre></div>
@@ -43391,6 +45507,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Window.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Window.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Window.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Window.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Window.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Window.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Window.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -43411,6 +45528,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Window.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Window.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Window.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Window.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Window.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Window.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Window.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -43432,6 +45550,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Window.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Window.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Window.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Window.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -43448,14 +45567,14 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#WindowSpec"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="WindowSpec-3525"><a href="#WindowSpec-3525"><span class="linenos">3525</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-3526"><a href="#WindowSpec-3526"><span class="linenos">3526</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="WindowSpec-3527"><a href="#WindowSpec-3527"><span class="linenos">3527</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-3528"><a href="#WindowSpec-3528"><span class="linenos">3528</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-3529"><a href="#WindowSpec-3529"><span class="linenos">3529</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-3530"><a href="#WindowSpec-3530"><span class="linenos">3530</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-3531"><a href="#WindowSpec-3531"><span class="linenos">3531</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-3532"><a href="#WindowSpec-3532"><span class="linenos">3532</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="WindowSpec-3552"><a href="#WindowSpec-3552"><span class="linenos">3552</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-3553"><a href="#WindowSpec-3553"><span class="linenos">3553</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="WindowSpec-3554"><a href="#WindowSpec-3554"><span class="linenos">3554</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-3555"><a href="#WindowSpec-3555"><span class="linenos">3555</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-3556"><a href="#WindowSpec-3556"><span class="linenos">3556</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-3557"><a href="#WindowSpec-3557"><span class="linenos">3557</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-3558"><a href="#WindowSpec-3558"><span class="linenos">3558</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-3559"><a href="#WindowSpec-3559"><span class="linenos">3559</span></a> <span class="p">}</span>
</span></pre></div>
@@ -43510,6 +45629,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="WindowSpec.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="WindowSpec.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="WindowSpec.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="WindowSpec.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="WindowSpec.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="WindowSpec.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="WindowSpec.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -43530,6 +45650,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="WindowSpec.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="WindowSpec.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="WindowSpec.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="WindowSpec.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="WindowSpec.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="WindowSpec.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="WindowSpec.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -43551,6 +45672,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="WindowSpec.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="WindowSpec.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="WindowSpec.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="WindowSpec.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -43567,8 +45689,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Where"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Where-3535"><a href="#Where-3535"><span class="linenos">3535</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-3536"><a href="#Where-3536"><span class="linenos">3536</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Where-3562"><a href="#Where-3562"><span class="linenos">3562</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-3563"><a href="#Where-3563"><span class="linenos">3563</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -43612,6 +45734,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Where.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Where.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Where.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Where.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Where.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Where.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Where.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -43632,6 +45755,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Where.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Where.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Where.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Where.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Where.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Where.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Where.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -43653,6 +45777,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Where.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Where.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Where.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Where.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -43669,16 +45794,16 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Star"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Star-3539"><a href="#Star-3539"><span class="linenos">3539</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-3540"><a href="#Star-3540"><span class="linenos">3540</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-3541"><a href="#Star-3541"><span class="linenos">3541</span></a>
-</span><span id="Star-3542"><a href="#Star-3542"><span class="linenos">3542</span></a> <span class="nd">@property</span>
-</span><span id="Star-3543"><a href="#Star-3543"><span class="linenos">3543</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-3544"><a href="#Star-3544"><span class="linenos">3544</span></a> <span class="k">return</span> <span class="s2">&quot;*&quot;</span>
-</span><span id="Star-3545"><a href="#Star-3545"><span class="linenos">3545</span></a>
-</span><span id="Star-3546"><a href="#Star-3546"><span class="linenos">3546</span></a> <span class="nd">@property</span>
-</span><span id="Star-3547"><a href="#Star-3547"><span class="linenos">3547</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Star-3548"><a href="#Star-3548"><span class="linenos">3548</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-3566"><a href="#Star-3566"><span class="linenos">3566</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-3567"><a href="#Star-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;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-3568"><a href="#Star-3568"><span class="linenos">3568</span></a>
+</span><span id="Star-3569"><a href="#Star-3569"><span class="linenos">3569</span></a> <span class="nd">@property</span>
+</span><span id="Star-3570"><a href="#Star-3570"><span class="linenos">3570</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-3571"><a href="#Star-3571"><span class="linenos">3571</span></a> <span class="k">return</span> <span class="s2">&quot;*&quot;</span>
+</span><span id="Star-3572"><a href="#Star-3572"><span class="linenos">3572</span></a>
+</span><span id="Star-3573"><a href="#Star-3573"><span class="linenos">3573</span></a> <span class="nd">@property</span>
+</span><span id="Star-3574"><a href="#Star-3574"><span class="linenos">3574</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Star-3575"><a href="#Star-3575"><span class="linenos">3575</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
</span></pre></div>
@@ -43697,24 +45822,38 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<div id="Star.name" class="classattr">
- <div class="attr variable">
+ <input id="Star.name-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">name</span><span class="annotation">: str</span>
-
+ <label class="view-source-button" for="Star.name-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Star.name"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Star.name-3569"><a href="#Star.name-3569"><span class="linenos">3569</span></a> <span class="nd">@property</span>
+</span><span id="Star.name-3570"><a href="#Star.name-3570"><span class="linenos">3570</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Star.name-3571"><a href="#Star.name-3571"><span class="linenos">3571</span></a> <span class="k">return</span> <span class="s2">&quot;*&quot;</span>
+</span></pre></div>
+
+
</div>
<div id="Star.output_name" class="classattr">
- <div class="attr variable">
+ <input id="Star.output_name-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">output_name</span><span class="annotation">: str</span>
-
+ <label class="view-source-button" for="Star.output_name-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Star.output_name"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Star.output_name-3573"><a href="#Star.output_name-3573"><span class="linenos">3573</span></a> <span class="nd">@property</span>
+</span><span id="Star.output_name-3574"><a href="#Star.output_name-3574"><span class="linenos">3574</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Star.output_name-3575"><a href="#Star.output_name-3575"><span class="linenos">3575</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
+</span></pre></div>
+
+
<div class="docstring"><p>Name of the output column if this expression is a selection.</p>
<p>If the Expression has no output name, an empty string is returned.</p>
@@ -43772,6 +45911,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Star.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Star.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Star.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Star.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Star.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Star.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Star.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -43792,6 +45932,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Star.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Star.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Star.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Star.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Star.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Star.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Star.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -43813,6 +45954,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Star.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Star.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Star.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Star.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -43829,8 +45971,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Parameter"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Parameter-3551"><a href="#Parameter-3551"><span class="linenos">3551</span></a><span class="k">class</span> <span class="nc">Parameter</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
-</span><span id="Parameter-3552"><a href="#Parameter-3552"><span class="linenos">3552</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Parameter-3578"><a href="#Parameter-3578"><span class="linenos">3578</span></a><span class="k">class</span> <span class="nc">Parameter</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
+</span><span id="Parameter-3579"><a href="#Parameter-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">False</span><span class="p">}</span>
</span></pre></div>
@@ -43885,6 +46027,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Parameter.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Parameter.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Parameter.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Parameter.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Parameter.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Parameter.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Parameter.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -43905,6 +46048,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Parameter.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Parameter.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Parameter.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Parameter.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Parameter.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Parameter.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Parameter.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -43926,6 +46070,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Parameter.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Parameter.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Parameter.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Parameter.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -43942,8 +46087,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#SessionParameter"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SessionParameter-3555"><a href="#SessionParameter-3555"><span class="linenos">3555</span></a><span class="k">class</span> <span class="nc">SessionParameter</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
-</span><span id="SessionParameter-3556"><a href="#SessionParameter-3556"><span class="linenos">3556</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-3582"><a href="#SessionParameter-3582"><span class="linenos">3582</span></a><span class="k">class</span> <span class="nc">SessionParameter</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
+</span><span id="SessionParameter-3583"><a href="#SessionParameter-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;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -43998,6 +46143,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="SessionParameter.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="SessionParameter.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="SessionParameter.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="SessionParameter.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="SessionParameter.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="SessionParameter.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="SessionParameter.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -44018,6 +46164,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="SessionParameter.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="SessionParameter.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="SessionParameter.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="SessionParameter.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="SessionParameter.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="SessionParameter.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="SessionParameter.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -44039,6 +46186,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="SessionParameter.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="SessionParameter.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="SessionParameter.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="SessionParameter.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -44055,8 +46203,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Placeholder"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Placeholder-3559"><a href="#Placeholder-3559"><span class="linenos">3559</span></a><span class="k">class</span> <span class="nc">Placeholder</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
-</span><span id="Placeholder-3560"><a href="#Placeholder-3560"><span class="linenos">3560</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Placeholder-3586"><a href="#Placeholder-3586"><span class="linenos">3586</span></a><span class="k">class</span> <span class="nc">Placeholder</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
+</span><span id="Placeholder-3587"><a href="#Placeholder-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">False</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -44111,6 +46259,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Placeholder.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Placeholder.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Placeholder.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Placeholder.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Placeholder.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Placeholder.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Placeholder.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -44131,6 +46280,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Placeholder.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Placeholder.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Placeholder.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Placeholder.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Placeholder.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Placeholder.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Placeholder.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -44152,6 +46302,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Placeholder.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Placeholder.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Placeholder.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Placeholder.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -44168,12 +46319,12 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Null"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Null-3563"><a href="#Null-3563"><span class="linenos">3563</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-3564"><a href="#Null-3564"><span class="linenos">3564</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-3565"><a href="#Null-3565"><span class="linenos">3565</span></a>
-</span><span id="Null-3566"><a href="#Null-3566"><span class="linenos">3566</span></a> <span class="nd">@property</span>
-</span><span id="Null-3567"><a href="#Null-3567"><span class="linenos">3567</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-3568"><a href="#Null-3568"><span class="linenos">3568</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-3590"><a href="#Null-3590"><span class="linenos">3590</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-3591"><a href="#Null-3591"><span class="linenos">3591</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-3592"><a href="#Null-3592"><span class="linenos">3592</span></a>
+</span><span id="Null-3593"><a href="#Null-3593"><span class="linenos">3593</span></a> <span class="nd">@property</span>
+</span><span id="Null-3594"><a href="#Null-3594"><span class="linenos">3594</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-3595"><a href="#Null-3595"><span class="linenos">3595</span></a> <span class="k">return</span> <span class="s2">&quot;NULL&quot;</span>
</span></pre></div>
@@ -44192,13 +46343,20 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<div id="Null.name" class="classattr">
- <div class="attr variable">
+ <input id="Null.name-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">name</span><span class="annotation">: str</span>
-
+ <label class="view-source-button" for="Null.name-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Null.name"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Null.name-3593"><a href="#Null.name-3593"><span class="linenos">3593</span></a> <span class="nd">@property</span>
+</span><span id="Null.name-3594"><a href="#Null.name-3594"><span class="linenos">3594</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Null.name-3595"><a href="#Null.name-3595"><span class="linenos">3595</span></a> <span class="k">return</span> <span class="s2">&quot;NULL&quot;</span>
+</span></pre></div>
+
+
</div>
@@ -44238,6 +46396,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Null.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Null.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Null.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Null.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Null.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Null.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Null.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -44258,6 +46417,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Null.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Null.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Null.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Null.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Null.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Null.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Null.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -44279,6 +46439,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Null.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Null.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Null.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Null.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -44295,8 +46456,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Boolean"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Boolean-3571"><a href="#Boolean-3571"><span class="linenos">3571</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-3572"><a href="#Boolean-3572"><span class="linenos">3572</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Boolean-3598"><a href="#Boolean-3598"><span class="linenos">3598</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-3599"><a href="#Boolean-3599"><span class="linenos">3599</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -44340,6 +46501,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Boolean.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Boolean.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Boolean.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Boolean.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Boolean.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Boolean.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Boolean.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -44360,6 +46522,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Boolean.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Boolean.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Boolean.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Boolean.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Boolean.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Boolean.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Boolean.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -44381,6 +46544,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Boolean.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Boolean.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Boolean.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Boolean.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -44397,8 +46561,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#DataTypeParam"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DataTypeParam-3575"><a href="#DataTypeParam-3575"><span class="linenos">3575</span></a><span class="k">class</span> <span class="nc">DataTypeParam</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="DataTypeParam-3576"><a href="#DataTypeParam-3576"><span class="linenos">3576</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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="DataTypeParam-3602"><a href="#DataTypeParam-3602"><span class="linenos">3602</span></a><span class="k">class</span> <span class="nc">DataTypeParam</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="DataTypeParam-3603"><a href="#DataTypeParam-3603"><span class="linenos">3603</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -44453,6 +46617,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="DataTypeParam.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DataTypeParam.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="DataTypeParam.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="DataTypeParam.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="DataTypeParam.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="DataTypeParam.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DataTypeParam.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -44473,6 +46638,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="DataTypeParam.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DataTypeParam.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DataTypeParam.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="DataTypeParam.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="DataTypeParam.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DataTypeParam.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DataTypeParam.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -44494,6 +46660,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="DataTypeParam.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="DataTypeParam.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="DataTypeParam.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="DataTypeParam.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -44510,225 +46677,225 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#DataType"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DataType-3579"><a href="#DataType-3579"><span class="linenos">3579</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-3580"><a href="#DataType-3580"><span class="linenos">3580</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="DataType-3581"><a href="#DataType-3581"><span class="linenos">3581</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-3582"><a href="#DataType-3582"><span class="linenos">3582</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-3583"><a href="#DataType-3583"><span class="linenos">3583</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-3584"><a href="#DataType-3584"><span class="linenos">3584</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-3585"><a href="#DataType-3585"><span class="linenos">3585</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-3586"><a href="#DataType-3586"><span class="linenos">3586</span></a> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="DataType-3587"><a href="#DataType-3587"><span class="linenos">3587</span></a> <span class="p">}</span>
-</span><span id="DataType-3588"><a href="#DataType-3588"><span class="linenos">3588</span></a>
-</span><span id="DataType-3589"><a href="#DataType-3589"><span class="linenos">3589</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-3590"><a href="#DataType-3590"><span class="linenos">3590</span></a> <span class="n">ARRAY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3591"><a href="#DataType-3591"><span class="linenos">3591</span></a> <span class="n">BIGDECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3592"><a href="#DataType-3592"><span class="linenos">3592</span></a> <span class="n">BIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3593"><a href="#DataType-3593"><span class="linenos">3593</span></a> <span class="n">BIGSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3594"><a href="#DataType-3594"><span class="linenos">3594</span></a> <span class="n">BINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3595"><a href="#DataType-3595"><span class="linenos">3595</span></a> <span class="n">BIT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3596"><a href="#DataType-3596"><span class="linenos">3596</span></a> <span class="n">BOOLEAN</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3597"><a href="#DataType-3597"><span class="linenos">3597</span></a> <span class="n">CHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3598"><a href="#DataType-3598"><span class="linenos">3598</span></a> <span class="n">DATE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3599"><a href="#DataType-3599"><span class="linenos">3599</span></a> <span class="n">DATEMULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3600"><a href="#DataType-3600"><span class="linenos">3600</span></a> <span class="n">DATERANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3601"><a href="#DataType-3601"><span class="linenos">3601</span></a> <span class="n">DATETIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3602"><a href="#DataType-3602"><span class="linenos">3602</span></a> <span class="n">DATETIME64</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3603"><a href="#DataType-3603"><span class="linenos">3603</span></a> <span class="n">DECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3604"><a href="#DataType-3604"><span class="linenos">3604</span></a> <span class="n">DOUBLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3605"><a href="#DataType-3605"><span class="linenos">3605</span></a> <span class="n">ENUM</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3606"><a href="#DataType-3606"><span class="linenos">3606</span></a> <span class="n">ENUM8</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3607"><a href="#DataType-3607"><span class="linenos">3607</span></a> <span class="n">ENUM16</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3608"><a href="#DataType-3608"><span class="linenos">3608</span></a> <span class="n">FIXEDSTRING</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3609"><a href="#DataType-3609"><span class="linenos">3609</span></a> <span class="n">FLOAT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3610"><a href="#DataType-3610"><span class="linenos">3610</span></a> <span class="n">GEOGRAPHY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3611"><a href="#DataType-3611"><span class="linenos">3611</span></a> <span class="n">GEOMETRY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3612"><a href="#DataType-3612"><span class="linenos">3612</span></a> <span class="n">HLLSKETCH</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3613"><a href="#DataType-3613"><span class="linenos">3613</span></a> <span class="n">HSTORE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3614"><a href="#DataType-3614"><span class="linenos">3614</span></a> <span class="n">IMAGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3615"><a href="#DataType-3615"><span class="linenos">3615</span></a> <span class="n">INET</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3616"><a href="#DataType-3616"><span class="linenos">3616</span></a> <span class="n">INT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3617"><a href="#DataType-3617"><span class="linenos">3617</span></a> <span class="n">INT128</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3618"><a href="#DataType-3618"><span class="linenos">3618</span></a> <span class="n">INT256</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3619"><a href="#DataType-3619"><span class="linenos">3619</span></a> <span class="n">INT4MULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3620"><a href="#DataType-3620"><span class="linenos">3620</span></a> <span class="n">INT4RANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3621"><a href="#DataType-3621"><span class="linenos">3621</span></a> <span class="n">INT8MULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3622"><a href="#DataType-3622"><span class="linenos">3622</span></a> <span class="n">INT8RANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3623"><a href="#DataType-3623"><span class="linenos">3623</span></a> <span class="n">INTERVAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3624"><a href="#DataType-3624"><span class="linenos">3624</span></a> <span class="n">IPADDRESS</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3625"><a href="#DataType-3625"><span class="linenos">3625</span></a> <span class="n">IPPREFIX</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3626"><a href="#DataType-3626"><span class="linenos">3626</span></a> <span class="n">JSON</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3627"><a href="#DataType-3627"><span class="linenos">3627</span></a> <span class="n">JSONB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3628"><a href="#DataType-3628"><span class="linenos">3628</span></a> <span class="n">LONGBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3629"><a href="#DataType-3629"><span class="linenos">3629</span></a> <span class="n">LONGTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3630"><a href="#DataType-3630"><span class="linenos">3630</span></a> <span class="n">LOWCARDINALITY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3631"><a href="#DataType-3631"><span class="linenos">3631</span></a> <span class="n">MAP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3632"><a href="#DataType-3632"><span class="linenos">3632</span></a> <span class="n">MEDIUMBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3633"><a href="#DataType-3633"><span class="linenos">3633</span></a> <span class="n">MEDIUMINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3634"><a href="#DataType-3634"><span class="linenos">3634</span></a> <span class="n">MEDIUMTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3635"><a href="#DataType-3635"><span class="linenos">3635</span></a> <span class="n">MONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3636"><a href="#DataType-3636"><span class="linenos">3636</span></a> <span class="n">NCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3637"><a href="#DataType-3637"><span class="linenos">3637</span></a> <span class="n">NESTED</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3638"><a href="#DataType-3638"><span class="linenos">3638</span></a> <span class="n">NULL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3639"><a href="#DataType-3639"><span class="linenos">3639</span></a> <span class="n">NULLABLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3640"><a href="#DataType-3640"><span class="linenos">3640</span></a> <span class="n">NUMMULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3641"><a href="#DataType-3641"><span class="linenos">3641</span></a> <span class="n">NUMRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3642"><a href="#DataType-3642"><span class="linenos">3642</span></a> <span class="n">NVARCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3643"><a href="#DataType-3643"><span class="linenos">3643</span></a> <span class="n">OBJECT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3644"><a href="#DataType-3644"><span class="linenos">3644</span></a> <span class="n">ROWVERSION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3645"><a href="#DataType-3645"><span class="linenos">3645</span></a> <span class="n">SERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3646"><a href="#DataType-3646"><span class="linenos">3646</span></a> <span class="n">SET</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3647"><a href="#DataType-3647"><span class="linenos">3647</span></a> <span class="n">SMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3648"><a href="#DataType-3648"><span class="linenos">3648</span></a> <span class="n">SMALLMONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3649"><a href="#DataType-3649"><span class="linenos">3649</span></a> <span class="n">SMALLSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3650"><a href="#DataType-3650"><span class="linenos">3650</span></a> <span class="n">STRUCT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3651"><a href="#DataType-3651"><span class="linenos">3651</span></a> <span class="n">SUPER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3652"><a href="#DataType-3652"><span class="linenos">3652</span></a> <span class="n">TEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3653"><a href="#DataType-3653"><span class="linenos">3653</span></a> <span class="n">TINYBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3654"><a href="#DataType-3654"><span class="linenos">3654</span></a> <span class="n">TINYTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3655"><a href="#DataType-3655"><span class="linenos">3655</span></a> <span class="n">TIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3656"><a href="#DataType-3656"><span class="linenos">3656</span></a> <span class="n">TIMETZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3657"><a href="#DataType-3657"><span class="linenos">3657</span></a> <span class="n">TIMESTAMP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3658"><a href="#DataType-3658"><span class="linenos">3658</span></a> <span class="n">TIMESTAMPLTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3659"><a href="#DataType-3659"><span class="linenos">3659</span></a> <span class="n">TIMESTAMPTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3660"><a href="#DataType-3660"><span class="linenos">3660</span></a> <span class="n">TIMESTAMP_S</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3661"><a href="#DataType-3661"><span class="linenos">3661</span></a> <span class="n">TIMESTAMP_MS</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3662"><a href="#DataType-3662"><span class="linenos">3662</span></a> <span class="n">TIMESTAMP_NS</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3663"><a href="#DataType-3663"><span class="linenos">3663</span></a> <span class="n">TINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3664"><a href="#DataType-3664"><span class="linenos">3664</span></a> <span class="n">TSMULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3665"><a href="#DataType-3665"><span class="linenos">3665</span></a> <span class="n">TSRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3666"><a href="#DataType-3666"><span class="linenos">3666</span></a> <span class="n">TSTZMULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3667"><a href="#DataType-3667"><span class="linenos">3667</span></a> <span class="n">TSTZRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3668"><a href="#DataType-3668"><span class="linenos">3668</span></a> <span class="n">UBIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3669"><a href="#DataType-3669"><span class="linenos">3669</span></a> <span class="n">UINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3670"><a href="#DataType-3670"><span class="linenos">3670</span></a> <span class="n">UINT128</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3671"><a href="#DataType-3671"><span class="linenos">3671</span></a> <span class="n">UINT256</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3672"><a href="#DataType-3672"><span class="linenos">3672</span></a> <span class="n">UMEDIUMINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3673"><a href="#DataType-3673"><span class="linenos">3673</span></a> <span class="n">UDECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3674"><a href="#DataType-3674"><span class="linenos">3674</span></a> <span class="n">UNIQUEIDENTIFIER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3675"><a href="#DataType-3675"><span class="linenos">3675</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-3676"><a href="#DataType-3676"><span class="linenos">3676</span></a> <span class="n">USERDEFINED</span> <span class="o">=</span> <span class="s2">&quot;USER-DEFINED&quot;</span>
-</span><span id="DataType-3677"><a href="#DataType-3677"><span class="linenos">3677</span></a> <span class="n">USMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3678"><a href="#DataType-3678"><span class="linenos">3678</span></a> <span class="n">UTINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3679"><a href="#DataType-3679"><span class="linenos">3679</span></a> <span class="n">UUID</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3680"><a href="#DataType-3680"><span class="linenos">3680</span></a> <span class="n">VARBINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3681"><a href="#DataType-3681"><span class="linenos">3681</span></a> <span class="n">VARCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3682"><a href="#DataType-3682"><span class="linenos">3682</span></a> <span class="n">VARIANT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3683"><a href="#DataType-3683"><span class="linenos">3683</span></a> <span class="n">XML</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3684"><a href="#DataType-3684"><span class="linenos">3684</span></a> <span class="n">YEAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3685"><a href="#DataType-3685"><span class="linenos">3685</span></a>
-</span><span id="DataType-3686"><a href="#DataType-3686"><span class="linenos">3686</span></a> <span class="n">TEXT_TYPES</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="DataType-3687"><a href="#DataType-3687"><span class="linenos">3687</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">CHAR</span><span class="p">,</span>
-</span><span id="DataType-3688"><a href="#DataType-3688"><span class="linenos">3688</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NCHAR</span><span class="p">,</span>
-</span><span id="DataType-3689"><a href="#DataType-3689"><span class="linenos">3689</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">VARCHAR</span><span class="p">,</span>
-</span><span id="DataType-3690"><a href="#DataType-3690"><span class="linenos">3690</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NVARCHAR</span><span class="p">,</span>
-</span><span id="DataType-3691"><a href="#DataType-3691"><span class="linenos">3691</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span>
-</span><span id="DataType-3692"><a href="#DataType-3692"><span class="linenos">3692</span></a> <span class="p">}</span>
-</span><span id="DataType-3693"><a href="#DataType-3693"><span class="linenos">3693</span></a>
-</span><span id="DataType-3694"><a href="#DataType-3694"><span class="linenos">3694</span></a> <span class="n">INTEGER_TYPES</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="DataType-3695"><a href="#DataType-3695"><span class="linenos">3695</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">INT</span><span class="p">,</span>
-</span><span id="DataType-3696"><a href="#DataType-3696"><span class="linenos">3696</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TINYINT</span><span class="p">,</span>
-</span><span id="DataType-3697"><a href="#DataType-3697"><span class="linenos">3697</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">SMALLINT</span><span class="p">,</span>
-</span><span id="DataType-3698"><a href="#DataType-3698"><span class="linenos">3698</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">BIGINT</span><span class="p">,</span>
-</span><span id="DataType-3699"><a href="#DataType-3699"><span class="linenos">3699</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">INT128</span><span class="p">,</span>
-</span><span id="DataType-3700"><a href="#DataType-3700"><span class="linenos">3700</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">INT256</span><span class="p">,</span>
-</span><span id="DataType-3701"><a href="#DataType-3701"><span class="linenos">3701</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">BIT</span><span class="p">,</span>
-</span><span id="DataType-3702"><a href="#DataType-3702"><span class="linenos">3702</span></a> <span class="p">}</span>
-</span><span id="DataType-3703"><a href="#DataType-3703"><span class="linenos">3703</span></a>
-</span><span id="DataType-3704"><a href="#DataType-3704"><span class="linenos">3704</span></a> <span class="n">FLOAT_TYPES</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="DataType-3705"><a href="#DataType-3705"><span class="linenos">3705</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">FLOAT</span><span class="p">,</span>
-</span><span id="DataType-3706"><a href="#DataType-3706"><span class="linenos">3706</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DOUBLE</span><span class="p">,</span>
-</span><span id="DataType-3707"><a href="#DataType-3707"><span class="linenos">3707</span></a> <span class="p">}</span>
-</span><span id="DataType-3708"><a href="#DataType-3708"><span class="linenos">3708</span></a>
-</span><span id="DataType-3709"><a href="#DataType-3709"><span class="linenos">3709</span></a> <span class="n">NUMERIC_TYPES</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="DataType-3710"><a href="#DataType-3710"><span class="linenos">3710</span></a> <span class="o">*</span><span class="n">INTEGER_TYPES</span><span class="p">,</span>
-</span><span id="DataType-3711"><a href="#DataType-3711"><span class="linenos">3711</span></a> <span class="o">*</span><span class="n">FLOAT_TYPES</span><span class="p">,</span>
-</span><span id="DataType-3712"><a href="#DataType-3712"><span class="linenos">3712</span></a> <span class="p">}</span>
-</span><span id="DataType-3713"><a href="#DataType-3713"><span class="linenos">3713</span></a>
-</span><span id="DataType-3714"><a href="#DataType-3714"><span class="linenos">3714</span></a> <span class="n">TEMPORAL_TYPES</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="DataType-3715"><a href="#DataType-3715"><span class="linenos">3715</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIME</span><span class="p">,</span>
-</span><span id="DataType-3716"><a href="#DataType-3716"><span class="linenos">3716</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMETZ</span><span class="p">,</span>
-</span><span id="DataType-3717"><a href="#DataType-3717"><span class="linenos">3717</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span>
-</span><span id="DataType-3718"><a href="#DataType-3718"><span class="linenos">3718</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span>
-</span><span id="DataType-3719"><a href="#DataType-3719"><span class="linenos">3719</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPLTZ</span><span class="p">,</span>
-</span><span id="DataType-3720"><a href="#DataType-3720"><span class="linenos">3720</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP_S</span><span class="p">,</span>
-</span><span id="DataType-3721"><a href="#DataType-3721"><span class="linenos">3721</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP_MS</span><span class="p">,</span>
-</span><span id="DataType-3722"><a href="#DataType-3722"><span class="linenos">3722</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP_NS</span><span class="p">,</span>
-</span><span id="DataType-3723"><a href="#DataType-3723"><span class="linenos">3723</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATE</span><span class="p">,</span>
-</span><span id="DataType-3724"><a href="#DataType-3724"><span class="linenos">3724</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">,</span>
-</span><span id="DataType-3725"><a href="#DataType-3725"><span class="linenos">3725</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATETIME64</span><span class="p">,</span>
-</span><span id="DataType-3726"><a href="#DataType-3726"><span class="linenos">3726</span></a> <span class="p">}</span>
-</span><span id="DataType-3727"><a href="#DataType-3727"><span class="linenos">3727</span></a>
-</span><span id="DataType-3728"><a href="#DataType-3728"><span class="linenos">3728</span></a> <span class="nd">@classmethod</span>
-</span><span id="DataType-3729"><a href="#DataType-3729"><span class="linenos">3729</span></a> <span class="k">def</span> <span class="nf">build</span><span class="p">(</span>
-</span><span id="DataType-3730"><a href="#DataType-3730"><span class="linenos">3730</span></a> <span class="bp">cls</span><span class="p">,</span>
-</span><span id="DataType-3731"><a href="#DataType-3731"><span class="linenos">3731</span></a> <span class="n">dtype</span><span class="p">:</span> <span class="n">DATA_TYPE</span><span class="p">,</span>
-</span><span id="DataType-3732"><a href="#DataType-3732"><span class="linenos">3732</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="DataType-3733"><a href="#DataType-3733"><span class="linenos">3733</span></a> <span class="n">udt</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="DataType-3734"><a href="#DataType-3734"><span class="linenos">3734</span></a> <span class="o">**</span><span class="n">kwargs</span><span class="p">,</span>
-</span><span id="DataType-3735"><a href="#DataType-3735"><span class="linenos">3735</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DataType</span><span class="p">:</span>
-</span><span id="DataType-3736"><a href="#DataType-3736"><span class="linenos">3736</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="DataType-3737"><a href="#DataType-3737"><span class="linenos">3737</span></a><span class="sd"> Constructs a DataType object.</span>
-</span><span id="DataType-3738"><a href="#DataType-3738"><span class="linenos">3738</span></a>
-</span><span id="DataType-3739"><a href="#DataType-3739"><span class="linenos">3739</span></a><span class="sd"> Args:</span>
-</span><span id="DataType-3740"><a href="#DataType-3740"><span class="linenos">3740</span></a><span class="sd"> dtype: the data type of interest.</span>
-</span><span id="DataType-3741"><a href="#DataType-3741"><span class="linenos">3741</span></a><span class="sd"> dialect: the dialect to use for parsing `dtype`, in case it&#39;s a string.</span>
-</span><span id="DataType-3742"><a href="#DataType-3742"><span class="linenos">3742</span></a><span class="sd"> udt: when set to True, `dtype` will be used as-is if it can&#39;t be parsed into a</span>
-</span><span id="DataType-3743"><a href="#DataType-3743"><span class="linenos">3743</span></a><span class="sd"> DataType, thus creating a user-defined type.</span>
-</span><span id="DataType-3744"><a href="#DataType-3744"><span class="linenos">3744</span></a><span class="sd"> kawrgs: additional arguments to pass in the constructor of DataType.</span>
-</span><span id="DataType-3745"><a href="#DataType-3745"><span class="linenos">3745</span></a>
-</span><span id="DataType-3746"><a href="#DataType-3746"><span class="linenos">3746</span></a><span class="sd"> Returns:</span>
-</span><span id="DataType-3747"><a href="#DataType-3747"><span class="linenos">3747</span></a><span class="sd"> The constructed DataType object.</span>
-</span><span id="DataType-3748"><a href="#DataType-3748"><span class="linenos">3748</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="DataType-3749"><a href="#DataType-3749"><span class="linenos">3749</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-3750"><a href="#DataType-3750"><span class="linenos">3750</span></a>
-</span><span id="DataType-3751"><a href="#DataType-3751"><span class="linenos">3751</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-3752"><a href="#DataType-3752"><span class="linenos">3752</span></a> <span class="k">if</span> <span class="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">&quot;UNKNOWN&quot;</span><span class="p">:</span>
-</span><span id="DataType-3753"><a href="#DataType-3753"><span class="linenos">3753</span></a> <span class="k">return</span> <span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">UNKNOWN</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DataType-3606"><a href="#DataType-3606"><span class="linenos">3606</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-3607"><a href="#DataType-3607"><span class="linenos">3607</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="DataType-3608"><a href="#DataType-3608"><span class="linenos">3608</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-3609"><a href="#DataType-3609"><span class="linenos">3609</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-3610"><a href="#DataType-3610"><span class="linenos">3610</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-3611"><a href="#DataType-3611"><span class="linenos">3611</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-3612"><a href="#DataType-3612"><span class="linenos">3612</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-3613"><a href="#DataType-3613"><span class="linenos">3613</span></a> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="DataType-3614"><a href="#DataType-3614"><span class="linenos">3614</span></a> <span class="p">}</span>
+</span><span id="DataType-3615"><a href="#DataType-3615"><span class="linenos">3615</span></a>
+</span><span id="DataType-3616"><a href="#DataType-3616"><span class="linenos">3616</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-3617"><a href="#DataType-3617"><span class="linenos">3617</span></a> <span class="n">ARRAY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3618"><a href="#DataType-3618"><span class="linenos">3618</span></a> <span class="n">BIGDECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3619"><a href="#DataType-3619"><span class="linenos">3619</span></a> <span class="n">BIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3620"><a href="#DataType-3620"><span class="linenos">3620</span></a> <span class="n">BIGSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3621"><a href="#DataType-3621"><span class="linenos">3621</span></a> <span class="n">BINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3622"><a href="#DataType-3622"><span class="linenos">3622</span></a> <span class="n">BIT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3623"><a href="#DataType-3623"><span class="linenos">3623</span></a> <span class="n">BOOLEAN</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3624"><a href="#DataType-3624"><span class="linenos">3624</span></a> <span class="n">CHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3625"><a href="#DataType-3625"><span class="linenos">3625</span></a> <span class="n">DATE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3626"><a href="#DataType-3626"><span class="linenos">3626</span></a> <span class="n">DATEMULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3627"><a href="#DataType-3627"><span class="linenos">3627</span></a> <span class="n">DATERANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3628"><a href="#DataType-3628"><span class="linenos">3628</span></a> <span class="n">DATETIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3629"><a href="#DataType-3629"><span class="linenos">3629</span></a> <span class="n">DATETIME64</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3630"><a href="#DataType-3630"><span class="linenos">3630</span></a> <span class="n">DECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3631"><a href="#DataType-3631"><span class="linenos">3631</span></a> <span class="n">DOUBLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3632"><a href="#DataType-3632"><span class="linenos">3632</span></a> <span class="n">ENUM</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3633"><a href="#DataType-3633"><span class="linenos">3633</span></a> <span class="n">ENUM8</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3634"><a href="#DataType-3634"><span class="linenos">3634</span></a> <span class="n">ENUM16</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3635"><a href="#DataType-3635"><span class="linenos">3635</span></a> <span class="n">FIXEDSTRING</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3636"><a href="#DataType-3636"><span class="linenos">3636</span></a> <span class="n">FLOAT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3637"><a href="#DataType-3637"><span class="linenos">3637</span></a> <span class="n">GEOGRAPHY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3638"><a href="#DataType-3638"><span class="linenos">3638</span></a> <span class="n">GEOMETRY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3639"><a href="#DataType-3639"><span class="linenos">3639</span></a> <span class="n">HLLSKETCH</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3640"><a href="#DataType-3640"><span class="linenos">3640</span></a> <span class="n">HSTORE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3641"><a href="#DataType-3641"><span class="linenos">3641</span></a> <span class="n">IMAGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3642"><a href="#DataType-3642"><span class="linenos">3642</span></a> <span class="n">INET</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3643"><a href="#DataType-3643"><span class="linenos">3643</span></a> <span class="n">INT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3644"><a href="#DataType-3644"><span class="linenos">3644</span></a> <span class="n">INT128</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3645"><a href="#DataType-3645"><span class="linenos">3645</span></a> <span class="n">INT256</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3646"><a href="#DataType-3646"><span class="linenos">3646</span></a> <span class="n">INT4MULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3647"><a href="#DataType-3647"><span class="linenos">3647</span></a> <span class="n">INT4RANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3648"><a href="#DataType-3648"><span class="linenos">3648</span></a> <span class="n">INT8MULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3649"><a href="#DataType-3649"><span class="linenos">3649</span></a> <span class="n">INT8RANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3650"><a href="#DataType-3650"><span class="linenos">3650</span></a> <span class="n">INTERVAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3651"><a href="#DataType-3651"><span class="linenos">3651</span></a> <span class="n">IPADDRESS</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3652"><a href="#DataType-3652"><span class="linenos">3652</span></a> <span class="n">IPPREFIX</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3653"><a href="#DataType-3653"><span class="linenos">3653</span></a> <span class="n">JSON</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3654"><a href="#DataType-3654"><span class="linenos">3654</span></a> <span class="n">JSONB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3655"><a href="#DataType-3655"><span class="linenos">3655</span></a> <span class="n">LONGBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3656"><a href="#DataType-3656"><span class="linenos">3656</span></a> <span class="n">LONGTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3657"><a href="#DataType-3657"><span class="linenos">3657</span></a> <span class="n">LOWCARDINALITY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3658"><a href="#DataType-3658"><span class="linenos">3658</span></a> <span class="n">MAP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3659"><a href="#DataType-3659"><span class="linenos">3659</span></a> <span class="n">MEDIUMBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3660"><a href="#DataType-3660"><span class="linenos">3660</span></a> <span class="n">MEDIUMINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3661"><a href="#DataType-3661"><span class="linenos">3661</span></a> <span class="n">MEDIUMTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3662"><a href="#DataType-3662"><span class="linenos">3662</span></a> <span class="n">MONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3663"><a href="#DataType-3663"><span class="linenos">3663</span></a> <span class="n">NCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3664"><a href="#DataType-3664"><span class="linenos">3664</span></a> <span class="n">NESTED</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3665"><a href="#DataType-3665"><span class="linenos">3665</span></a> <span class="n">NULL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3666"><a href="#DataType-3666"><span class="linenos">3666</span></a> <span class="n">NULLABLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3667"><a href="#DataType-3667"><span class="linenos">3667</span></a> <span class="n">NUMMULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3668"><a href="#DataType-3668"><span class="linenos">3668</span></a> <span class="n">NUMRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3669"><a href="#DataType-3669"><span class="linenos">3669</span></a> <span class="n">NVARCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3670"><a href="#DataType-3670"><span class="linenos">3670</span></a> <span class="n">OBJECT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3671"><a href="#DataType-3671"><span class="linenos">3671</span></a> <span class="n">ROWVERSION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3672"><a href="#DataType-3672"><span class="linenos">3672</span></a> <span class="n">SERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3673"><a href="#DataType-3673"><span class="linenos">3673</span></a> <span class="n">SET</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3674"><a href="#DataType-3674"><span class="linenos">3674</span></a> <span class="n">SMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3675"><a href="#DataType-3675"><span class="linenos">3675</span></a> <span class="n">SMALLMONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3676"><a href="#DataType-3676"><span class="linenos">3676</span></a> <span class="n">SMALLSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3677"><a href="#DataType-3677"><span class="linenos">3677</span></a> <span class="n">STRUCT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3678"><a href="#DataType-3678"><span class="linenos">3678</span></a> <span class="n">SUPER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3679"><a href="#DataType-3679"><span class="linenos">3679</span></a> <span class="n">TEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3680"><a href="#DataType-3680"><span class="linenos">3680</span></a> <span class="n">TINYBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3681"><a href="#DataType-3681"><span class="linenos">3681</span></a> <span class="n">TINYTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3682"><a href="#DataType-3682"><span class="linenos">3682</span></a> <span class="n">TIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3683"><a href="#DataType-3683"><span class="linenos">3683</span></a> <span class="n">TIMETZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3684"><a href="#DataType-3684"><span class="linenos">3684</span></a> <span class="n">TIMESTAMP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3685"><a href="#DataType-3685"><span class="linenos">3685</span></a> <span class="n">TIMESTAMPLTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3686"><a href="#DataType-3686"><span class="linenos">3686</span></a> <span class="n">TIMESTAMPTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3687"><a href="#DataType-3687"><span class="linenos">3687</span></a> <span class="n">TIMESTAMP_S</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3688"><a href="#DataType-3688"><span class="linenos">3688</span></a> <span class="n">TIMESTAMP_MS</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3689"><a href="#DataType-3689"><span class="linenos">3689</span></a> <span class="n">TIMESTAMP_NS</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3690"><a href="#DataType-3690"><span class="linenos">3690</span></a> <span class="n">TINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3691"><a href="#DataType-3691"><span class="linenos">3691</span></a> <span class="n">TSMULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3692"><a href="#DataType-3692"><span class="linenos">3692</span></a> <span class="n">TSRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3693"><a href="#DataType-3693"><span class="linenos">3693</span></a> <span class="n">TSTZMULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3694"><a href="#DataType-3694"><span class="linenos">3694</span></a> <span class="n">TSTZRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3695"><a href="#DataType-3695"><span class="linenos">3695</span></a> <span class="n">UBIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3696"><a href="#DataType-3696"><span class="linenos">3696</span></a> <span class="n">UINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3697"><a href="#DataType-3697"><span class="linenos">3697</span></a> <span class="n">UINT128</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3698"><a href="#DataType-3698"><span class="linenos">3698</span></a> <span class="n">UINT256</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3699"><a href="#DataType-3699"><span class="linenos">3699</span></a> <span class="n">UMEDIUMINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3700"><a href="#DataType-3700"><span class="linenos">3700</span></a> <span class="n">UDECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3701"><a href="#DataType-3701"><span class="linenos">3701</span></a> <span class="n">UNIQUEIDENTIFIER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3702"><a href="#DataType-3702"><span class="linenos">3702</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-3703"><a href="#DataType-3703"><span class="linenos">3703</span></a> <span class="n">USERDEFINED</span> <span class="o">=</span> <span class="s2">&quot;USER-DEFINED&quot;</span>
+</span><span id="DataType-3704"><a href="#DataType-3704"><span class="linenos">3704</span></a> <span class="n">USMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3705"><a href="#DataType-3705"><span class="linenos">3705</span></a> <span class="n">UTINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3706"><a href="#DataType-3706"><span class="linenos">3706</span></a> <span class="n">UUID</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3707"><a href="#DataType-3707"><span class="linenos">3707</span></a> <span class="n">VARBINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3708"><a href="#DataType-3708"><span class="linenos">3708</span></a> <span class="n">VARCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3709"><a href="#DataType-3709"><span class="linenos">3709</span></a> <span class="n">VARIANT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3710"><a href="#DataType-3710"><span class="linenos">3710</span></a> <span class="n">XML</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3711"><a href="#DataType-3711"><span class="linenos">3711</span></a> <span class="n">YEAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3712"><a href="#DataType-3712"><span class="linenos">3712</span></a>
+</span><span id="DataType-3713"><a href="#DataType-3713"><span class="linenos">3713</span></a> <span class="n">TEXT_TYPES</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="DataType-3714"><a href="#DataType-3714"><span class="linenos">3714</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">CHAR</span><span class="p">,</span>
+</span><span id="DataType-3715"><a href="#DataType-3715"><span class="linenos">3715</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NCHAR</span><span class="p">,</span>
+</span><span id="DataType-3716"><a href="#DataType-3716"><span class="linenos">3716</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">VARCHAR</span><span class="p">,</span>
+</span><span id="DataType-3717"><a href="#DataType-3717"><span class="linenos">3717</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NVARCHAR</span><span class="p">,</span>
+</span><span id="DataType-3718"><a href="#DataType-3718"><span class="linenos">3718</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span>
+</span><span id="DataType-3719"><a href="#DataType-3719"><span class="linenos">3719</span></a> <span class="p">}</span>
+</span><span id="DataType-3720"><a href="#DataType-3720"><span class="linenos">3720</span></a>
+</span><span id="DataType-3721"><a href="#DataType-3721"><span class="linenos">3721</span></a> <span class="n">INTEGER_TYPES</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="DataType-3722"><a href="#DataType-3722"><span class="linenos">3722</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">INT</span><span class="p">,</span>
+</span><span id="DataType-3723"><a href="#DataType-3723"><span class="linenos">3723</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TINYINT</span><span class="p">,</span>
+</span><span id="DataType-3724"><a href="#DataType-3724"><span class="linenos">3724</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">SMALLINT</span><span class="p">,</span>
+</span><span id="DataType-3725"><a href="#DataType-3725"><span class="linenos">3725</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">BIGINT</span><span class="p">,</span>
+</span><span id="DataType-3726"><a href="#DataType-3726"><span class="linenos">3726</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">INT128</span><span class="p">,</span>
+</span><span id="DataType-3727"><a href="#DataType-3727"><span class="linenos">3727</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">INT256</span><span class="p">,</span>
+</span><span id="DataType-3728"><a href="#DataType-3728"><span class="linenos">3728</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">BIT</span><span class="p">,</span>
+</span><span id="DataType-3729"><a href="#DataType-3729"><span class="linenos">3729</span></a> <span class="p">}</span>
+</span><span id="DataType-3730"><a href="#DataType-3730"><span class="linenos">3730</span></a>
+</span><span id="DataType-3731"><a href="#DataType-3731"><span class="linenos">3731</span></a> <span class="n">FLOAT_TYPES</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="DataType-3732"><a href="#DataType-3732"><span class="linenos">3732</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">FLOAT</span><span class="p">,</span>
+</span><span id="DataType-3733"><a href="#DataType-3733"><span class="linenos">3733</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DOUBLE</span><span class="p">,</span>
+</span><span id="DataType-3734"><a href="#DataType-3734"><span class="linenos">3734</span></a> <span class="p">}</span>
+</span><span id="DataType-3735"><a href="#DataType-3735"><span class="linenos">3735</span></a>
+</span><span id="DataType-3736"><a href="#DataType-3736"><span class="linenos">3736</span></a> <span class="n">NUMERIC_TYPES</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="DataType-3737"><a href="#DataType-3737"><span class="linenos">3737</span></a> <span class="o">*</span><span class="n">INTEGER_TYPES</span><span class="p">,</span>
+</span><span id="DataType-3738"><a href="#DataType-3738"><span class="linenos">3738</span></a> <span class="o">*</span><span class="n">FLOAT_TYPES</span><span class="p">,</span>
+</span><span id="DataType-3739"><a href="#DataType-3739"><span class="linenos">3739</span></a> <span class="p">}</span>
+</span><span id="DataType-3740"><a href="#DataType-3740"><span class="linenos">3740</span></a>
+</span><span id="DataType-3741"><a href="#DataType-3741"><span class="linenos">3741</span></a> <span class="n">TEMPORAL_TYPES</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="DataType-3742"><a href="#DataType-3742"><span class="linenos">3742</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIME</span><span class="p">,</span>
+</span><span id="DataType-3743"><a href="#DataType-3743"><span class="linenos">3743</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMETZ</span><span class="p">,</span>
+</span><span id="DataType-3744"><a href="#DataType-3744"><span class="linenos">3744</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span>
+</span><span id="DataType-3745"><a href="#DataType-3745"><span class="linenos">3745</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span>
+</span><span id="DataType-3746"><a href="#DataType-3746"><span class="linenos">3746</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPLTZ</span><span class="p">,</span>
+</span><span id="DataType-3747"><a href="#DataType-3747"><span class="linenos">3747</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP_S</span><span class="p">,</span>
+</span><span id="DataType-3748"><a href="#DataType-3748"><span class="linenos">3748</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP_MS</span><span class="p">,</span>
+</span><span id="DataType-3749"><a href="#DataType-3749"><span class="linenos">3749</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP_NS</span><span class="p">,</span>
+</span><span id="DataType-3750"><a href="#DataType-3750"><span class="linenos">3750</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATE</span><span class="p">,</span>
+</span><span id="DataType-3751"><a href="#DataType-3751"><span class="linenos">3751</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">,</span>
+</span><span id="DataType-3752"><a href="#DataType-3752"><span class="linenos">3752</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATETIME64</span><span class="p">,</span>
+</span><span id="DataType-3753"><a href="#DataType-3753"><span class="linenos">3753</span></a> <span class="p">}</span>
</span><span id="DataType-3754"><a href="#DataType-3754"><span class="linenos">3754</span></a>
-</span><span id="DataType-3755"><a href="#DataType-3755"><span class="linenos">3755</span></a> <span class="k">try</span><span class="p">:</span>
-</span><span id="DataType-3756"><a href="#DataType-3756"><span class="linenos">3756</span></a> <span class="n">data_type_exp</span> <span class="o">=</span> <span class="n">parse_one</span><span class="p">(</span>
-</span><span id="DataType-3757"><a href="#DataType-3757"><span class="linenos">3757</span></a> <span class="n">dtype</span><span class="p">,</span> <span class="n">read</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">DataType</span><span class="p">,</span> <span class="n">error_level</span><span class="o">=</span><span class="n">ErrorLevel</span><span class="o">.</span><span class="n">IGNORE</span>
-</span><span id="DataType-3758"><a href="#DataType-3758"><span class="linenos">3758</span></a> <span class="p">)</span>
-</span><span id="DataType-3759"><a href="#DataType-3759"><span class="linenos">3759</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span>
-</span><span id="DataType-3760"><a href="#DataType-3760"><span class="linenos">3760</span></a> <span class="k">if</span> <span class="n">udt</span><span class="p">:</span>
-</span><span id="DataType-3761"><a href="#DataType-3761"><span class="linenos">3761</span></a> <span class="k">return</span> <span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">USERDEFINED</span><span class="p">,</span> <span class="n">kind</span><span class="o">=</span><span class="n">dtype</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
-</span><span id="DataType-3762"><a href="#DataType-3762"><span class="linenos">3762</span></a> <span class="k">raise</span>
-</span><span id="DataType-3763"><a href="#DataType-3763"><span class="linenos">3763</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-3764"><a href="#DataType-3764"><span class="linenos">3764</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-3765"><a href="#DataType-3765"><span class="linenos">3765</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-3766"><a href="#DataType-3766"><span class="linenos">3766</span></a> <span class="k">return</span> <span class="n">dtype</span>
-</span><span id="DataType-3767"><a href="#DataType-3767"><span class="linenos">3767</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="DataType-3768"><a href="#DataType-3768"><span class="linenos">3768</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-3769"><a href="#DataType-3769"><span class="linenos">3769</span></a>
-</span><span id="DataType-3770"><a href="#DataType-3770"><span class="linenos">3770</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-3771"><a href="#DataType-3771"><span class="linenos">3771</span></a>
-</span><span id="DataType-3772"><a href="#DataType-3772"><span class="linenos">3772</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">dtypes</span><span class="p">:</span> <span class="n">DATA_TYPE</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="DataType-3773"><a href="#DataType-3773"><span class="linenos">3773</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="DataType-3774"><a href="#DataType-3774"><span class="linenos">3774</span></a><span class="sd"> Checks whether this DataType matches one of the provided data types. Nested types or precision</span>
-</span><span id="DataType-3775"><a href="#DataType-3775"><span class="linenos">3775</span></a><span class="sd"> will be compared using &quot;structural equivalence&quot; semantics, so e.g. array&lt;int&gt; != array&lt;float&gt;.</span>
-</span><span id="DataType-3776"><a href="#DataType-3776"><span class="linenos">3776</span></a>
-</span><span id="DataType-3777"><a href="#DataType-3777"><span class="linenos">3777</span></a><span class="sd"> Args:</span>
-</span><span id="DataType-3778"><a href="#DataType-3778"><span class="linenos">3778</span></a><span class="sd"> dtypes: the data types to compare this DataType to.</span>
-</span><span id="DataType-3779"><a href="#DataType-3779"><span class="linenos">3779</span></a>
-</span><span id="DataType-3780"><a href="#DataType-3780"><span class="linenos">3780</span></a><span class="sd"> Returns:</span>
-</span><span id="DataType-3781"><a href="#DataType-3781"><span class="linenos">3781</span></a><span class="sd"> True, if and only if there is a type in `dtypes` which is equal to this DataType.</span>
-</span><span id="DataType-3782"><a href="#DataType-3782"><span class="linenos">3782</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="DataType-3783"><a href="#DataType-3783"><span class="linenos">3783</span></a> <span class="k">for</span> <span class="n">dtype</span> <span class="ow">in</span> <span class="n">dtypes</span><span class="p">:</span>
-</span><span id="DataType-3784"><a href="#DataType-3784"><span class="linenos">3784</span></a> <span class="n">other</span> <span class="o">=</span> <span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">udt</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</span><span id="DataType-3785"><a href="#DataType-3785"><span class="linenos">3785</span></a>
-</span><span id="DataType-3786"><a href="#DataType-3786"><span class="linenos">3786</span></a> <span class="k">if</span> <span class="p">(</span>
-</span><span id="DataType-3787"><a href="#DataType-3787"><span class="linenos">3787</span></a> <span class="n">other</span><span class="o">.</span><span class="n">expressions</span>
-</span><span id="DataType-3788"><a href="#DataType-3788"><span class="linenos">3788</span></a> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">USERDEFINED</span>
-</span><span id="DataType-3789"><a href="#DataType-3789"><span class="linenos">3789</span></a> <span class="ow">or</span> <span class="n">other</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">USERDEFINED</span>
-</span><span id="DataType-3790"><a href="#DataType-3790"><span class="linenos">3790</span></a> <span class="p">):</span>
-</span><span id="DataType-3791"><a href="#DataType-3791"><span class="linenos">3791</span></a> <span class="n">matches</span> <span class="o">=</span> <span class="bp">self</span> <span class="o">==</span> <span class="n">other</span>
-</span><span id="DataType-3792"><a href="#DataType-3792"><span class="linenos">3792</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="DataType-3793"><a href="#DataType-3793"><span class="linenos">3793</span></a> <span class="n">matches</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">other</span><span class="o">.</span><span class="n">this</span>
-</span><span id="DataType-3794"><a href="#DataType-3794"><span class="linenos">3794</span></a>
-</span><span id="DataType-3795"><a href="#DataType-3795"><span class="linenos">3795</span></a> <span class="k">if</span> <span class="n">matches</span><span class="p">:</span>
-</span><span id="DataType-3796"><a href="#DataType-3796"><span class="linenos">3796</span></a> <span class="k">return</span> <span class="kc">True</span>
-</span><span id="DataType-3797"><a href="#DataType-3797"><span class="linenos">3797</span></a> <span class="k">return</span> <span class="kc">False</span>
+</span><span id="DataType-3755"><a href="#DataType-3755"><span class="linenos">3755</span></a> <span class="nd">@classmethod</span>
+</span><span id="DataType-3756"><a href="#DataType-3756"><span class="linenos">3756</span></a> <span class="k">def</span> <span class="nf">build</span><span class="p">(</span>
+</span><span id="DataType-3757"><a href="#DataType-3757"><span class="linenos">3757</span></a> <span class="bp">cls</span><span class="p">,</span>
+</span><span id="DataType-3758"><a href="#DataType-3758"><span class="linenos">3758</span></a> <span class="n">dtype</span><span class="p">:</span> <span class="n">DATA_TYPE</span><span class="p">,</span>
+</span><span id="DataType-3759"><a href="#DataType-3759"><span class="linenos">3759</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="DataType-3760"><a href="#DataType-3760"><span class="linenos">3760</span></a> <span class="n">udt</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="DataType-3761"><a href="#DataType-3761"><span class="linenos">3761</span></a> <span class="o">**</span><span class="n">kwargs</span><span class="p">,</span>
+</span><span id="DataType-3762"><a href="#DataType-3762"><span class="linenos">3762</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DataType</span><span class="p">:</span>
+</span><span id="DataType-3763"><a href="#DataType-3763"><span class="linenos">3763</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="DataType-3764"><a href="#DataType-3764"><span class="linenos">3764</span></a><span class="sd"> Constructs a DataType object.</span>
+</span><span id="DataType-3765"><a href="#DataType-3765"><span class="linenos">3765</span></a>
+</span><span id="DataType-3766"><a href="#DataType-3766"><span class="linenos">3766</span></a><span class="sd"> Args:</span>
+</span><span id="DataType-3767"><a href="#DataType-3767"><span class="linenos">3767</span></a><span class="sd"> dtype: the data type of interest.</span>
+</span><span id="DataType-3768"><a href="#DataType-3768"><span class="linenos">3768</span></a><span class="sd"> dialect: the dialect to use for parsing `dtype`, in case it&#39;s a string.</span>
+</span><span id="DataType-3769"><a href="#DataType-3769"><span class="linenos">3769</span></a><span class="sd"> udt: when set to True, `dtype` will be used as-is if it can&#39;t be parsed into a</span>
+</span><span id="DataType-3770"><a href="#DataType-3770"><span class="linenos">3770</span></a><span class="sd"> DataType, thus creating a user-defined type.</span>
+</span><span id="DataType-3771"><a href="#DataType-3771"><span class="linenos">3771</span></a><span class="sd"> kawrgs: additional arguments to pass in the constructor of DataType.</span>
+</span><span id="DataType-3772"><a href="#DataType-3772"><span class="linenos">3772</span></a>
+</span><span id="DataType-3773"><a href="#DataType-3773"><span class="linenos">3773</span></a><span class="sd"> Returns:</span>
+</span><span id="DataType-3774"><a href="#DataType-3774"><span class="linenos">3774</span></a><span class="sd"> The constructed DataType object.</span>
+</span><span id="DataType-3775"><a href="#DataType-3775"><span class="linenos">3775</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="DataType-3776"><a href="#DataType-3776"><span class="linenos">3776</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-3777"><a href="#DataType-3777"><span class="linenos">3777</span></a>
+</span><span id="DataType-3778"><a href="#DataType-3778"><span class="linenos">3778</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-3779"><a href="#DataType-3779"><span class="linenos">3779</span></a> <span class="k">if</span> <span class="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">&quot;UNKNOWN&quot;</span><span class="p">:</span>
+</span><span id="DataType-3780"><a href="#DataType-3780"><span class="linenos">3780</span></a> <span class="k">return</span> <span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">UNKNOWN</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+</span><span id="DataType-3781"><a href="#DataType-3781"><span class="linenos">3781</span></a>
+</span><span id="DataType-3782"><a href="#DataType-3782"><span class="linenos">3782</span></a> <span class="k">try</span><span class="p">:</span>
+</span><span id="DataType-3783"><a href="#DataType-3783"><span class="linenos">3783</span></a> <span class="n">data_type_exp</span> <span class="o">=</span> <span class="n">parse_one</span><span class="p">(</span>
+</span><span id="DataType-3784"><a href="#DataType-3784"><span class="linenos">3784</span></a> <span class="n">dtype</span><span class="p">,</span> <span class="n">read</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">DataType</span><span class="p">,</span> <span class="n">error_level</span><span class="o">=</span><span class="n">ErrorLevel</span><span class="o">.</span><span class="n">IGNORE</span>
+</span><span id="DataType-3785"><a href="#DataType-3785"><span class="linenos">3785</span></a> <span class="p">)</span>
+</span><span id="DataType-3786"><a href="#DataType-3786"><span class="linenos">3786</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span>
+</span><span id="DataType-3787"><a href="#DataType-3787"><span class="linenos">3787</span></a> <span class="k">if</span> <span class="n">udt</span><span class="p">:</span>
+</span><span id="DataType-3788"><a href="#DataType-3788"><span class="linenos">3788</span></a> <span class="k">return</span> <span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">USERDEFINED</span><span class="p">,</span> <span class="n">kind</span><span class="o">=</span><span class="n">dtype</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+</span><span id="DataType-3789"><a href="#DataType-3789"><span class="linenos">3789</span></a> <span class="k">raise</span>
+</span><span id="DataType-3790"><a href="#DataType-3790"><span class="linenos">3790</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-3791"><a href="#DataType-3791"><span class="linenos">3791</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-3792"><a href="#DataType-3792"><span class="linenos">3792</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-3793"><a href="#DataType-3793"><span class="linenos">3793</span></a> <span class="k">return</span> <span class="n">dtype</span>
+</span><span id="DataType-3794"><a href="#DataType-3794"><span class="linenos">3794</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="DataType-3795"><a href="#DataType-3795"><span class="linenos">3795</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-3796"><a href="#DataType-3796"><span class="linenos">3796</span></a>
+</span><span id="DataType-3797"><a href="#DataType-3797"><span class="linenos">3797</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-3798"><a href="#DataType-3798"><span class="linenos">3798</span></a>
+</span><span id="DataType-3799"><a href="#DataType-3799"><span class="linenos">3799</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">dtypes</span><span class="p">:</span> <span class="n">DATA_TYPE</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="DataType-3800"><a href="#DataType-3800"><span class="linenos">3800</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="DataType-3801"><a href="#DataType-3801"><span class="linenos">3801</span></a><span class="sd"> Checks whether this DataType matches one of the provided data types. Nested types or precision</span>
+</span><span id="DataType-3802"><a href="#DataType-3802"><span class="linenos">3802</span></a><span class="sd"> will be compared using &quot;structural equivalence&quot; semantics, so e.g. array&lt;int&gt; != array&lt;float&gt;.</span>
+</span><span id="DataType-3803"><a href="#DataType-3803"><span class="linenos">3803</span></a>
+</span><span id="DataType-3804"><a href="#DataType-3804"><span class="linenos">3804</span></a><span class="sd"> Args:</span>
+</span><span id="DataType-3805"><a href="#DataType-3805"><span class="linenos">3805</span></a><span class="sd"> dtypes: the data types to compare this DataType to.</span>
+</span><span id="DataType-3806"><a href="#DataType-3806"><span class="linenos">3806</span></a>
+</span><span id="DataType-3807"><a href="#DataType-3807"><span class="linenos">3807</span></a><span class="sd"> Returns:</span>
+</span><span id="DataType-3808"><a href="#DataType-3808"><span class="linenos">3808</span></a><span class="sd"> True, if and only if there is a type in `dtypes` which is equal to this DataType.</span>
+</span><span id="DataType-3809"><a href="#DataType-3809"><span class="linenos">3809</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="DataType-3810"><a href="#DataType-3810"><span class="linenos">3810</span></a> <span class="k">for</span> <span class="n">dtype</span> <span class="ow">in</span> <span class="n">dtypes</span><span class="p">:</span>
+</span><span id="DataType-3811"><a href="#DataType-3811"><span class="linenos">3811</span></a> <span class="n">other</span> <span class="o">=</span> <span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">udt</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+</span><span id="DataType-3812"><a href="#DataType-3812"><span class="linenos">3812</span></a>
+</span><span id="DataType-3813"><a href="#DataType-3813"><span class="linenos">3813</span></a> <span class="k">if</span> <span class="p">(</span>
+</span><span id="DataType-3814"><a href="#DataType-3814"><span class="linenos">3814</span></a> <span class="n">other</span><span class="o">.</span><span class="n">expressions</span>
+</span><span id="DataType-3815"><a href="#DataType-3815"><span class="linenos">3815</span></a> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">USERDEFINED</span>
+</span><span id="DataType-3816"><a href="#DataType-3816"><span class="linenos">3816</span></a> <span class="ow">or</span> <span class="n">other</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">USERDEFINED</span>
+</span><span id="DataType-3817"><a href="#DataType-3817"><span class="linenos">3817</span></a> <span class="p">):</span>
+</span><span id="DataType-3818"><a href="#DataType-3818"><span class="linenos">3818</span></a> <span class="n">matches</span> <span class="o">=</span> <span class="bp">self</span> <span class="o">==</span> <span class="n">other</span>
+</span><span id="DataType-3819"><a href="#DataType-3819"><span class="linenos">3819</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="DataType-3820"><a href="#DataType-3820"><span class="linenos">3820</span></a> <span class="n">matches</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">other</span><span class="o">.</span><span class="n">this</span>
+</span><span id="DataType-3821"><a href="#DataType-3821"><span class="linenos">3821</span></a>
+</span><span id="DataType-3822"><a href="#DataType-3822"><span class="linenos">3822</span></a> <span class="k">if</span> <span class="n">matches</span><span class="p">:</span>
+</span><span id="DataType-3823"><a href="#DataType-3823"><span class="linenos">3823</span></a> <span class="k">return</span> <span class="kc">True</span>
+</span><span id="DataType-3824"><a href="#DataType-3824"><span class="linenos">3824</span></a> <span class="k">return</span> <span class="kc">False</span>
</span></pre></div>
@@ -44751,7 +46918,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<div class="attr variable">
<span class="name">TEXT_TYPES</span> =
<input id="DataType.TEXT_TYPES-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
- <label class="view-value-button pdoc-button" for="DataType.TEXT_TYPES-view-value"></label><span class="default_value">{&lt;Type.CHAR: &#39;CHAR&#39;&gt;, &lt;Type.TEXT: &#39;TEXT&#39;&gt;, &lt;Type.VARCHAR: &#39;VARCHAR&#39;&gt;, &lt;Type.NCHAR: &#39;NCHAR&#39;&gt;, &lt;Type.NVARCHAR: &#39;NVARCHAR&#39;&gt;}</span>
+ <label class="view-value-button pdoc-button" for="DataType.TEXT_TYPES-view-value"></label><span class="default_value">{&lt;Type.NVARCHAR: &#39;NVARCHAR&#39;&gt;, &lt;Type.TEXT: &#39;TEXT&#39;&gt;, &lt;Type.CHAR: &#39;CHAR&#39;&gt;, &lt;Type.NCHAR: &#39;NCHAR&#39;&gt;, &lt;Type.VARCHAR: &#39;VARCHAR&#39;&gt;}</span>
</div>
@@ -44764,7 +46931,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<div class="attr variable">
<span class="name">INTEGER_TYPES</span> =
<input id="DataType.INTEGER_TYPES-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
- <label class="view-value-button pdoc-button" for="DataType.INTEGER_TYPES-view-value"></label><span class="default_value">{&lt;Type.SMALLINT: &#39;SMALLINT&#39;&gt;, &lt;Type.INT128: &#39;INT128&#39;&gt;, &lt;Type.INT256: &#39;INT256&#39;&gt;, &lt;Type.BIGINT: &#39;BIGINT&#39;&gt;, &lt;Type.BIT: &#39;BIT&#39;&gt;, &lt;Type.TINYINT: &#39;TINYINT&#39;&gt;, &lt;Type.INT: &#39;INT&#39;&gt;}</span>
+ <label class="view-value-button pdoc-button" for="DataType.INTEGER_TYPES-view-value"></label><span class="default_value">{&lt;Type.INT: &#39;INT&#39;&gt;, &lt;Type.TINYINT: &#39;TINYINT&#39;&gt;, &lt;Type.INT256: &#39;INT256&#39;&gt;, &lt;Type.SMALLINT: &#39;SMALLINT&#39;&gt;, &lt;Type.INT128: &#39;INT128&#39;&gt;, &lt;Type.BIT: &#39;BIT&#39;&gt;, &lt;Type.BIGINT: &#39;BIGINT&#39;&gt;}</span>
</div>
@@ -44776,7 +46943,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<div id="DataType.FLOAT_TYPES" class="classattr">
<div class="attr variable">
<span class="name">FLOAT_TYPES</span> =
-<span class="default_value">{&lt;Type.FLOAT: &#39;FLOAT&#39;&gt;, &lt;Type.DOUBLE: &#39;DOUBLE&#39;&gt;}</span>
+<span class="default_value">{&lt;Type.DOUBLE: &#39;DOUBLE&#39;&gt;, &lt;Type.FLOAT: &#39;FLOAT&#39;&gt;}</span>
</div>
@@ -44789,7 +46956,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<div class="attr variable">
<span class="name">NUMERIC_TYPES</span> =
<input id="DataType.NUMERIC_TYPES-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
- <label class="view-value-button pdoc-button" for="DataType.NUMERIC_TYPES-view-value"></label><span class="default_value">{&lt;Type.SMALLINT: &#39;SMALLINT&#39;&gt;, &lt;Type.DOUBLE: &#39;DOUBLE&#39;&gt;, &lt;Type.INT128: &#39;INT128&#39;&gt;, &lt;Type.INT256: &#39;INT256&#39;&gt;, &lt;Type.BIGINT: &#39;BIGINT&#39;&gt;, &lt;Type.BIT: &#39;BIT&#39;&gt;, &lt;Type.TINYINT: &#39;TINYINT&#39;&gt;, &lt;Type.FLOAT: &#39;FLOAT&#39;&gt;, &lt;Type.INT: &#39;INT&#39;&gt;}</span>
+ <label class="view-value-button pdoc-button" for="DataType.NUMERIC_TYPES-view-value"></label><span class="default_value">{&lt;Type.INT: &#39;INT&#39;&gt;, &lt;Type.DOUBLE: &#39;DOUBLE&#39;&gt;, &lt;Type.TINYINT: &#39;TINYINT&#39;&gt;, &lt;Type.INT256: &#39;INT256&#39;&gt;, &lt;Type.INT128: &#39;INT128&#39;&gt;, &lt;Type.SMALLINT: &#39;SMALLINT&#39;&gt;, &lt;Type.FLOAT: &#39;FLOAT&#39;&gt;, &lt;Type.BIT: &#39;BIT&#39;&gt;, &lt;Type.BIGINT: &#39;BIGINT&#39;&gt;}</span>
</div>
@@ -44802,7 +46969,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<div class="attr variable">
<span class="name">TEMPORAL_TYPES</span> =
<input id="DataType.TEMPORAL_TYPES-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
- <label class="view-value-button pdoc-button" for="DataType.TEMPORAL_TYPES-view-value"></label><span class="default_value">{&lt;Type.TIMESTAMP_MS: &#39;TIMESTAMP_MS&#39;&gt;, &lt;Type.TIMETZ: &#39;TIMETZ&#39;&gt;, &lt;Type.DATETIME64: &#39;DATETIME64&#39;&gt;, &lt;Type.TIMESTAMP: &#39;TIMESTAMP&#39;&gt;, &lt;Type.TIME: &#39;TIME&#39;&gt;, &lt;Type.TIMESTAMPLTZ: &#39;TIMESTAMPLTZ&#39;&gt;, &lt;Type.TIMESTAMP_S: &#39;TIMESTAMP_S&#39;&gt;, &lt;Type.DATETIME: &#39;DATETIME&#39;&gt;, &lt;Type.DATE: &#39;DATE&#39;&gt;, &lt;Type.TIMESTAMPTZ: &#39;TIMESTAMPTZ&#39;&gt;, &lt;Type.TIMESTAMP_NS: &#39;TIMESTAMP_NS&#39;&gt;}</span>
+ <label class="view-value-button pdoc-button" for="DataType.TEMPORAL_TYPES-view-value"></label><span class="default_value">{&lt;Type.TIMESTAMPLTZ: &#39;TIMESTAMPLTZ&#39;&gt;, &lt;Type.TIMESTAMP: &#39;TIMESTAMP&#39;&gt;, &lt;Type.DATE: &#39;DATE&#39;&gt;, &lt;Type.TIME: &#39;TIME&#39;&gt;, &lt;Type.TIMESTAMP_NS: &#39;TIMESTAMP_NS&#39;&gt;, &lt;Type.DATETIME64: &#39;DATETIME64&#39;&gt;, &lt;Type.TIMESTAMPTZ: &#39;TIMESTAMPTZ&#39;&gt;, &lt;Type.TIMESTAMP_MS: &#39;TIMESTAMP_MS&#39;&gt;, &lt;Type.DATETIME: &#39;DATETIME&#39;&gt;, &lt;Type.TIMESTAMP_S: &#39;TIMESTAMP_S&#39;&gt;, &lt;Type.TIMETZ: &#39;TIMETZ&#39;&gt;}</span>
</div>
@@ -44823,49 +46990,49 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#DataType.build"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DataType.build-3728"><a href="#DataType.build-3728"><span class="linenos">3728</span></a> <span class="nd">@classmethod</span>
-</span><span id="DataType.build-3729"><a href="#DataType.build-3729"><span class="linenos">3729</span></a> <span class="k">def</span> <span class="nf">build</span><span class="p">(</span>
-</span><span id="DataType.build-3730"><a href="#DataType.build-3730"><span class="linenos">3730</span></a> <span class="bp">cls</span><span class="p">,</span>
-</span><span id="DataType.build-3731"><a href="#DataType.build-3731"><span class="linenos">3731</span></a> <span class="n">dtype</span><span class="p">:</span> <span class="n">DATA_TYPE</span><span class="p">,</span>
-</span><span id="DataType.build-3732"><a href="#DataType.build-3732"><span class="linenos">3732</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="DataType.build-3733"><a href="#DataType.build-3733"><span class="linenos">3733</span></a> <span class="n">udt</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="DataType.build-3734"><a href="#DataType.build-3734"><span class="linenos">3734</span></a> <span class="o">**</span><span class="n">kwargs</span><span class="p">,</span>
-</span><span id="DataType.build-3735"><a href="#DataType.build-3735"><span class="linenos">3735</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-3736"><a href="#DataType.build-3736"><span class="linenos">3736</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="DataType.build-3737"><a href="#DataType.build-3737"><span class="linenos">3737</span></a><span class="sd"> Constructs a DataType object.</span>
-</span><span id="DataType.build-3738"><a href="#DataType.build-3738"><span class="linenos">3738</span></a>
-</span><span id="DataType.build-3739"><a href="#DataType.build-3739"><span class="linenos">3739</span></a><span class="sd"> Args:</span>
-</span><span id="DataType.build-3740"><a href="#DataType.build-3740"><span class="linenos">3740</span></a><span class="sd"> dtype: the data type of interest.</span>
-</span><span id="DataType.build-3741"><a href="#DataType.build-3741"><span class="linenos">3741</span></a><span class="sd"> dialect: the dialect to use for parsing `dtype`, in case it&#39;s a string.</span>
-</span><span id="DataType.build-3742"><a href="#DataType.build-3742"><span class="linenos">3742</span></a><span class="sd"> udt: when set to True, `dtype` will be used as-is if it can&#39;t be parsed into a</span>
-</span><span id="DataType.build-3743"><a href="#DataType.build-3743"><span class="linenos">3743</span></a><span class="sd"> DataType, thus creating a user-defined type.</span>
-</span><span id="DataType.build-3744"><a href="#DataType.build-3744"><span class="linenos">3744</span></a><span class="sd"> kawrgs: additional arguments to pass in the constructor of DataType.</span>
-</span><span id="DataType.build-3745"><a href="#DataType.build-3745"><span class="linenos">3745</span></a>
-</span><span id="DataType.build-3746"><a href="#DataType.build-3746"><span class="linenos">3746</span></a><span class="sd"> Returns:</span>
-</span><span id="DataType.build-3747"><a href="#DataType.build-3747"><span class="linenos">3747</span></a><span class="sd"> The constructed DataType object.</span>
-</span><span id="DataType.build-3748"><a href="#DataType.build-3748"><span class="linenos">3748</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="DataType.build-3749"><a href="#DataType.build-3749"><span class="linenos">3749</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-3750"><a href="#DataType.build-3750"><span class="linenos">3750</span></a>
-</span><span id="DataType.build-3751"><a href="#DataType.build-3751"><span class="linenos">3751</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-3752"><a href="#DataType.build-3752"><span class="linenos">3752</span></a> <span class="k">if</span> <span class="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">&quot;UNKNOWN&quot;</span><span class="p">:</span>
-</span><span id="DataType.build-3753"><a href="#DataType.build-3753"><span class="linenos">3753</span></a> <span class="k">return</span> <span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">UNKNOWN</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
-</span><span id="DataType.build-3754"><a href="#DataType.build-3754"><span class="linenos">3754</span></a>
-</span><span id="DataType.build-3755"><a href="#DataType.build-3755"><span class="linenos">3755</span></a> <span class="k">try</span><span class="p">:</span>
-</span><span id="DataType.build-3756"><a href="#DataType.build-3756"><span class="linenos">3756</span></a> <span class="n">data_type_exp</span> <span class="o">=</span> <span class="n">parse_one</span><span class="p">(</span>
-</span><span id="DataType.build-3757"><a href="#DataType.build-3757"><span class="linenos">3757</span></a> <span class="n">dtype</span><span class="p">,</span> <span class="n">read</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">DataType</span><span class="p">,</span> <span class="n">error_level</span><span class="o">=</span><span class="n">ErrorLevel</span><span class="o">.</span><span class="n">IGNORE</span>
-</span><span id="DataType.build-3758"><a href="#DataType.build-3758"><span class="linenos">3758</span></a> <span class="p">)</span>
-</span><span id="DataType.build-3759"><a href="#DataType.build-3759"><span class="linenos">3759</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span>
-</span><span id="DataType.build-3760"><a href="#DataType.build-3760"><span class="linenos">3760</span></a> <span class="k">if</span> <span class="n">udt</span><span class="p">:</span>
-</span><span id="DataType.build-3761"><a href="#DataType.build-3761"><span class="linenos">3761</span></a> <span class="k">return</span> <span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">USERDEFINED</span><span class="p">,</span> <span class="n">kind</span><span class="o">=</span><span class="n">dtype</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
-</span><span id="DataType.build-3762"><a href="#DataType.build-3762"><span class="linenos">3762</span></a> <span class="k">raise</span>
-</span><span id="DataType.build-3763"><a href="#DataType.build-3763"><span class="linenos">3763</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-3764"><a href="#DataType.build-3764"><span class="linenos">3764</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-3765"><a href="#DataType.build-3765"><span class="linenos">3765</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-3766"><a href="#DataType.build-3766"><span class="linenos">3766</span></a> <span class="k">return</span> <span class="n">dtype</span>
-</span><span id="DataType.build-3767"><a href="#DataType.build-3767"><span class="linenos">3767</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="DataType.build-3768"><a href="#DataType.build-3768"><span class="linenos">3768</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-3769"><a href="#DataType.build-3769"><span class="linenos">3769</span></a>
-</span><span id="DataType.build-3770"><a href="#DataType.build-3770"><span class="linenos">3770</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-3755"><a href="#DataType.build-3755"><span class="linenos">3755</span></a> <span class="nd">@classmethod</span>
+</span><span id="DataType.build-3756"><a href="#DataType.build-3756"><span class="linenos">3756</span></a> <span class="k">def</span> <span class="nf">build</span><span class="p">(</span>
+</span><span id="DataType.build-3757"><a href="#DataType.build-3757"><span class="linenos">3757</span></a> <span class="bp">cls</span><span class="p">,</span>
+</span><span id="DataType.build-3758"><a href="#DataType.build-3758"><span class="linenos">3758</span></a> <span class="n">dtype</span><span class="p">:</span> <span class="n">DATA_TYPE</span><span class="p">,</span>
+</span><span id="DataType.build-3759"><a href="#DataType.build-3759"><span class="linenos">3759</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="DataType.build-3760"><a href="#DataType.build-3760"><span class="linenos">3760</span></a> <span class="n">udt</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="DataType.build-3761"><a href="#DataType.build-3761"><span class="linenos">3761</span></a> <span class="o">**</span><span class="n">kwargs</span><span class="p">,</span>
+</span><span id="DataType.build-3762"><a href="#DataType.build-3762"><span class="linenos">3762</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-3763"><a href="#DataType.build-3763"><span class="linenos">3763</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="DataType.build-3764"><a href="#DataType.build-3764"><span class="linenos">3764</span></a><span class="sd"> Constructs a DataType object.</span>
+</span><span id="DataType.build-3765"><a href="#DataType.build-3765"><span class="linenos">3765</span></a>
+</span><span id="DataType.build-3766"><a href="#DataType.build-3766"><span class="linenos">3766</span></a><span class="sd"> Args:</span>
+</span><span id="DataType.build-3767"><a href="#DataType.build-3767"><span class="linenos">3767</span></a><span class="sd"> dtype: the data type of interest.</span>
+</span><span id="DataType.build-3768"><a href="#DataType.build-3768"><span class="linenos">3768</span></a><span class="sd"> dialect: the dialect to use for parsing `dtype`, in case it&#39;s a string.</span>
+</span><span id="DataType.build-3769"><a href="#DataType.build-3769"><span class="linenos">3769</span></a><span class="sd"> udt: when set to True, `dtype` will be used as-is if it can&#39;t be parsed into a</span>
+</span><span id="DataType.build-3770"><a href="#DataType.build-3770"><span class="linenos">3770</span></a><span class="sd"> DataType, thus creating a user-defined type.</span>
+</span><span id="DataType.build-3771"><a href="#DataType.build-3771"><span class="linenos">3771</span></a><span class="sd"> kawrgs: additional arguments to pass in the constructor of DataType.</span>
+</span><span id="DataType.build-3772"><a href="#DataType.build-3772"><span class="linenos">3772</span></a>
+</span><span id="DataType.build-3773"><a href="#DataType.build-3773"><span class="linenos">3773</span></a><span class="sd"> Returns:</span>
+</span><span id="DataType.build-3774"><a href="#DataType.build-3774"><span class="linenos">3774</span></a><span class="sd"> The constructed DataType object.</span>
+</span><span id="DataType.build-3775"><a href="#DataType.build-3775"><span class="linenos">3775</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="DataType.build-3776"><a href="#DataType.build-3776"><span class="linenos">3776</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-3777"><a href="#DataType.build-3777"><span class="linenos">3777</span></a>
+</span><span id="DataType.build-3778"><a href="#DataType.build-3778"><span class="linenos">3778</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-3779"><a href="#DataType.build-3779"><span class="linenos">3779</span></a> <span class="k">if</span> <span class="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">&quot;UNKNOWN&quot;</span><span class="p">:</span>
+</span><span id="DataType.build-3780"><a href="#DataType.build-3780"><span class="linenos">3780</span></a> <span class="k">return</span> <span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">UNKNOWN</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+</span><span id="DataType.build-3781"><a href="#DataType.build-3781"><span class="linenos">3781</span></a>
+</span><span id="DataType.build-3782"><a href="#DataType.build-3782"><span class="linenos">3782</span></a> <span class="k">try</span><span class="p">:</span>
+</span><span id="DataType.build-3783"><a href="#DataType.build-3783"><span class="linenos">3783</span></a> <span class="n">data_type_exp</span> <span class="o">=</span> <span class="n">parse_one</span><span class="p">(</span>
+</span><span id="DataType.build-3784"><a href="#DataType.build-3784"><span class="linenos">3784</span></a> <span class="n">dtype</span><span class="p">,</span> <span class="n">read</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">DataType</span><span class="p">,</span> <span class="n">error_level</span><span class="o">=</span><span class="n">ErrorLevel</span><span class="o">.</span><span class="n">IGNORE</span>
+</span><span id="DataType.build-3785"><a href="#DataType.build-3785"><span class="linenos">3785</span></a> <span class="p">)</span>
+</span><span id="DataType.build-3786"><a href="#DataType.build-3786"><span class="linenos">3786</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span>
+</span><span id="DataType.build-3787"><a href="#DataType.build-3787"><span class="linenos">3787</span></a> <span class="k">if</span> <span class="n">udt</span><span class="p">:</span>
+</span><span id="DataType.build-3788"><a href="#DataType.build-3788"><span class="linenos">3788</span></a> <span class="k">return</span> <span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">USERDEFINED</span><span class="p">,</span> <span class="n">kind</span><span class="o">=</span><span class="n">dtype</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+</span><span id="DataType.build-3789"><a href="#DataType.build-3789"><span class="linenos">3789</span></a> <span class="k">raise</span>
+</span><span id="DataType.build-3790"><a href="#DataType.build-3790"><span class="linenos">3790</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-3791"><a href="#DataType.build-3791"><span class="linenos">3791</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-3792"><a href="#DataType.build-3792"><span class="linenos">3792</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-3793"><a href="#DataType.build-3793"><span class="linenos">3793</span></a> <span class="k">return</span> <span class="n">dtype</span>
+</span><span id="DataType.build-3794"><a href="#DataType.build-3794"><span class="linenos">3794</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="DataType.build-3795"><a href="#DataType.build-3795"><span class="linenos">3795</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-3796"><a href="#DataType.build-3796"><span class="linenos">3796</span></a>
+</span><span id="DataType.build-3797"><a href="#DataType.build-3797"><span class="linenos">3797</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>
@@ -44901,32 +47068,32 @@ DataType, thus creating a user-defined type.</li>
</div>
<a class="headerlink" href="#DataType.is_type"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DataType.is_type-3772"><a href="#DataType.is_type-3772"><span class="linenos">3772</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">dtypes</span><span class="p">:</span> <span class="n">DATA_TYPE</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="DataType.is_type-3773"><a href="#DataType.is_type-3773"><span class="linenos">3773</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="DataType.is_type-3774"><a href="#DataType.is_type-3774"><span class="linenos">3774</span></a><span class="sd"> Checks whether this DataType matches one of the provided data types. Nested types or precision</span>
-</span><span id="DataType.is_type-3775"><a href="#DataType.is_type-3775"><span class="linenos">3775</span></a><span class="sd"> will be compared using &quot;structural equivalence&quot; semantics, so e.g. array&lt;int&gt; != array&lt;float&gt;.</span>
-</span><span id="DataType.is_type-3776"><a href="#DataType.is_type-3776"><span class="linenos">3776</span></a>
-</span><span id="DataType.is_type-3777"><a href="#DataType.is_type-3777"><span class="linenos">3777</span></a><span class="sd"> Args:</span>
-</span><span id="DataType.is_type-3778"><a href="#DataType.is_type-3778"><span class="linenos">3778</span></a><span class="sd"> dtypes: the data types to compare this DataType to.</span>
-</span><span id="DataType.is_type-3779"><a href="#DataType.is_type-3779"><span class="linenos">3779</span></a>
-</span><span id="DataType.is_type-3780"><a href="#DataType.is_type-3780"><span class="linenos">3780</span></a><span class="sd"> Returns:</span>
-</span><span id="DataType.is_type-3781"><a href="#DataType.is_type-3781"><span class="linenos">3781</span></a><span class="sd"> True, if and only if there is a type in `dtypes` which is equal to this DataType.</span>
-</span><span id="DataType.is_type-3782"><a href="#DataType.is_type-3782"><span class="linenos">3782</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="DataType.is_type-3783"><a href="#DataType.is_type-3783"><span class="linenos">3783</span></a> <span class="k">for</span> <span class="n">dtype</span> <span class="ow">in</span> <span class="n">dtypes</span><span class="p">:</span>
-</span><span id="DataType.is_type-3784"><a href="#DataType.is_type-3784"><span class="linenos">3784</span></a> <span class="n">other</span> <span class="o">=</span> <span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">udt</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</span><span id="DataType.is_type-3785"><a href="#DataType.is_type-3785"><span class="linenos">3785</span></a>
-</span><span id="DataType.is_type-3786"><a href="#DataType.is_type-3786"><span class="linenos">3786</span></a> <span class="k">if</span> <span class="p">(</span>
-</span><span id="DataType.is_type-3787"><a href="#DataType.is_type-3787"><span class="linenos">3787</span></a> <span class="n">other</span><span class="o">.</span><span class="n">expressions</span>
-</span><span id="DataType.is_type-3788"><a href="#DataType.is_type-3788"><span class="linenos">3788</span></a> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">USERDEFINED</span>
-</span><span id="DataType.is_type-3789"><a href="#DataType.is_type-3789"><span class="linenos">3789</span></a> <span class="ow">or</span> <span class="n">other</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">USERDEFINED</span>
-</span><span id="DataType.is_type-3790"><a href="#DataType.is_type-3790"><span class="linenos">3790</span></a> <span class="p">):</span>
-</span><span id="DataType.is_type-3791"><a href="#DataType.is_type-3791"><span class="linenos">3791</span></a> <span class="n">matches</span> <span class="o">=</span> <span class="bp">self</span> <span class="o">==</span> <span class="n">other</span>
-</span><span id="DataType.is_type-3792"><a href="#DataType.is_type-3792"><span class="linenos">3792</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="DataType.is_type-3793"><a href="#DataType.is_type-3793"><span class="linenos">3793</span></a> <span class="n">matches</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">other</span><span class="o">.</span><span class="n">this</span>
-</span><span id="DataType.is_type-3794"><a href="#DataType.is_type-3794"><span class="linenos">3794</span></a>
-</span><span id="DataType.is_type-3795"><a href="#DataType.is_type-3795"><span class="linenos">3795</span></a> <span class="k">if</span> <span class="n">matches</span><span class="p">:</span>
-</span><span id="DataType.is_type-3796"><a href="#DataType.is_type-3796"><span class="linenos">3796</span></a> <span class="k">return</span> <span class="kc">True</span>
-</span><span id="DataType.is_type-3797"><a href="#DataType.is_type-3797"><span class="linenos">3797</span></a> <span class="k">return</span> <span class="kc">False</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DataType.is_type-3799"><a href="#DataType.is_type-3799"><span class="linenos">3799</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">dtypes</span><span class="p">:</span> <span class="n">DATA_TYPE</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="DataType.is_type-3800"><a href="#DataType.is_type-3800"><span class="linenos">3800</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="DataType.is_type-3801"><a href="#DataType.is_type-3801"><span class="linenos">3801</span></a><span class="sd"> Checks whether this DataType matches one of the provided data types. Nested types or precision</span>
+</span><span id="DataType.is_type-3802"><a href="#DataType.is_type-3802"><span class="linenos">3802</span></a><span class="sd"> will be compared using &quot;structural equivalence&quot; semantics, so e.g. array&lt;int&gt; != array&lt;float&gt;.</span>
+</span><span id="DataType.is_type-3803"><a href="#DataType.is_type-3803"><span class="linenos">3803</span></a>
+</span><span id="DataType.is_type-3804"><a href="#DataType.is_type-3804"><span class="linenos">3804</span></a><span class="sd"> Args:</span>
+</span><span id="DataType.is_type-3805"><a href="#DataType.is_type-3805"><span class="linenos">3805</span></a><span class="sd"> dtypes: the data types to compare this DataType to.</span>
+</span><span id="DataType.is_type-3806"><a href="#DataType.is_type-3806"><span class="linenos">3806</span></a>
+</span><span id="DataType.is_type-3807"><a href="#DataType.is_type-3807"><span class="linenos">3807</span></a><span class="sd"> Returns:</span>
+</span><span id="DataType.is_type-3808"><a href="#DataType.is_type-3808"><span class="linenos">3808</span></a><span class="sd"> True, if and only if there is a type in `dtypes` which is equal to this DataType.</span>
+</span><span id="DataType.is_type-3809"><a href="#DataType.is_type-3809"><span class="linenos">3809</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="DataType.is_type-3810"><a href="#DataType.is_type-3810"><span class="linenos">3810</span></a> <span class="k">for</span> <span class="n">dtype</span> <span class="ow">in</span> <span class="n">dtypes</span><span class="p">:</span>
+</span><span id="DataType.is_type-3811"><a href="#DataType.is_type-3811"><span class="linenos">3811</span></a> <span class="n">other</span> <span class="o">=</span> <span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">udt</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+</span><span id="DataType.is_type-3812"><a href="#DataType.is_type-3812"><span class="linenos">3812</span></a>
+</span><span id="DataType.is_type-3813"><a href="#DataType.is_type-3813"><span class="linenos">3813</span></a> <span class="k">if</span> <span class="p">(</span>
+</span><span id="DataType.is_type-3814"><a href="#DataType.is_type-3814"><span class="linenos">3814</span></a> <span class="n">other</span><span class="o">.</span><span class="n">expressions</span>
+</span><span id="DataType.is_type-3815"><a href="#DataType.is_type-3815"><span class="linenos">3815</span></a> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">USERDEFINED</span>
+</span><span id="DataType.is_type-3816"><a href="#DataType.is_type-3816"><span class="linenos">3816</span></a> <span class="ow">or</span> <span class="n">other</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">USERDEFINED</span>
+</span><span id="DataType.is_type-3817"><a href="#DataType.is_type-3817"><span class="linenos">3817</span></a> <span class="p">):</span>
+</span><span id="DataType.is_type-3818"><a href="#DataType.is_type-3818"><span class="linenos">3818</span></a> <span class="n">matches</span> <span class="o">=</span> <span class="bp">self</span> <span class="o">==</span> <span class="n">other</span>
+</span><span id="DataType.is_type-3819"><a href="#DataType.is_type-3819"><span class="linenos">3819</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="DataType.is_type-3820"><a href="#DataType.is_type-3820"><span class="linenos">3820</span></a> <span class="n">matches</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">other</span><span class="o">.</span><span class="n">this</span>
+</span><span id="DataType.is_type-3821"><a href="#DataType.is_type-3821"><span class="linenos">3821</span></a>
+</span><span id="DataType.is_type-3822"><a href="#DataType.is_type-3822"><span class="linenos">3822</span></a> <span class="k">if</span> <span class="n">matches</span><span class="p">:</span>
+</span><span id="DataType.is_type-3823"><a href="#DataType.is_type-3823"><span class="linenos">3823</span></a> <span class="k">return</span> <span class="kc">True</span>
+</span><span id="DataType.is_type-3824"><a href="#DataType.is_type-3824"><span class="linenos">3824</span></a> <span class="k">return</span> <span class="kc">False</span>
</span></pre></div>
@@ -44984,6 +47151,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="DataType.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="DataType.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DataType.type" class="variable"><a href="#Expression.type">type</a></dd>
+ <dd id="DataType.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="DataType.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="DataType.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DataType.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -45004,6 +47172,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="DataType.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DataType.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DataType.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="DataType.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="DataType.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DataType.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DataType.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -45025,6 +47194,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="DataType.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="DataType.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="DataType.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="DataType.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -45041,102 +47211,102 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#DataType.Type"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DataType.Type-3589"><a href="#DataType.Type-3589"><span class="linenos">3589</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-3590"><a href="#DataType.Type-3590"><span class="linenos">3590</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-3591"><a href="#DataType.Type-3591"><span class="linenos">3591</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-3592"><a href="#DataType.Type-3592"><span class="linenos">3592</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-3593"><a href="#DataType.Type-3593"><span class="linenos">3593</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-3594"><a href="#DataType.Type-3594"><span class="linenos">3594</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-3595"><a href="#DataType.Type-3595"><span class="linenos">3595</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-3596"><a href="#DataType.Type-3596"><span class="linenos">3596</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-3597"><a href="#DataType.Type-3597"><span class="linenos">3597</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-3598"><a href="#DataType.Type-3598"><span class="linenos">3598</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-3599"><a href="#DataType.Type-3599"><span class="linenos">3599</span></a> <span class="n">DATEMULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3600"><a href="#DataType.Type-3600"><span class="linenos">3600</span></a> <span class="n">DATERANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3601"><a href="#DataType.Type-3601"><span class="linenos">3601</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-3602"><a href="#DataType.Type-3602"><span class="linenos">3602</span></a> <span class="n">DATETIME64</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3603"><a href="#DataType.Type-3603"><span class="linenos">3603</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-3604"><a href="#DataType.Type-3604"><span class="linenos">3604</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-3605"><a href="#DataType.Type-3605"><span class="linenos">3605</span></a> <span class="n">ENUM</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3606"><a href="#DataType.Type-3606"><span class="linenos">3606</span></a> <span class="n">ENUM8</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3607"><a href="#DataType.Type-3607"><span class="linenos">3607</span></a> <span class="n">ENUM16</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3608"><a href="#DataType.Type-3608"><span class="linenos">3608</span></a> <span class="n">FIXEDSTRING</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3609"><a href="#DataType.Type-3609"><span class="linenos">3609</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-3610"><a href="#DataType.Type-3610"><span class="linenos">3610</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-3611"><a href="#DataType.Type-3611"><span class="linenos">3611</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-3612"><a href="#DataType.Type-3612"><span class="linenos">3612</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-3613"><a href="#DataType.Type-3613"><span class="linenos">3613</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-3614"><a href="#DataType.Type-3614"><span class="linenos">3614</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-3615"><a href="#DataType.Type-3615"><span class="linenos">3615</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-3616"><a href="#DataType.Type-3616"><span class="linenos">3616</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-3617"><a href="#DataType.Type-3617"><span class="linenos">3617</span></a> <span class="n">INT128</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3618"><a href="#DataType.Type-3618"><span class="linenos">3618</span></a> <span class="n">INT256</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3619"><a href="#DataType.Type-3619"><span class="linenos">3619</span></a> <span class="n">INT4MULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3620"><a href="#DataType.Type-3620"><span class="linenos">3620</span></a> <span class="n">INT4RANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3621"><a href="#DataType.Type-3621"><span class="linenos">3621</span></a> <span class="n">INT8MULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3622"><a href="#DataType.Type-3622"><span class="linenos">3622</span></a> <span class="n">INT8RANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3623"><a href="#DataType.Type-3623"><span class="linenos">3623</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-3624"><a href="#DataType.Type-3624"><span class="linenos">3624</span></a> <span class="n">IPADDRESS</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3625"><a href="#DataType.Type-3625"><span class="linenos">3625</span></a> <span class="n">IPPREFIX</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3626"><a href="#DataType.Type-3626"><span class="linenos">3626</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-3627"><a href="#DataType.Type-3627"><span class="linenos">3627</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-3628"><a href="#DataType.Type-3628"><span class="linenos">3628</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-3629"><a href="#DataType.Type-3629"><span class="linenos">3629</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-3630"><a href="#DataType.Type-3630"><span class="linenos">3630</span></a> <span class="n">LOWCARDINALITY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3631"><a href="#DataType.Type-3631"><span class="linenos">3631</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-3632"><a href="#DataType.Type-3632"><span class="linenos">3632</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-3633"><a href="#DataType.Type-3633"><span class="linenos">3633</span></a> <span class="n">MEDIUMINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3634"><a href="#DataType.Type-3634"><span class="linenos">3634</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-3635"><a href="#DataType.Type-3635"><span class="linenos">3635</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-3636"><a href="#DataType.Type-3636"><span class="linenos">3636</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-3637"><a href="#DataType.Type-3637"><span class="linenos">3637</span></a> <span class="n">NESTED</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3638"><a href="#DataType.Type-3638"><span class="linenos">3638</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-3639"><a href="#DataType.Type-3639"><span class="linenos">3639</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-3640"><a href="#DataType.Type-3640"><span class="linenos">3640</span></a> <span class="n">NUMMULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3641"><a href="#DataType.Type-3641"><span class="linenos">3641</span></a> <span class="n">NUMRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3642"><a href="#DataType.Type-3642"><span class="linenos">3642</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-3643"><a href="#DataType.Type-3643"><span class="linenos">3643</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-3644"><a href="#DataType.Type-3644"><span class="linenos">3644</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-3645"><a href="#DataType.Type-3645"><span class="linenos">3645</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-3646"><a href="#DataType.Type-3646"><span class="linenos">3646</span></a> <span class="n">SET</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3647"><a href="#DataType.Type-3647"><span class="linenos">3647</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-3648"><a href="#DataType.Type-3648"><span class="linenos">3648</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-3649"><a href="#DataType.Type-3649"><span class="linenos">3649</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-3650"><a href="#DataType.Type-3650"><span class="linenos">3650</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-3651"><a href="#DataType.Type-3651"><span class="linenos">3651</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-3652"><a href="#DataType.Type-3652"><span class="linenos">3652</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-3653"><a href="#DataType.Type-3653"><span class="linenos">3653</span></a> <span class="n">TINYBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3654"><a href="#DataType.Type-3654"><span class="linenos">3654</span></a> <span class="n">TINYTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3655"><a href="#DataType.Type-3655"><span class="linenos">3655</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-3656"><a href="#DataType.Type-3656"><span class="linenos">3656</span></a> <span class="n">TIMETZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3657"><a href="#DataType.Type-3657"><span class="linenos">3657</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-3658"><a href="#DataType.Type-3658"><span class="linenos">3658</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-3659"><a href="#DataType.Type-3659"><span class="linenos">3659</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-3660"><a href="#DataType.Type-3660"><span class="linenos">3660</span></a> <span class="n">TIMESTAMP_S</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3661"><a href="#DataType.Type-3661"><span class="linenos">3661</span></a> <span class="n">TIMESTAMP_MS</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3662"><a href="#DataType.Type-3662"><span class="linenos">3662</span></a> <span class="n">TIMESTAMP_NS</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3663"><a href="#DataType.Type-3663"><span class="linenos">3663</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-3664"><a href="#DataType.Type-3664"><span class="linenos">3664</span></a> <span class="n">TSMULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3665"><a href="#DataType.Type-3665"><span class="linenos">3665</span></a> <span class="n">TSRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3666"><a href="#DataType.Type-3666"><span class="linenos">3666</span></a> <span class="n">TSTZMULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3667"><a href="#DataType.Type-3667"><span class="linenos">3667</span></a> <span class="n">TSTZRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3668"><a href="#DataType.Type-3668"><span class="linenos">3668</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-3669"><a href="#DataType.Type-3669"><span class="linenos">3669</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-3670"><a href="#DataType.Type-3670"><span class="linenos">3670</span></a> <span class="n">UINT128</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3671"><a href="#DataType.Type-3671"><span class="linenos">3671</span></a> <span class="n">UINT256</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3672"><a href="#DataType.Type-3672"><span class="linenos">3672</span></a> <span class="n">UMEDIUMINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3673"><a href="#DataType.Type-3673"><span class="linenos">3673</span></a> <span class="n">UDECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3674"><a href="#DataType.Type-3674"><span class="linenos">3674</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-3675"><a href="#DataType.Type-3675"><span class="linenos">3675</span></a> <span class="n">UNKNOWN</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> <span class="c1"># Sentinel value, useful for type annotation</span>
-</span><span id="DataType.Type-3676"><a href="#DataType.Type-3676"><span class="linenos">3676</span></a> <span class="n">USERDEFINED</span> <span class="o">=</span> <span class="s2">&quot;USER-DEFINED&quot;</span>
-</span><span id="DataType.Type-3677"><a href="#DataType.Type-3677"><span class="linenos">3677</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-3678"><a href="#DataType.Type-3678"><span class="linenos">3678</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-3679"><a href="#DataType.Type-3679"><span class="linenos">3679</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-3680"><a href="#DataType.Type-3680"><span class="linenos">3680</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-3681"><a href="#DataType.Type-3681"><span class="linenos">3681</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-3682"><a href="#DataType.Type-3682"><span class="linenos">3682</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-3683"><a href="#DataType.Type-3683"><span class="linenos">3683</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-3684"><a href="#DataType.Type-3684"><span class="linenos">3684</span></a> <span class="n">YEAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DataType.Type-3616"><a href="#DataType.Type-3616"><span class="linenos">3616</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-3617"><a href="#DataType.Type-3617"><span class="linenos">3617</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-3618"><a href="#DataType.Type-3618"><span class="linenos">3618</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-3619"><a href="#DataType.Type-3619"><span class="linenos">3619</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-3620"><a href="#DataType.Type-3620"><span class="linenos">3620</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-3621"><a href="#DataType.Type-3621"><span class="linenos">3621</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-3622"><a href="#DataType.Type-3622"><span class="linenos">3622</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-3623"><a href="#DataType.Type-3623"><span class="linenos">3623</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-3624"><a href="#DataType.Type-3624"><span class="linenos">3624</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-3625"><a href="#DataType.Type-3625"><span class="linenos">3625</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-3626"><a href="#DataType.Type-3626"><span class="linenos">3626</span></a> <span class="n">DATEMULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3627"><a href="#DataType.Type-3627"><span class="linenos">3627</span></a> <span class="n">DATERANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3628"><a href="#DataType.Type-3628"><span class="linenos">3628</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-3629"><a href="#DataType.Type-3629"><span class="linenos">3629</span></a> <span class="n">DATETIME64</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3630"><a href="#DataType.Type-3630"><span class="linenos">3630</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-3631"><a href="#DataType.Type-3631"><span class="linenos">3631</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-3632"><a href="#DataType.Type-3632"><span class="linenos">3632</span></a> <span class="n">ENUM</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3633"><a href="#DataType.Type-3633"><span class="linenos">3633</span></a> <span class="n">ENUM8</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3634"><a href="#DataType.Type-3634"><span class="linenos">3634</span></a> <span class="n">ENUM16</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3635"><a href="#DataType.Type-3635"><span class="linenos">3635</span></a> <span class="n">FIXEDSTRING</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3636"><a href="#DataType.Type-3636"><span class="linenos">3636</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-3637"><a href="#DataType.Type-3637"><span class="linenos">3637</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-3638"><a href="#DataType.Type-3638"><span class="linenos">3638</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-3639"><a href="#DataType.Type-3639"><span class="linenos">3639</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-3640"><a href="#DataType.Type-3640"><span class="linenos">3640</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-3641"><a href="#DataType.Type-3641"><span class="linenos">3641</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-3642"><a href="#DataType.Type-3642"><span class="linenos">3642</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-3643"><a href="#DataType.Type-3643"><span class="linenos">3643</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-3644"><a href="#DataType.Type-3644"><span class="linenos">3644</span></a> <span class="n">INT128</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3645"><a href="#DataType.Type-3645"><span class="linenos">3645</span></a> <span class="n">INT256</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3646"><a href="#DataType.Type-3646"><span class="linenos">3646</span></a> <span class="n">INT4MULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3647"><a href="#DataType.Type-3647"><span class="linenos">3647</span></a> <span class="n">INT4RANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3648"><a href="#DataType.Type-3648"><span class="linenos">3648</span></a> <span class="n">INT8MULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3649"><a href="#DataType.Type-3649"><span class="linenos">3649</span></a> <span class="n">INT8RANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3650"><a href="#DataType.Type-3650"><span class="linenos">3650</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-3651"><a href="#DataType.Type-3651"><span class="linenos">3651</span></a> <span class="n">IPADDRESS</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3652"><a href="#DataType.Type-3652"><span class="linenos">3652</span></a> <span class="n">IPPREFIX</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3653"><a href="#DataType.Type-3653"><span class="linenos">3653</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-3654"><a href="#DataType.Type-3654"><span class="linenos">3654</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-3655"><a href="#DataType.Type-3655"><span class="linenos">3655</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-3656"><a href="#DataType.Type-3656"><span class="linenos">3656</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-3657"><a href="#DataType.Type-3657"><span class="linenos">3657</span></a> <span class="n">LOWCARDINALITY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3658"><a href="#DataType.Type-3658"><span class="linenos">3658</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-3659"><a href="#DataType.Type-3659"><span class="linenos">3659</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-3660"><a href="#DataType.Type-3660"><span class="linenos">3660</span></a> <span class="n">MEDIUMINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3661"><a href="#DataType.Type-3661"><span class="linenos">3661</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-3662"><a href="#DataType.Type-3662"><span class="linenos">3662</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-3663"><a href="#DataType.Type-3663"><span class="linenos">3663</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-3664"><a href="#DataType.Type-3664"><span class="linenos">3664</span></a> <span class="n">NESTED</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3665"><a href="#DataType.Type-3665"><span class="linenos">3665</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-3666"><a href="#DataType.Type-3666"><span class="linenos">3666</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-3667"><a href="#DataType.Type-3667"><span class="linenos">3667</span></a> <span class="n">NUMMULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3668"><a href="#DataType.Type-3668"><span class="linenos">3668</span></a> <span class="n">NUMRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3669"><a href="#DataType.Type-3669"><span class="linenos">3669</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-3670"><a href="#DataType.Type-3670"><span class="linenos">3670</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-3671"><a href="#DataType.Type-3671"><span class="linenos">3671</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-3672"><a href="#DataType.Type-3672"><span class="linenos">3672</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-3673"><a href="#DataType.Type-3673"><span class="linenos">3673</span></a> <span class="n">SET</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3674"><a href="#DataType.Type-3674"><span class="linenos">3674</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-3675"><a href="#DataType.Type-3675"><span class="linenos">3675</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-3676"><a href="#DataType.Type-3676"><span class="linenos">3676</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-3677"><a href="#DataType.Type-3677"><span class="linenos">3677</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-3678"><a href="#DataType.Type-3678"><span class="linenos">3678</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-3679"><a href="#DataType.Type-3679"><span class="linenos">3679</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-3680"><a href="#DataType.Type-3680"><span class="linenos">3680</span></a> <span class="n">TINYBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3681"><a href="#DataType.Type-3681"><span class="linenos">3681</span></a> <span class="n">TINYTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3682"><a href="#DataType.Type-3682"><span class="linenos">3682</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-3683"><a href="#DataType.Type-3683"><span class="linenos">3683</span></a> <span class="n">TIMETZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3684"><a href="#DataType.Type-3684"><span class="linenos">3684</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-3685"><a href="#DataType.Type-3685"><span class="linenos">3685</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-3686"><a href="#DataType.Type-3686"><span class="linenos">3686</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-3687"><a href="#DataType.Type-3687"><span class="linenos">3687</span></a> <span class="n">TIMESTAMP_S</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3688"><a href="#DataType.Type-3688"><span class="linenos">3688</span></a> <span class="n">TIMESTAMP_MS</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3689"><a href="#DataType.Type-3689"><span class="linenos">3689</span></a> <span class="n">TIMESTAMP_NS</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3690"><a href="#DataType.Type-3690"><span class="linenos">3690</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-3691"><a href="#DataType.Type-3691"><span class="linenos">3691</span></a> <span class="n">TSMULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3692"><a href="#DataType.Type-3692"><span class="linenos">3692</span></a> <span class="n">TSRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3693"><a href="#DataType.Type-3693"><span class="linenos">3693</span></a> <span class="n">TSTZMULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3694"><a href="#DataType.Type-3694"><span class="linenos">3694</span></a> <span class="n">TSTZRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3695"><a href="#DataType.Type-3695"><span class="linenos">3695</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-3696"><a href="#DataType.Type-3696"><span class="linenos">3696</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-3697"><a href="#DataType.Type-3697"><span class="linenos">3697</span></a> <span class="n">UINT128</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3698"><a href="#DataType.Type-3698"><span class="linenos">3698</span></a> <span class="n">UINT256</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3699"><a href="#DataType.Type-3699"><span class="linenos">3699</span></a> <span class="n">UMEDIUMINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3700"><a href="#DataType.Type-3700"><span class="linenos">3700</span></a> <span class="n">UDECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3701"><a href="#DataType.Type-3701"><span class="linenos">3701</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-3702"><a href="#DataType.Type-3702"><span class="linenos">3702</span></a> <span class="n">UNKNOWN</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> <span class="c1"># Sentinel value, useful for type annotation</span>
+</span><span id="DataType.Type-3703"><a href="#DataType.Type-3703"><span class="linenos">3703</span></a> <span class="n">USERDEFINED</span> <span class="o">=</span> <span class="s2">&quot;USER-DEFINED&quot;</span>
+</span><span id="DataType.Type-3704"><a href="#DataType.Type-3704"><span class="linenos">3704</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-3705"><a href="#DataType.Type-3705"><span class="linenos">3705</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-3706"><a href="#DataType.Type-3706"><span class="linenos">3706</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-3707"><a href="#DataType.Type-3707"><span class="linenos">3707</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-3708"><a href="#DataType.Type-3708"><span class="linenos">3708</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-3709"><a href="#DataType.Type-3709"><span class="linenos">3709</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-3710"><a href="#DataType.Type-3710"><span class="linenos">3710</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-3711"><a href="#DataType.Type-3711"><span class="linenos">3711</span></a> <span class="n">YEAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span></pre></div>
@@ -46318,8 +48488,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#PseudoType"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="PseudoType-3804"><a href="#PseudoType-3804"><span class="linenos">3804</span></a><span class="k">class</span> <span class="nc">PseudoType</span><span class="p">(</span><span class="n">DataType</span><span class="p">):</span>
-</span><span id="PseudoType-3805"><a href="#PseudoType-3805"><span class="linenos">3805</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="PseudoType-3831"><a href="#PseudoType-3831"><span class="linenos">3831</span></a><span class="k">class</span> <span class="nc">PseudoType</span><span class="p">(</span><span class="n">DataType</span><span class="p">):</span>
+</span><span id="PseudoType-3832"><a href="#PseudoType-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></pre></div>
@@ -46373,6 +48543,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="PseudoType.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="PseudoType.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="PseudoType.type" class="variable"><a href="#Expression.type">type</a></dd>
+ <dd id="PseudoType.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="PseudoType.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="PseudoType.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="PseudoType.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -46393,6 +48564,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="PseudoType.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="PseudoType.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="PseudoType.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="PseudoType.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="PseudoType.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="PseudoType.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="PseudoType.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -46414,6 +48586,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="PseudoType.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="PseudoType.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="PseudoType.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="PseudoType.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#DataType">DataType</a></dt>
@@ -46441,8 +48614,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#ObjectIdentifier"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ObjectIdentifier-3809"><a href="#ObjectIdentifier-3809"><span class="linenos">3809</span></a><span class="k">class</span> <span class="nc">ObjectIdentifier</span><span class="p">(</span><span class="n">DataType</span><span class="p">):</span>
-</span><span id="ObjectIdentifier-3810"><a href="#ObjectIdentifier-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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ObjectIdentifier-3836"><a href="#ObjectIdentifier-3836"><span class="linenos">3836</span></a><span class="k">class</span> <span class="nc">ObjectIdentifier</span><span class="p">(</span><span class="n">DataType</span><span class="p">):</span>
+</span><span id="ObjectIdentifier-3837"><a href="#ObjectIdentifier-3837"><span class="linenos">3837</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -46496,6 +48669,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="ObjectIdentifier.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="ObjectIdentifier.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ObjectIdentifier.type" class="variable"><a href="#Expression.type">type</a></dd>
+ <dd id="ObjectIdentifier.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="ObjectIdentifier.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="ObjectIdentifier.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ObjectIdentifier.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -46516,6 +48690,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="ObjectIdentifier.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ObjectIdentifier.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ObjectIdentifier.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="ObjectIdentifier.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="ObjectIdentifier.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ObjectIdentifier.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ObjectIdentifier.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -46537,6 +48712,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="ObjectIdentifier.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="ObjectIdentifier.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="ObjectIdentifier.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="ObjectIdentifier.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#DataType">DataType</a></dt>
@@ -46564,8 +48740,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#SubqueryPredicate"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SubqueryPredicate-3814"><a href="#SubqueryPredicate-3814"><span class="linenos">3814</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-3815"><a href="#SubqueryPredicate-3815"><span class="linenos">3815</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="SubqueryPredicate-3841"><a href="#SubqueryPredicate-3841"><span class="linenos">3841</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-3842"><a href="#SubqueryPredicate-3842"><span class="linenos">3842</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -46609,6 +48785,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="SubqueryPredicate.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="SubqueryPredicate.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="SubqueryPredicate.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="SubqueryPredicate.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="SubqueryPredicate.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="SubqueryPredicate.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="SubqueryPredicate.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -46629,6 +48806,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="SubqueryPredicate.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="SubqueryPredicate.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="SubqueryPredicate.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="SubqueryPredicate.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="SubqueryPredicate.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="SubqueryPredicate.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="SubqueryPredicate.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -46650,6 +48828,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="SubqueryPredicate.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="SubqueryPredicate.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="SubqueryPredicate.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="SubqueryPredicate.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -46666,8 +48845,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#All"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="All-3818"><a href="#All-3818"><span class="linenos">3818</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-3819"><a href="#All-3819"><span class="linenos">3819</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="All-3845"><a href="#All-3845"><span class="linenos">3845</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-3846"><a href="#All-3846"><span class="linenos">3846</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -46711,6 +48890,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="All.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="All.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="All.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="All.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="All.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="All.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="All.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -46731,6 +48911,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="All.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="All.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="All.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="All.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="All.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="All.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="All.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -46752,6 +48933,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="All.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="All.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="All.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="All.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -46768,8 +48950,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Any"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Any-3822"><a href="#Any-3822"><span class="linenos">3822</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-3823"><a href="#Any-3823"><span class="linenos">3823</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Any-3849"><a href="#Any-3849"><span class="linenos">3849</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-3850"><a href="#Any-3850"><span class="linenos">3850</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -46813,6 +48995,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Any.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Any.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Any.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Any.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Any.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Any.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Any.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -46833,6 +49016,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Any.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Any.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Any.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Any.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Any.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Any.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Any.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -46854,6 +49038,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Any.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Any.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Any.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Any.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -46870,8 +49055,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Exists"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Exists-3826"><a href="#Exists-3826"><span class="linenos">3826</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-3827"><a href="#Exists-3827"><span class="linenos">3827</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Exists-3853"><a href="#Exists-3853"><span class="linenos">3853</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-3854"><a href="#Exists-3854"><span class="linenos">3854</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -46915,6 +49100,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Exists.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Exists.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Exists.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Exists.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Exists.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Exists.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Exists.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -46935,6 +49121,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Exists.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Exists.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Exists.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Exists.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Exists.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Exists.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Exists.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -46956,6 +49143,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Exists.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Exists.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Exists.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Exists.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -46972,8 +49160,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Command"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Command-3832"><a href="#Command-3832"><span class="linenos">3832</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-3833"><a href="#Command-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">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Command-3859"><a href="#Command-3859"><span class="linenos">3859</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-3860"><a href="#Command-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">False</span><span class="p">}</span>
</span></pre></div>
@@ -47028,6 +49216,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Command.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Command.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Command.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Command.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Command.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Command.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Command.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -47048,6 +49237,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Command.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Command.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Command.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Command.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Command.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Command.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Command.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -47069,6 +49259,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Command.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Command.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Command.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Command.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -47085,8 +49276,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Transaction"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Transaction-3836"><a href="#Transaction-3836"><span class="linenos">3836</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-3837"><a href="#Transaction-3837"><span class="linenos">3837</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;modes&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;mark&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Transaction-3863"><a href="#Transaction-3863"><span class="linenos">3863</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-3864"><a href="#Transaction-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">False</span><span class="p">,</span> <span class="s2">&quot;modes&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;mark&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -47141,6 +49332,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Transaction.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Transaction.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Transaction.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Transaction.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Transaction.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Transaction.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Transaction.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -47161,6 +49353,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Transaction.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Transaction.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Transaction.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Transaction.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Transaction.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Transaction.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Transaction.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -47182,6 +49375,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Transaction.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Transaction.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Transaction.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Transaction.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -47198,8 +49392,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Commit"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Commit-3840"><a href="#Commit-3840"><span class="linenos">3840</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-3841"><a href="#Commit-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;chain&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;durability&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Commit-3867"><a href="#Commit-3867"><span class="linenos">3867</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-3868"><a href="#Commit-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;chain&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;durability&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -47254,6 +49448,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Commit.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Commit.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Commit.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Commit.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Commit.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Commit.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Commit.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -47274,6 +49469,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Commit.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Commit.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Commit.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Commit.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Commit.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Commit.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Commit.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -47295,6 +49491,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Commit.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Commit.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Commit.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Commit.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -47311,8 +49508,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Rollback"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Rollback-3844"><a href="#Rollback-3844"><span class="linenos">3844</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-3845"><a href="#Rollback-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;savepoint&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Rollback-3871"><a href="#Rollback-3871"><span class="linenos">3871</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-3872"><a href="#Rollback-3872"><span class="linenos">3872</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;savepoint&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -47367,6 +49564,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Rollback.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Rollback.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Rollback.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Rollback.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Rollback.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Rollback.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Rollback.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -47387,6 +49585,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Rollback.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Rollback.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Rollback.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Rollback.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Rollback.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Rollback.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Rollback.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -47408,6 +49607,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Rollback.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Rollback.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Rollback.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Rollback.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -47424,8 +49624,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#AlterTable"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="AlterTable-3848"><a href="#AlterTable-3848"><span class="linenos">3848</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-3849"><a href="#AlterTable-3849"><span class="linenos">3849</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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 class="s2">&quot;only&quot;</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-3875"><a href="#AlterTable-3875"><span class="linenos">3875</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-3876"><a href="#AlterTable-3876"><span class="linenos">3876</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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 class="s2">&quot;only&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -47480,6 +49680,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="AlterTable.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="AlterTable.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="AlterTable.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="AlterTable.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="AlterTable.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="AlterTable.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="AlterTable.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -47500,6 +49701,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="AlterTable.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="AlterTable.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="AlterTable.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="AlterTable.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="AlterTable.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="AlterTable.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="AlterTable.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -47521,6 +49723,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="AlterTable.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="AlterTable.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="AlterTable.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="AlterTable.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -47537,8 +49740,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#AddConstraint"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="AddConstraint-3852"><a href="#AddConstraint-3852"><span class="linenos">3852</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-3853"><a href="#AddConstraint-3853"><span class="linenos">3853</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-3879"><a href="#AddConstraint-3879"><span class="linenos">3879</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-3880"><a href="#AddConstraint-3880"><span class="linenos">3880</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -47593,6 +49796,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="AddConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="AddConstraint.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="AddConstraint.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="AddConstraint.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="AddConstraint.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="AddConstraint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="AddConstraint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -47613,6 +49817,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="AddConstraint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="AddConstraint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="AddConstraint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="AddConstraint.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="AddConstraint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="AddConstraint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="AddConstraint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -47634,6 +49839,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="AddConstraint.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="AddConstraint.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="AddConstraint.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="AddConstraint.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -47650,8 +49856,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#DropPartition"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DropPartition-3856"><a href="#DropPartition-3856"><span class="linenos">3856</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-3857"><a href="#DropPartition-3857"><span class="linenos">3857</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-3883"><a href="#DropPartition-3883"><span class="linenos">3883</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-3884"><a href="#DropPartition-3884"><span class="linenos">3884</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>
@@ -47706,6 +49912,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="DropPartition.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DropPartition.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="DropPartition.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="DropPartition.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="DropPartition.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="DropPartition.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DropPartition.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -47726,6 +49933,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="DropPartition.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DropPartition.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DropPartition.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="DropPartition.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="DropPartition.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DropPartition.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DropPartition.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -47747,6 +49955,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="DropPartition.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="DropPartition.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="DropPartition.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="DropPartition.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -47763,16 +49972,16 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Binary"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Binary-3861"><a href="#Binary-3861"><span class="linenos">3861</span></a><span class="k">class</span> <span class="nc">Binary</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
-</span><span id="Binary-3862"><a href="#Binary-3862"><span class="linenos">3862</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3863"><a href="#Binary-3863"><span class="linenos">3863</span></a>
-</span><span id="Binary-3864"><a href="#Binary-3864"><span class="linenos">3864</span></a> <span class="nd">@property</span>
-</span><span id="Binary-3865"><a href="#Binary-3865"><span class="linenos">3865</span></a> <span class="k">def</span> <span class="nf">left</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="Binary-3866"><a href="#Binary-3866"><span class="linenos">3866</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-3867"><a href="#Binary-3867"><span class="linenos">3867</span></a>
-</span><span id="Binary-3868"><a href="#Binary-3868"><span class="linenos">3868</span></a> <span class="nd">@property</span>
-</span><span id="Binary-3869"><a href="#Binary-3869"><span class="linenos">3869</span></a> <span class="k">def</span> <span class="nf">right</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="Binary-3870"><a href="#Binary-3870"><span class="linenos">3870</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-3888"><a href="#Binary-3888"><span class="linenos">3888</span></a><span class="k">class</span> <span class="nc">Binary</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
+</span><span id="Binary-3889"><a href="#Binary-3889"><span class="linenos">3889</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3890"><a href="#Binary-3890"><span class="linenos">3890</span></a>
+</span><span id="Binary-3891"><a href="#Binary-3891"><span class="linenos">3891</span></a> <span class="nd">@property</span>
+</span><span id="Binary-3892"><a href="#Binary-3892"><span class="linenos">3892</span></a> <span class="k">def</span> <span class="nf">left</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="Binary-3893"><a href="#Binary-3893"><span class="linenos">3893</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-3894"><a href="#Binary-3894"><span class="linenos">3894</span></a>
+</span><span id="Binary-3895"><a href="#Binary-3895"><span class="linenos">3895</span></a> <span class="nd">@property</span>
+</span><span id="Binary-3896"><a href="#Binary-3896"><span class="linenos">3896</span></a> <span class="k">def</span> <span class="nf">right</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="Binary-3897"><a href="#Binary-3897"><span class="linenos">3897</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span>
</span></pre></div>
@@ -47791,24 +50000,38 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<div id="Binary.left" class="classattr">
- <div class="attr variable">
+ <input id="Binary.left-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">left</span><span class="annotation">: <a href="#Expression">Expression</a></span>
-
+ <label class="view-source-button" for="Binary.left-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Binary.left"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Binary.left-3891"><a href="#Binary.left-3891"><span class="linenos">3891</span></a> <span class="nd">@property</span>
+</span><span id="Binary.left-3892"><a href="#Binary.left-3892"><span class="linenos">3892</span></a> <span class="k">def</span> <span class="nf">left</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="Binary.left-3893"><a href="#Binary.left-3893"><span class="linenos">3893</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span>
+</span></pre></div>
+
+
</div>
<div id="Binary.right" class="classattr">
- <div class="attr variable">
+ <input id="Binary.right-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">right</span><span class="annotation">: <a href="#Expression">Expression</a></span>
-
+ <label class="view-source-button" for="Binary.right-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Binary.right"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Binary.right-3895"><a href="#Binary.right-3895"><span class="linenos">3895</span></a> <span class="nd">@property</span>
+</span><span id="Binary.right-3896"><a href="#Binary.right-3896"><span class="linenos">3896</span></a> <span class="k">def</span> <span class="nf">right</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="Binary.right-3897"><a href="#Binary.right-3897"><span class="linenos">3897</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span>
+</span></pre></div>
+
+
</div>
@@ -47849,6 +50072,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Binary.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Binary.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Binary.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Binary.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Binary.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Binary.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Binary.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -47869,6 +50093,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Binary.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Binary.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Binary.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Binary.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Binary.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Binary.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Binary.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -47890,6 +50115,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Binary.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Binary.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Binary.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Binary.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -47906,8 +50132,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Add"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Add-3873"><a href="#Add-3873"><span class="linenos">3873</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-3874"><a href="#Add-3874"><span class="linenos">3874</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Add-3900"><a href="#Add-3900"><span class="linenos">3900</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-3901"><a href="#Add-3901"><span class="linenos">3901</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -47950,6 +50176,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Add.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Add.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Add.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Add.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Add.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Add.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Add.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -47970,6 +50197,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Add.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Add.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Add.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Add.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Add.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Add.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Add.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -47991,6 +50219,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Add.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Add.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Add.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Add.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Binary">Binary</a></dt>
@@ -48013,8 +50242,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Connector"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Connector-3877"><a href="#Connector-3877"><span class="linenos">3877</span></a><span class="k">class</span> <span class="nc">Connector</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="Connector-3878"><a href="#Connector-3878"><span class="linenos">3878</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Connector-3904"><a href="#Connector-3904"><span class="linenos">3904</span></a><span class="k">class</span> <span class="nc">Connector</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="Connector-3905"><a href="#Connector-3905"><span class="linenos">3905</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -48057,6 +50286,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Connector.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Connector.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Connector.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Connector.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Connector.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Connector.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Connector.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -48077,6 +50307,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Connector.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Connector.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Connector.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Connector.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Connector.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Connector.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Connector.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -48098,6 +50329,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Connector.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Connector.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Connector.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Connector.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Binary">Binary</a></dt>
@@ -48120,8 +50352,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#And"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="And-3881"><a href="#And-3881"><span class="linenos">3881</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-3882"><a href="#And-3882"><span class="linenos">3882</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="And-3908"><a href="#And-3908"><span class="linenos">3908</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-3909"><a href="#And-3909"><span class="linenos">3909</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -48164,6 +50396,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="And.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="And.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="And.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="And.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="And.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="And.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="And.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -48184,6 +50417,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="And.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="And.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="And.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="And.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="And.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="And.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="And.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -48205,6 +50439,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="And.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="And.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="And.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="And.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Binary">Binary</a></dt>
@@ -48227,8 +50462,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Or"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Or-3885"><a href="#Or-3885"><span class="linenos">3885</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-3886"><a href="#Or-3886"><span class="linenos">3886</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Or-3912"><a href="#Or-3912"><span class="linenos">3912</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-3913"><a href="#Or-3913"><span class="linenos">3913</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -48271,6 +50506,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Or.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Or.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Or.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Or.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Or.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Or.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Or.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -48291,6 +50527,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Or.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Or.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Or.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Or.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Or.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Or.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Or.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -48312,6 +50549,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Or.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Or.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Or.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Or.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Binary">Binary</a></dt>
@@ -48334,8 +50572,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#BitwiseAnd"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseAnd-3889"><a href="#BitwiseAnd-3889"><span class="linenos">3889</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-3890"><a href="#BitwiseAnd-3890"><span class="linenos">3890</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseAnd-3916"><a href="#BitwiseAnd-3916"><span class="linenos">3916</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-3917"><a href="#BitwiseAnd-3917"><span class="linenos">3917</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -48378,6 +50616,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="BitwiseAnd.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="BitwiseAnd.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="BitwiseAnd.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="BitwiseAnd.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="BitwiseAnd.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="BitwiseAnd.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="BitwiseAnd.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -48398,6 +50637,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="BitwiseAnd.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="BitwiseAnd.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="BitwiseAnd.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="BitwiseAnd.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="BitwiseAnd.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="BitwiseAnd.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="BitwiseAnd.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -48419,6 +50659,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="BitwiseAnd.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="BitwiseAnd.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="BitwiseAnd.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="BitwiseAnd.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Binary">Binary</a></dt>
@@ -48441,8 +50682,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#BitwiseLeftShift"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseLeftShift-3893"><a href="#BitwiseLeftShift-3893"><span class="linenos">3893</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-3894"><a href="#BitwiseLeftShift-3894"><span class="linenos">3894</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseLeftShift-3920"><a href="#BitwiseLeftShift-3920"><span class="linenos">3920</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-3921"><a href="#BitwiseLeftShift-3921"><span class="linenos">3921</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -48485,6 +50726,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="BitwiseLeftShift.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="BitwiseLeftShift.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="BitwiseLeftShift.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="BitwiseLeftShift.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="BitwiseLeftShift.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="BitwiseLeftShift.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="BitwiseLeftShift.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -48505,6 +50747,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="BitwiseLeftShift.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="BitwiseLeftShift.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="BitwiseLeftShift.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="BitwiseLeftShift.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="BitwiseLeftShift.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="BitwiseLeftShift.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="BitwiseLeftShift.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -48526,6 +50769,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="BitwiseLeftShift.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="BitwiseLeftShift.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="BitwiseLeftShift.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="BitwiseLeftShift.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Binary">Binary</a></dt>
@@ -48548,8 +50792,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#BitwiseOr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseOr-3897"><a href="#BitwiseOr-3897"><span class="linenos">3897</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-3898"><a href="#BitwiseOr-3898"><span class="linenos">3898</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseOr-3924"><a href="#BitwiseOr-3924"><span class="linenos">3924</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-3925"><a href="#BitwiseOr-3925"><span class="linenos">3925</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -48592,6 +50836,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="BitwiseOr.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="BitwiseOr.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="BitwiseOr.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="BitwiseOr.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="BitwiseOr.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="BitwiseOr.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="BitwiseOr.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -48612,6 +50857,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="BitwiseOr.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="BitwiseOr.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="BitwiseOr.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="BitwiseOr.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="BitwiseOr.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="BitwiseOr.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="BitwiseOr.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -48633,6 +50879,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="BitwiseOr.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="BitwiseOr.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="BitwiseOr.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="BitwiseOr.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Binary">Binary</a></dt>
@@ -48655,8 +50902,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#BitwiseRightShift"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseRightShift-3901"><a href="#BitwiseRightShift-3901"><span class="linenos">3901</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-3902"><a href="#BitwiseRightShift-3902"><span class="linenos">3902</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseRightShift-3928"><a href="#BitwiseRightShift-3928"><span class="linenos">3928</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-3929"><a href="#BitwiseRightShift-3929"><span class="linenos">3929</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -48699,6 +50946,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="BitwiseRightShift.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="BitwiseRightShift.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="BitwiseRightShift.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="BitwiseRightShift.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="BitwiseRightShift.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="BitwiseRightShift.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="BitwiseRightShift.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -48719,6 +50967,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="BitwiseRightShift.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="BitwiseRightShift.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="BitwiseRightShift.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="BitwiseRightShift.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="BitwiseRightShift.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="BitwiseRightShift.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="BitwiseRightShift.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -48740,6 +50989,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="BitwiseRightShift.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="BitwiseRightShift.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="BitwiseRightShift.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="BitwiseRightShift.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Binary">Binary</a></dt>
@@ -48762,8 +51012,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#BitwiseXor"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseXor-3905"><a href="#BitwiseXor-3905"><span class="linenos">3905</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-3906"><a href="#BitwiseXor-3906"><span class="linenos">3906</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseXor-3932"><a href="#BitwiseXor-3932"><span class="linenos">3932</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-3933"><a href="#BitwiseXor-3933"><span class="linenos">3933</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -48806,6 +51056,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="BitwiseXor.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="BitwiseXor.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="BitwiseXor.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="BitwiseXor.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="BitwiseXor.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="BitwiseXor.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="BitwiseXor.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -48826,6 +51077,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="BitwiseXor.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="BitwiseXor.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="BitwiseXor.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="BitwiseXor.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="BitwiseXor.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="BitwiseXor.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="BitwiseXor.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -48847,6 +51099,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="BitwiseXor.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="BitwiseXor.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="BitwiseXor.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="BitwiseXor.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Binary">Binary</a></dt>
@@ -48869,8 +51122,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Div"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Div-3909"><a href="#Div-3909"><span class="linenos">3909</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-3910"><a href="#Div-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;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;typed&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;safe&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Div-3936"><a href="#Div-3936"><span class="linenos">3936</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-3937"><a href="#Div-3937"><span class="linenos">3937</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;typed&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;safe&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -48925,6 +51178,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Div.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Div.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Div.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Div.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Div.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Div.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Div.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -48945,6 +51199,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Div.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Div.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Div.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Div.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Div.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Div.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Div.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -48966,6 +51221,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Div.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Div.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Div.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Div.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Binary">Binary</a></dt>
@@ -48987,8 +51243,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Overlaps"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Overlaps-3913"><a href="#Overlaps-3913"><span class="linenos">3913</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-3914"><a href="#Overlaps-3914"><span class="linenos">3914</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Overlaps-3940"><a href="#Overlaps-3940"><span class="linenos">3940</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-3941"><a href="#Overlaps-3941"><span class="linenos">3941</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -49031,6 +51287,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Overlaps.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Overlaps.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Overlaps.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Overlaps.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Overlaps.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Overlaps.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Overlaps.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -49051,6 +51308,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Overlaps.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Overlaps.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Overlaps.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Overlaps.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Overlaps.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Overlaps.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Overlaps.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -49072,6 +51330,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Overlaps.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Overlaps.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Overlaps.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Overlaps.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Binary">Binary</a></dt>
@@ -49094,62 +51353,76 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Dot"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Dot-3917"><a href="#Dot-3917"><span class="linenos">3917</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-3918"><a href="#Dot-3918"><span class="linenos">3918</span></a> <span class="nd">@property</span>
-</span><span id="Dot-3919"><a href="#Dot-3919"><span class="linenos">3919</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-3920"><a href="#Dot-3920"><span class="linenos">3920</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-3921"><a href="#Dot-3921"><span class="linenos">3921</span></a>
-</span><span id="Dot-3922"><a href="#Dot-3922"><span class="linenos">3922</span></a> <span class="nd">@property</span>
-</span><span id="Dot-3923"><a href="#Dot-3923"><span class="linenos">3923</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Dot-3924"><a href="#Dot-3924"><span class="linenos">3924</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
-</span><span id="Dot-3925"><a href="#Dot-3925"><span class="linenos">3925</span></a>
-</span><span id="Dot-3926"><a href="#Dot-3926"><span class="linenos">3926</span></a> <span class="nd">@classmethod</span>
-</span><span id="Dot-3927"><a href="#Dot-3927"><span class="linenos">3927</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-3928"><a href="#Dot-3928"><span class="linenos">3928</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-3929"><a href="#Dot-3929"><span class="linenos">3929</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-3930"><a href="#Dot-3930"><span class="linenos">3930</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-3931"><a href="#Dot-3931"><span class="linenos">3931</span></a>
-</span><span id="Dot-3932"><a href="#Dot-3932"><span class="linenos">3932</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Dot</span><span class="p">,</span> <span class="n">reduce</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">:</span> <span class="n">Dot</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">x</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">y</span><span class="p">),</span> <span class="n">expressions</span><span class="p">))</span>
-</span><span id="Dot-3933"><a href="#Dot-3933"><span class="linenos">3933</span></a>
-</span><span id="Dot-3934"><a href="#Dot-3934"><span class="linenos">3934</span></a> <span class="nd">@property</span>
-</span><span id="Dot-3935"><a href="#Dot-3935"><span class="linenos">3935</span></a> <span class="k">def</span> <span class="nf">parts</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
-</span><span id="Dot-3936"><a href="#Dot-3936"><span class="linenos">3936</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Return the parts of a table / column in order catalog, db, table.&quot;&quot;&quot;</span>
-</span><span id="Dot-3937"><a href="#Dot-3937"><span class="linenos">3937</span></a> <span class="n">this</span><span class="p">,</span> <span class="o">*</span><span class="n">parts</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">flatten</span><span class="p">()</span>
-</span><span id="Dot-3938"><a href="#Dot-3938"><span class="linenos">3938</span></a>
-</span><span id="Dot-3939"><a href="#Dot-3939"><span class="linenos">3939</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">reverse</span><span class="p">()</span>
-</span><span id="Dot-3940"><a href="#Dot-3940"><span class="linenos">3940</span></a>
-</span><span id="Dot-3941"><a href="#Dot-3941"><span class="linenos">3941</span></a> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">&quot;this&quot;</span><span class="p">,</span> <span class="s2">&quot;table&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="Dot-3942"><a href="#Dot-3942"><span class="linenos">3942</span></a> <span class="n">part</span> <span class="o">=</span> <span class="n">this</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span>
-</span><span id="Dot-3943"><a href="#Dot-3943"><span class="linenos">3943</span></a>
-</span><span id="Dot-3944"><a href="#Dot-3944"><span class="linenos">3944</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">part</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
-</span><span id="Dot-3945"><a href="#Dot-3945"><span class="linenos">3945</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">part</span><span class="p">)</span>
-</span><span id="Dot-3946"><a href="#Dot-3946"><span class="linenos">3946</span></a>
-</span><span id="Dot-3947"><a href="#Dot-3947"><span class="linenos">3947</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">reverse</span><span class="p">()</span>
-</span><span id="Dot-3948"><a href="#Dot-3948"><span class="linenos">3948</span></a> <span class="k">return</span> <span class="n">parts</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Dot-3944"><a href="#Dot-3944"><span class="linenos">3944</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-3945"><a href="#Dot-3945"><span class="linenos">3945</span></a> <span class="nd">@property</span>
+</span><span id="Dot-3946"><a href="#Dot-3946"><span class="linenos">3946</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-3947"><a href="#Dot-3947"><span class="linenos">3947</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-3948"><a href="#Dot-3948"><span class="linenos">3948</span></a>
+</span><span id="Dot-3949"><a href="#Dot-3949"><span class="linenos">3949</span></a> <span class="nd">@property</span>
+</span><span id="Dot-3950"><a href="#Dot-3950"><span class="linenos">3950</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Dot-3951"><a href="#Dot-3951"><span class="linenos">3951</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
+</span><span id="Dot-3952"><a href="#Dot-3952"><span class="linenos">3952</span></a>
+</span><span id="Dot-3953"><a href="#Dot-3953"><span class="linenos">3953</span></a> <span class="nd">@classmethod</span>
+</span><span id="Dot-3954"><a href="#Dot-3954"><span class="linenos">3954</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-3955"><a href="#Dot-3955"><span class="linenos">3955</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-3956"><a href="#Dot-3956"><span class="linenos">3956</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-3957"><a href="#Dot-3957"><span class="linenos">3957</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-3958"><a href="#Dot-3958"><span class="linenos">3958</span></a>
+</span><span id="Dot-3959"><a href="#Dot-3959"><span class="linenos">3959</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Dot</span><span class="p">,</span> <span class="n">reduce</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">:</span> <span class="n">Dot</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">x</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">y</span><span class="p">),</span> <span class="n">expressions</span><span class="p">))</span>
+</span><span id="Dot-3960"><a href="#Dot-3960"><span class="linenos">3960</span></a>
+</span><span id="Dot-3961"><a href="#Dot-3961"><span class="linenos">3961</span></a> <span class="nd">@property</span>
+</span><span id="Dot-3962"><a href="#Dot-3962"><span class="linenos">3962</span></a> <span class="k">def</span> <span class="nf">parts</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="Dot-3963"><a href="#Dot-3963"><span class="linenos">3963</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Return the parts of a table / column in order catalog, db, table.&quot;&quot;&quot;</span>
+</span><span id="Dot-3964"><a href="#Dot-3964"><span class="linenos">3964</span></a> <span class="n">this</span><span class="p">,</span> <span class="o">*</span><span class="n">parts</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">flatten</span><span class="p">()</span>
+</span><span id="Dot-3965"><a href="#Dot-3965"><span class="linenos">3965</span></a>
+</span><span id="Dot-3966"><a href="#Dot-3966"><span class="linenos">3966</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">reverse</span><span class="p">()</span>
+</span><span id="Dot-3967"><a href="#Dot-3967"><span class="linenos">3967</span></a>
+</span><span id="Dot-3968"><a href="#Dot-3968"><span class="linenos">3968</span></a> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">&quot;this&quot;</span><span class="p">,</span> <span class="s2">&quot;table&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="Dot-3969"><a href="#Dot-3969"><span class="linenos">3969</span></a> <span class="n">part</span> <span class="o">=</span> <span class="n">this</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span>
+</span><span id="Dot-3970"><a href="#Dot-3970"><span class="linenos">3970</span></a>
+</span><span id="Dot-3971"><a href="#Dot-3971"><span class="linenos">3971</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">part</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
+</span><span id="Dot-3972"><a href="#Dot-3972"><span class="linenos">3972</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">part</span><span class="p">)</span>
+</span><span id="Dot-3973"><a href="#Dot-3973"><span class="linenos">3973</span></a>
+</span><span id="Dot-3974"><a href="#Dot-3974"><span class="linenos">3974</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">reverse</span><span class="p">()</span>
+</span><span id="Dot-3975"><a href="#Dot-3975"><span class="linenos">3975</span></a> <span class="k">return</span> <span class="n">parts</span>
</span></pre></div>
<div id="Dot.name" class="classattr">
- <div class="attr variable">
+ <input id="Dot.name-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">name</span><span class="annotation">: str</span>
-
+ <label class="view-source-button" for="Dot.name-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Dot.name"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Dot.name-3945"><a href="#Dot.name-3945"><span class="linenos">3945</span></a> <span class="nd">@property</span>
+</span><span id="Dot.name-3946"><a href="#Dot.name-3946"><span class="linenos">3946</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Dot.name-3947"><a href="#Dot.name-3947"><span class="linenos">3947</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">name</span>
+</span></pre></div>
+
+
</div>
<div id="Dot.output_name" class="classattr">
- <div class="attr variable">
+ <input id="Dot.output_name-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">output_name</span><span class="annotation">: str</span>
-
+ <label class="view-source-button" for="Dot.output_name-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Dot.output_name"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Dot.output_name-3949"><a href="#Dot.output_name-3949"><span class="linenos">3949</span></a> <span class="nd">@property</span>
+</span><span id="Dot.output_name-3950"><a href="#Dot.output_name-3950"><span class="linenos">3950</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Dot.output_name-3951"><a href="#Dot.output_name-3951"><span class="linenos">3951</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
+</span></pre></div>
+
+
<div class="docstring"><p>Name of the output column if this expression is a selection.</p>
<p>If the Expression has no output name, an empty string is returned.</p>
@@ -49184,13 +51457,13 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Dot.build"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Dot.build-3926"><a href="#Dot.build-3926"><span class="linenos">3926</span></a> <span class="nd">@classmethod</span>
-</span><span id="Dot.build-3927"><a href="#Dot.build-3927"><span class="linenos">3927</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-3928"><a href="#Dot.build-3928"><span class="linenos">3928</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-3929"><a href="#Dot.build-3929"><span class="linenos">3929</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-3930"><a href="#Dot.build-3930"><span class="linenos">3930</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-3931"><a href="#Dot.build-3931"><span class="linenos">3931</span></a>
-</span><span id="Dot.build-3932"><a href="#Dot.build-3932"><span class="linenos">3932</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Dot</span><span class="p">,</span> <span class="n">reduce</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">:</span> <span class="n">Dot</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">x</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">y</span><span class="p">),</span> <span class="n">expressions</span><span class="p">))</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Dot.build-3953"><a href="#Dot.build-3953"><span class="linenos">3953</span></a> <span class="nd">@classmethod</span>
+</span><span id="Dot.build-3954"><a href="#Dot.build-3954"><span class="linenos">3954</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-3955"><a href="#Dot.build-3955"><span class="linenos">3955</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-3956"><a href="#Dot.build-3956"><span class="linenos">3956</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-3957"><a href="#Dot.build-3957"><span class="linenos">3957</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-3958"><a href="#Dot.build-3958"><span class="linenos">3958</span></a>
+</span><span id="Dot.build-3959"><a href="#Dot.build-3959"><span class="linenos">3959</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Dot</span><span class="p">,</span> <span class="n">reduce</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">:</span> <span class="n">Dot</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">x</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">y</span><span class="p">),</span> <span class="n">expressions</span><span class="p">))</span>
</span></pre></div>
@@ -49200,13 +51473,32 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<div id="Dot.parts" class="classattr">
- <div class="attr variable">
+ <input id="Dot.parts-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">parts</span><span class="annotation">: List[<a href="#Expression">Expression</a>]</span>
-
+ <label class="view-source-button" for="Dot.parts-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Dot.parts"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Dot.parts-3961"><a href="#Dot.parts-3961"><span class="linenos">3961</span></a> <span class="nd">@property</span>
+</span><span id="Dot.parts-3962"><a href="#Dot.parts-3962"><span class="linenos">3962</span></a> <span class="k">def</span> <span class="nf">parts</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="Dot.parts-3963"><a href="#Dot.parts-3963"><span class="linenos">3963</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Return the parts of a table / column in order catalog, db, table.&quot;&quot;&quot;</span>
+</span><span id="Dot.parts-3964"><a href="#Dot.parts-3964"><span class="linenos">3964</span></a> <span class="n">this</span><span class="p">,</span> <span class="o">*</span><span class="n">parts</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">flatten</span><span class="p">()</span>
+</span><span id="Dot.parts-3965"><a href="#Dot.parts-3965"><span class="linenos">3965</span></a>
+</span><span id="Dot.parts-3966"><a href="#Dot.parts-3966"><span class="linenos">3966</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">reverse</span><span class="p">()</span>
+</span><span id="Dot.parts-3967"><a href="#Dot.parts-3967"><span class="linenos">3967</span></a>
+</span><span id="Dot.parts-3968"><a href="#Dot.parts-3968"><span class="linenos">3968</span></a> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">&quot;this&quot;</span><span class="p">,</span> <span class="s2">&quot;table&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="Dot.parts-3969"><a href="#Dot.parts-3969"><span class="linenos">3969</span></a> <span class="n">part</span> <span class="o">=</span> <span class="n">this</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span>
+</span><span id="Dot.parts-3970"><a href="#Dot.parts-3970"><span class="linenos">3970</span></a>
+</span><span id="Dot.parts-3971"><a href="#Dot.parts-3971"><span class="linenos">3971</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">part</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
+</span><span id="Dot.parts-3972"><a href="#Dot.parts-3972"><span class="linenos">3972</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">part</span><span class="p">)</span>
+</span><span id="Dot.parts-3973"><a href="#Dot.parts-3973"><span class="linenos">3973</span></a>
+</span><span id="Dot.parts-3974"><a href="#Dot.parts-3974"><span class="linenos">3974</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">reverse</span><span class="p">()</span>
+</span><span id="Dot.parts-3975"><a href="#Dot.parts-3975"><span class="linenos">3975</span></a> <span class="k">return</span> <span class="n">parts</span>
+</span></pre></div>
+
+
<div class="docstring"><p>Return the parts of a table / column in order catalog, db, table.</p>
</div>
@@ -49247,6 +51539,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Dot.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Dot.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Dot.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Dot.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Dot.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Dot.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Dot.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -49267,6 +51560,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Dot.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Dot.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Dot.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Dot.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Dot.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Dot.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Dot.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -49288,6 +51582,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Dot.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Dot.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Dot.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Dot.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Binary">Binary</a></dt>
@@ -49310,8 +51605,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#DPipe"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DPipe-3951"><a href="#DPipe-3951"><span class="linenos">3951</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-3952"><a href="#DPipe-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;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;safe&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DPipe-3978"><a href="#DPipe-3978"><span class="linenos">3978</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-3979"><a href="#DPipe-3979"><span class="linenos">3979</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;safe&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -49366,6 +51661,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="DPipe.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DPipe.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="DPipe.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="DPipe.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="DPipe.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="DPipe.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DPipe.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -49386,6 +51682,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="DPipe.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DPipe.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DPipe.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="DPipe.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="DPipe.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DPipe.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DPipe.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -49407,6 +51704,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="DPipe.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="DPipe.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="DPipe.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="DPipe.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Binary">Binary</a></dt>
@@ -49428,8 +51726,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#EQ"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="EQ-3955"><a href="#EQ-3955"><span class="linenos">3955</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-3956"><a href="#EQ-3956"><span class="linenos">3956</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="EQ-3982"><a href="#EQ-3982"><span class="linenos">3982</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-3983"><a href="#EQ-3983"><span class="linenos">3983</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -49472,6 +51770,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="EQ.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="EQ.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="EQ.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="EQ.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="EQ.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="EQ.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="EQ.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -49492,6 +51791,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="EQ.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="EQ.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="EQ.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="EQ.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="EQ.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="EQ.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="EQ.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -49513,6 +51813,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="EQ.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="EQ.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="EQ.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="EQ.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Binary">Binary</a></dt>
@@ -49535,8 +51836,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#NullSafeEQ"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="NullSafeEQ-3959"><a href="#NullSafeEQ-3959"><span class="linenos">3959</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-3960"><a href="#NullSafeEQ-3960"><span class="linenos">3960</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="NullSafeEQ-3986"><a href="#NullSafeEQ-3986"><span class="linenos">3986</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-3987"><a href="#NullSafeEQ-3987"><span class="linenos">3987</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -49579,6 +51880,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="NullSafeEQ.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="NullSafeEQ.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="NullSafeEQ.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="NullSafeEQ.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="NullSafeEQ.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="NullSafeEQ.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="NullSafeEQ.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -49599,6 +51901,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="NullSafeEQ.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="NullSafeEQ.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="NullSafeEQ.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="NullSafeEQ.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="NullSafeEQ.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="NullSafeEQ.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="NullSafeEQ.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -49620,6 +51923,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="NullSafeEQ.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="NullSafeEQ.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="NullSafeEQ.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="NullSafeEQ.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Binary">Binary</a></dt>
@@ -49642,8 +51946,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#NullSafeNEQ"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="NullSafeNEQ-3963"><a href="#NullSafeNEQ-3963"><span class="linenos">3963</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-3964"><a href="#NullSafeNEQ-3964"><span class="linenos">3964</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="NullSafeNEQ-3990"><a href="#NullSafeNEQ-3990"><span class="linenos">3990</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-3991"><a href="#NullSafeNEQ-3991"><span class="linenos">3991</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -49686,6 +51990,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="NullSafeNEQ.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="NullSafeNEQ.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="NullSafeNEQ.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="NullSafeNEQ.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="NullSafeNEQ.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="NullSafeNEQ.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="NullSafeNEQ.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -49706,6 +52011,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="NullSafeNEQ.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="NullSafeNEQ.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="NullSafeNEQ.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="NullSafeNEQ.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="NullSafeNEQ.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="NullSafeNEQ.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="NullSafeNEQ.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -49727,6 +52033,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="NullSafeNEQ.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="NullSafeNEQ.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="NullSafeNEQ.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="NullSafeNEQ.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Binary">Binary</a></dt>
@@ -49749,8 +52056,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#PropertyEQ"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="PropertyEQ-3968"><a href="#PropertyEQ-3968"><span class="linenos">3968</span></a><span class="k">class</span> <span class="nc">PropertyEQ</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="PropertyEQ-3969"><a href="#PropertyEQ-3969"><span class="linenos">3969</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="PropertyEQ-3995"><a href="#PropertyEQ-3995"><span class="linenos">3995</span></a><span class="k">class</span> <span class="nc">PropertyEQ</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="PropertyEQ-3996"><a href="#PropertyEQ-3996"><span class="linenos">3996</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -49793,6 +52100,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="PropertyEQ.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="PropertyEQ.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="PropertyEQ.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="PropertyEQ.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="PropertyEQ.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="PropertyEQ.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="PropertyEQ.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -49813,6 +52121,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="PropertyEQ.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="PropertyEQ.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="PropertyEQ.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="PropertyEQ.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="PropertyEQ.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="PropertyEQ.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="PropertyEQ.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -49834,6 +52143,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="PropertyEQ.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="PropertyEQ.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="PropertyEQ.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="PropertyEQ.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Binary">Binary</a></dt>
@@ -49856,8 +52166,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Distance"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Distance-3972"><a href="#Distance-3972"><span class="linenos">3972</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-3973"><a href="#Distance-3973"><span class="linenos">3973</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Distance-3999"><a href="#Distance-3999"><span class="linenos">3999</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-4000"><a href="#Distance-4000"><span class="linenos">4000</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -49900,6 +52210,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Distance.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Distance.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Distance.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Distance.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Distance.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Distance.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Distance.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -49920,6 +52231,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Distance.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Distance.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Distance.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Distance.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Distance.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Distance.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Distance.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -49941,6 +52253,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Distance.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Distance.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Distance.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Distance.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Binary">Binary</a></dt>
@@ -49963,8 +52276,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Escape"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Escape-3976"><a href="#Escape-3976"><span class="linenos">3976</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-3977"><a href="#Escape-3977"><span class="linenos">3977</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Escape-4003"><a href="#Escape-4003"><span class="linenos">4003</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-4004"><a href="#Escape-4004"><span class="linenos">4004</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -50007,6 +52320,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Escape.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Escape.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Escape.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Escape.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Escape.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Escape.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Escape.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -50027,6 +52341,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Escape.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Escape.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Escape.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Escape.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Escape.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Escape.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Escape.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -50048,6 +52363,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Escape.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Escape.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Escape.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Escape.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Binary">Binary</a></dt>
@@ -50070,8 +52386,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Glob"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Glob-3980"><a href="#Glob-3980"><span class="linenos">3980</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-3981"><a href="#Glob-3981"><span class="linenos">3981</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Glob-4007"><a href="#Glob-4007"><span class="linenos">4007</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-4008"><a href="#Glob-4008"><span class="linenos">4008</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -50114,6 +52430,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Glob.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Glob.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Glob.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Glob.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Glob.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Glob.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Glob.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -50134,6 +52451,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Glob.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Glob.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Glob.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Glob.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Glob.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Glob.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Glob.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -50155,6 +52473,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Glob.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Glob.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Glob.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Glob.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Binary">Binary</a></dt>
@@ -50177,8 +52496,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#GT"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="GT-3984"><a href="#GT-3984"><span class="linenos">3984</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-3985"><a href="#GT-3985"><span class="linenos">3985</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="GT-4011"><a href="#GT-4011"><span class="linenos">4011</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-4012"><a href="#GT-4012"><span class="linenos">4012</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -50221,6 +52540,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="GT.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="GT.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="GT.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="GT.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="GT.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="GT.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="GT.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -50241,6 +52561,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="GT.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="GT.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="GT.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="GT.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="GT.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="GT.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="GT.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -50262,6 +52583,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="GT.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="GT.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="GT.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="GT.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Binary">Binary</a></dt>
@@ -50284,8 +52606,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#GTE"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="GTE-3988"><a href="#GTE-3988"><span class="linenos">3988</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-3989"><a href="#GTE-3989"><span class="linenos">3989</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="GTE-4015"><a href="#GTE-4015"><span class="linenos">4015</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-4016"><a href="#GTE-4016"><span class="linenos">4016</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -50328,6 +52650,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="GTE.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="GTE.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="GTE.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="GTE.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="GTE.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="GTE.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="GTE.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -50348,6 +52671,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="GTE.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="GTE.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="GTE.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="GTE.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="GTE.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="GTE.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="GTE.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -50369,6 +52693,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="GTE.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="GTE.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="GTE.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="GTE.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Binary">Binary</a></dt>
@@ -50391,8 +52716,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#ILike"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ILike-3992"><a href="#ILike-3992"><span class="linenos">3992</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-3993"><a href="#ILike-3993"><span class="linenos">3993</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ILike-4019"><a href="#ILike-4019"><span class="linenos">4019</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-4020"><a href="#ILike-4020"><span class="linenos">4020</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -50435,6 +52760,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="ILike.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ILike.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="ILike.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="ILike.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="ILike.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="ILike.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ILike.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -50455,6 +52781,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="ILike.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ILike.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ILike.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="ILike.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="ILike.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ILike.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ILike.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -50476,6 +52803,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="ILike.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="ILike.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="ILike.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="ILike.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Binary">Binary</a></dt>
@@ -50498,8 +52826,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#ILikeAny"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ILikeAny-3996"><a href="#ILikeAny-3996"><span class="linenos">3996</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-3997"><a href="#ILikeAny-3997"><span class="linenos">3997</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ILikeAny-4023"><a href="#ILikeAny-4023"><span class="linenos">4023</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-4024"><a href="#ILikeAny-4024"><span class="linenos">4024</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -50542,6 +52870,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="ILikeAny.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ILikeAny.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="ILikeAny.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="ILikeAny.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="ILikeAny.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="ILikeAny.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ILikeAny.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -50562,6 +52891,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="ILikeAny.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ILikeAny.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ILikeAny.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="ILikeAny.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="ILikeAny.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ILikeAny.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ILikeAny.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -50583,6 +52913,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="ILikeAny.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="ILikeAny.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="ILikeAny.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="ILikeAny.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Binary">Binary</a></dt>
@@ -50605,8 +52936,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#IntDiv"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="IntDiv-4000"><a href="#IntDiv-4000"><span class="linenos">4000</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-4001"><a href="#IntDiv-4001"><span class="linenos">4001</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="IntDiv-4027"><a href="#IntDiv-4027"><span class="linenos">4027</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-4028"><a href="#IntDiv-4028"><span class="linenos">4028</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -50649,6 +52980,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="IntDiv.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="IntDiv.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="IntDiv.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="IntDiv.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="IntDiv.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="IntDiv.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="IntDiv.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -50669,6 +53001,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="IntDiv.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="IntDiv.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="IntDiv.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="IntDiv.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="IntDiv.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="IntDiv.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="IntDiv.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -50690,6 +53023,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="IntDiv.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="IntDiv.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="IntDiv.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="IntDiv.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Binary">Binary</a></dt>
@@ -50712,8 +53046,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Is"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Is-4004"><a href="#Is-4004"><span class="linenos">4004</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-4005"><a href="#Is-4005"><span class="linenos">4005</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Is-4031"><a href="#Is-4031"><span class="linenos">4031</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-4032"><a href="#Is-4032"><span class="linenos">4032</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -50756,6 +53090,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Is.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Is.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Is.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Is.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Is.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Is.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Is.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -50776,6 +53111,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Is.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Is.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Is.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Is.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Is.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Is.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Is.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -50797,6 +53133,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Is.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Is.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Is.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Is.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Binary">Binary</a></dt>
@@ -50819,8 +53156,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Kwarg"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Kwarg-4008"><a href="#Kwarg-4008"><span class="linenos">4008</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-4009"><a href="#Kwarg-4009"><span class="linenos">4009</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-4035"><a href="#Kwarg-4035"><span class="linenos">4035</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-4036"><a href="#Kwarg-4036"><span class="linenos">4036</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>
@@ -50865,6 +53202,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Kwarg.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Kwarg.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Kwarg.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Kwarg.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Kwarg.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Kwarg.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Kwarg.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -50885,6 +53223,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Kwarg.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Kwarg.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Kwarg.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Kwarg.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Kwarg.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Kwarg.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Kwarg.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -50906,6 +53245,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Kwarg.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Kwarg.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Kwarg.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Kwarg.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Binary">Binary</a></dt>
@@ -50928,8 +53268,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Like"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Like-4012"><a href="#Like-4012"><span class="linenos">4012</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-4013"><a href="#Like-4013"><span class="linenos">4013</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Like-4039"><a href="#Like-4039"><span class="linenos">4039</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-4040"><a href="#Like-4040"><span class="linenos">4040</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -50972,6 +53312,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Like.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Like.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Like.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Like.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Like.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Like.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Like.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -50992,6 +53333,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Like.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Like.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Like.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Like.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Like.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Like.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Like.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -51013,6 +53355,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Like.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Like.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Like.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Like.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Binary">Binary</a></dt>
@@ -51035,8 +53378,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#LikeAny"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="LikeAny-4016"><a href="#LikeAny-4016"><span class="linenos">4016</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-4017"><a href="#LikeAny-4017"><span class="linenos">4017</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="LikeAny-4043"><a href="#LikeAny-4043"><span class="linenos">4043</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-4044"><a href="#LikeAny-4044"><span class="linenos">4044</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -51079,6 +53422,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="LikeAny.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="LikeAny.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="LikeAny.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="LikeAny.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="LikeAny.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="LikeAny.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="LikeAny.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -51099,6 +53443,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="LikeAny.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="LikeAny.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="LikeAny.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="LikeAny.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="LikeAny.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="LikeAny.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="LikeAny.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -51120,6 +53465,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="LikeAny.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="LikeAny.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="LikeAny.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="LikeAny.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Binary">Binary</a></dt>
@@ -51142,8 +53488,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#LT"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="LT-4020"><a href="#LT-4020"><span class="linenos">4020</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-4021"><a href="#LT-4021"><span class="linenos">4021</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="LT-4047"><a href="#LT-4047"><span class="linenos">4047</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-4048"><a href="#LT-4048"><span class="linenos">4048</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -51186,6 +53532,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="LT.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="LT.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="LT.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="LT.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="LT.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="LT.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="LT.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -51206,6 +53553,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="LT.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="LT.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="LT.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="LT.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="LT.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="LT.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="LT.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -51227,6 +53575,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="LT.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="LT.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="LT.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="LT.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Binary">Binary</a></dt>
@@ -51249,8 +53598,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#LTE"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="LTE-4024"><a href="#LTE-4024"><span class="linenos">4024</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-4025"><a href="#LTE-4025"><span class="linenos">4025</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="LTE-4051"><a href="#LTE-4051"><span class="linenos">4051</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-4052"><a href="#LTE-4052"><span class="linenos">4052</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -51293,6 +53642,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="LTE.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="LTE.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="LTE.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="LTE.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="LTE.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="LTE.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="LTE.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -51313,6 +53663,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="LTE.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="LTE.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="LTE.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="LTE.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="LTE.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="LTE.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="LTE.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -51334,6 +53685,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="LTE.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="LTE.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="LTE.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="LTE.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Binary">Binary</a></dt>
@@ -51356,8 +53708,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Mod"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Mod-4028"><a href="#Mod-4028"><span class="linenos">4028</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-4029"><a href="#Mod-4029"><span class="linenos">4029</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Mod-4055"><a href="#Mod-4055"><span class="linenos">4055</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-4056"><a href="#Mod-4056"><span class="linenos">4056</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -51400,6 +53752,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Mod.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Mod.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Mod.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Mod.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Mod.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Mod.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Mod.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -51420,6 +53773,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Mod.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Mod.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Mod.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Mod.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Mod.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Mod.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Mod.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -51441,6 +53795,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Mod.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Mod.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Mod.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Mod.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Binary">Binary</a></dt>
@@ -51463,8 +53818,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Mul"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Mul-4032"><a href="#Mul-4032"><span class="linenos">4032</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-4033"><a href="#Mul-4033"><span class="linenos">4033</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Mul-4059"><a href="#Mul-4059"><span class="linenos">4059</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-4060"><a href="#Mul-4060"><span class="linenos">4060</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -51507,6 +53862,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Mul.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Mul.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Mul.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Mul.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Mul.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Mul.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Mul.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -51527,6 +53883,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Mul.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Mul.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Mul.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Mul.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Mul.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Mul.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Mul.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -51548,6 +53905,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Mul.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Mul.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Mul.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Mul.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Binary">Binary</a></dt>
@@ -51570,8 +53928,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#NEQ"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="NEQ-4036"><a href="#NEQ-4036"><span class="linenos">4036</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-4037"><a href="#NEQ-4037"><span class="linenos">4037</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="NEQ-4063"><a href="#NEQ-4063"><span class="linenos">4063</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-4064"><a href="#NEQ-4064"><span class="linenos">4064</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -51614,6 +53972,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="NEQ.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="NEQ.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="NEQ.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="NEQ.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="NEQ.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="NEQ.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="NEQ.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -51634,6 +53993,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="NEQ.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="NEQ.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="NEQ.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="NEQ.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="NEQ.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="NEQ.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="NEQ.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -51655,6 +54015,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="NEQ.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="NEQ.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="NEQ.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="NEQ.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Binary">Binary</a></dt>
@@ -51677,8 +54038,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Operator"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Operator-4041"><a href="#Operator-4041"><span class="linenos">4041</span></a><span class="k">class</span> <span class="nc">Operator</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="Operator-4042"><a href="#Operator-4042"><span class="linenos">4042</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;operator&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Operator-4068"><a href="#Operator-4068"><span class="linenos">4068</span></a><span class="k">class</span> <span class="nc">Operator</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="Operator-4069"><a href="#Operator-4069"><span class="linenos">4069</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;operator&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -51733,6 +54094,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Operator.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Operator.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Operator.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Operator.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Operator.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Operator.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Operator.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -51753,6 +54115,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Operator.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Operator.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Operator.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Operator.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Operator.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Operator.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Operator.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -51774,6 +54137,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Operator.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Operator.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Operator.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Operator.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Binary">Binary</a></dt>
@@ -51795,8 +54159,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#SimilarTo"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SimilarTo-4045"><a href="#SimilarTo-4045"><span class="linenos">4045</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-4046"><a href="#SimilarTo-4046"><span class="linenos">4046</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="SimilarTo-4072"><a href="#SimilarTo-4072"><span class="linenos">4072</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-4073"><a href="#SimilarTo-4073"><span class="linenos">4073</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -51839,6 +54203,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="SimilarTo.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="SimilarTo.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="SimilarTo.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="SimilarTo.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="SimilarTo.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="SimilarTo.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="SimilarTo.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -51859,6 +54224,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="SimilarTo.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="SimilarTo.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="SimilarTo.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="SimilarTo.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="SimilarTo.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="SimilarTo.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="SimilarTo.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -51880,6 +54246,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="SimilarTo.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="SimilarTo.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="SimilarTo.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="SimilarTo.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Binary">Binary</a></dt>
@@ -51902,8 +54269,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Slice"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Slice-4049"><a href="#Slice-4049"><span class="linenos">4049</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-4050"><a href="#Slice-4050"><span class="linenos">4050</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-4076"><a href="#Slice-4076"><span class="linenos">4076</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-4077"><a href="#Slice-4077"><span class="linenos">4077</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -51958,6 +54325,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Slice.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Slice.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Slice.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Slice.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Slice.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Slice.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Slice.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -51978,6 +54346,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Slice.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Slice.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Slice.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Slice.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Slice.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Slice.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Slice.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -51999,6 +54368,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Slice.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Slice.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Slice.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Slice.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Binary">Binary</a></dt>
@@ -52020,8 +54390,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Sub"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Sub-4053"><a href="#Sub-4053"><span class="linenos">4053</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-4054"><a href="#Sub-4054"><span class="linenos">4054</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Sub-4080"><a href="#Sub-4080"><span class="linenos">4080</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-4081"><a href="#Sub-4081"><span class="linenos">4081</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -52064,6 +54434,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Sub.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Sub.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Sub.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Sub.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Sub.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Sub.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Sub.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -52084,6 +54455,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Sub.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Sub.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Sub.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Sub.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Sub.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Sub.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Sub.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -52105,6 +54477,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Sub.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Sub.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Sub.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Sub.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Binary">Binary</a></dt>
@@ -52127,8 +54500,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#ArrayOverlaps"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayOverlaps-4057"><a href="#ArrayOverlaps-4057"><span class="linenos">4057</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-4058"><a href="#ArrayOverlaps-4058"><span class="linenos">4058</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayOverlaps-4084"><a href="#ArrayOverlaps-4084"><span class="linenos">4084</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-4085"><a href="#ArrayOverlaps-4085"><span class="linenos">4085</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -52171,6 +54544,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="ArrayOverlaps.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ArrayOverlaps.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="ArrayOverlaps.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="ArrayOverlaps.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="ArrayOverlaps.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="ArrayOverlaps.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ArrayOverlaps.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -52191,6 +54565,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="ArrayOverlaps.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ArrayOverlaps.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ArrayOverlaps.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="ArrayOverlaps.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="ArrayOverlaps.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ArrayOverlaps.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ArrayOverlaps.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -52212,6 +54587,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="ArrayOverlaps.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="ArrayOverlaps.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="ArrayOverlaps.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="ArrayOverlaps.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Binary">Binary</a></dt>
@@ -52234,8 +54610,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Unary"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Unary-4063"><a href="#Unary-4063"><span class="linenos">4063</span></a><span class="k">class</span> <span class="nc">Unary</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
-</span><span id="Unary-4064"><a href="#Unary-4064"><span class="linenos">4064</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Unary-4090"><a href="#Unary-4090"><span class="linenos">4090</span></a><span class="k">class</span> <span class="nc">Unary</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
+</span><span id="Unary-4091"><a href="#Unary-4091"><span class="linenos">4091</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -52279,6 +54655,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Unary.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Unary.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Unary.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Unary.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Unary.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Unary.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Unary.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -52299,6 +54676,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Unary.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Unary.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Unary.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Unary.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Unary.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Unary.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Unary.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -52320,6 +54698,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Unary.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Unary.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Unary.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Unary.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -52336,8 +54715,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#BitwiseNot"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseNot-4067"><a href="#BitwiseNot-4067"><span class="linenos">4067</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-4068"><a href="#BitwiseNot-4068"><span class="linenos">4068</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseNot-4094"><a href="#BitwiseNot-4094"><span class="linenos">4094</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-4095"><a href="#BitwiseNot-4095"><span class="linenos">4095</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -52381,6 +54760,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="BitwiseNot.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="BitwiseNot.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="BitwiseNot.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="BitwiseNot.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="BitwiseNot.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="BitwiseNot.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="BitwiseNot.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -52401,6 +54781,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="BitwiseNot.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="BitwiseNot.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="BitwiseNot.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="BitwiseNot.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="BitwiseNot.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="BitwiseNot.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="BitwiseNot.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -52422,6 +54803,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="BitwiseNot.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="BitwiseNot.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="BitwiseNot.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="BitwiseNot.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -52438,8 +54820,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Not"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Not-4071"><a href="#Not-4071"><span class="linenos">4071</span></a><span class="k">class</span> <span class="nc">Not</span><span class="p">(</span><span class="n">Unary</span><span class="p">):</span>
-</span><span id="Not-4072"><a href="#Not-4072"><span class="linenos">4072</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Not-4098"><a href="#Not-4098"><span class="linenos">4098</span></a><span class="k">class</span> <span class="nc">Not</span><span class="p">(</span><span class="n">Unary</span><span class="p">):</span>
+</span><span id="Not-4099"><a href="#Not-4099"><span class="linenos">4099</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -52483,6 +54865,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Not.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Not.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Not.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Not.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Not.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Not.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Not.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -52503,6 +54886,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Not.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Not.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Not.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Not.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Not.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Not.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Not.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -52524,6 +54908,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Not.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Not.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Not.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Not.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -52540,12 +54925,12 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Paren"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Paren-4075"><a href="#Paren-4075"><span class="linenos">4075</span></a><span class="k">class</span> <span class="nc">Paren</span><span class="p">(</span><span class="n">Unary</span><span class="p">):</span>
-</span><span id="Paren-4076"><a href="#Paren-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;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="Paren-4077"><a href="#Paren-4077"><span class="linenos">4077</span></a>
-</span><span id="Paren-4078"><a href="#Paren-4078"><span class="linenos">4078</span></a> <span class="nd">@property</span>
-</span><span id="Paren-4079"><a href="#Paren-4079"><span class="linenos">4079</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Paren-4080"><a href="#Paren-4080"><span class="linenos">4080</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Paren-4102"><a href="#Paren-4102"><span class="linenos">4102</span></a><span class="k">class</span> <span class="nc">Paren</span><span class="p">(</span><span class="n">Unary</span><span class="p">):</span>
+</span><span id="Paren-4103"><a href="#Paren-4103"><span class="linenos">4103</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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="Paren-4104"><a href="#Paren-4104"><span class="linenos">4104</span></a>
+</span><span id="Paren-4105"><a href="#Paren-4105"><span class="linenos">4105</span></a> <span class="nd">@property</span>
+</span><span id="Paren-4106"><a href="#Paren-4106"><span class="linenos">4106</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Paren-4107"><a href="#Paren-4107"><span class="linenos">4107</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span>
</span></pre></div>
@@ -52564,13 +54949,20 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<div id="Paren.output_name" class="classattr">
- <div class="attr variable">
+ <input id="Paren.output_name-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">output_name</span><span class="annotation">: str</span>
-
+ <label class="view-source-button" for="Paren.output_name-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Paren.output_name"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Paren.output_name-4105"><a href="#Paren.output_name-4105"><span class="linenos">4105</span></a> <span class="nd">@property</span>
+</span><span id="Paren.output_name-4106"><a href="#Paren.output_name-4106"><span class="linenos">4106</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Paren.output_name-4107"><a href="#Paren.output_name-4107"><span class="linenos">4107</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span>
+</span></pre></div>
+
+
<div class="docstring"><p>Name of the output column if this expression is a selection.</p>
<p>If the Expression has no output name, an empty string is returned.</p>
@@ -52629,6 +55021,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Paren.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Paren.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Paren.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Paren.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Paren.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Paren.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Paren.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -52649,6 +55042,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Paren.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Paren.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Paren.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Paren.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Paren.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Paren.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Paren.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -52670,6 +55064,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Paren.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Paren.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Paren.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Paren.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -52686,8 +55081,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Neg"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Neg-4083"><a href="#Neg-4083"><span class="linenos">4083</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-4084"><a href="#Neg-4084"><span class="linenos">4084</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Neg-4110"><a href="#Neg-4110"><span class="linenos">4110</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-4111"><a href="#Neg-4111"><span class="linenos">4111</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -52731,6 +55126,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Neg.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Neg.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Neg.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Neg.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Neg.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Neg.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Neg.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -52751,6 +55147,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Neg.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Neg.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Neg.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Neg.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Neg.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Neg.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Neg.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -52772,6 +55169,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Neg.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Neg.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Neg.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Neg.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -52788,12 +55186,12 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Alias"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Alias-4087"><a href="#Alias-4087"><span class="linenos">4087</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-4088"><a href="#Alias-4088"><span class="linenos">4088</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4089"><a href="#Alias-4089"><span class="linenos">4089</span></a>
-</span><span id="Alias-4090"><a href="#Alias-4090"><span class="linenos">4090</span></a> <span class="nd">@property</span>
-</span><span id="Alias-4091"><a href="#Alias-4091"><span class="linenos">4091</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Alias-4092"><a href="#Alias-4092"><span class="linenos">4092</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-4114"><a href="#Alias-4114"><span class="linenos">4114</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-4115"><a href="#Alias-4115"><span class="linenos">4115</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4116"><a href="#Alias-4116"><span class="linenos">4116</span></a>
+</span><span id="Alias-4117"><a href="#Alias-4117"><span class="linenos">4117</span></a> <span class="nd">@property</span>
+</span><span id="Alias-4118"><a href="#Alias-4118"><span class="linenos">4118</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Alias-4119"><a href="#Alias-4119"><span class="linenos">4119</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias</span>
</span></pre></div>
@@ -52812,13 +55210,20 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<div id="Alias.output_name" class="classattr">
- <div class="attr variable">
+ <input id="Alias.output_name-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">output_name</span><span class="annotation">: str</span>
-
+ <label class="view-source-button" for="Alias.output_name-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Alias.output_name"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Alias.output_name-4117"><a href="#Alias.output_name-4117"><span class="linenos">4117</span></a> <span class="nd">@property</span>
+</span><span id="Alias.output_name-4118"><a href="#Alias.output_name-4118"><span class="linenos">4118</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Alias.output_name-4119"><a href="#Alias.output_name-4119"><span class="linenos">4119</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias</span>
+</span></pre></div>
+
+
<div class="docstring"><p>Name of the output column if this expression is a selection.</p>
<p>If the Expression has no output name, an empty string is returned.</p>
@@ -52877,6 +55282,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Alias.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Alias.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Alias.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Alias.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Alias.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Alias.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Alias.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -52897,6 +55303,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Alias.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Alias.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Alias.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Alias.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Alias.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Alias.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Alias.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -52918,6 +55325,115 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Alias.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Alias.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Alias.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Alias.desc" class="function"><a href="#Expression.desc">desc</a></dd>
+
+ </div>
+ </dl>
+ </div>
+ </section>
+ <section id="PivotAlias">
+ <input id="PivotAlias-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">PivotAlias</span><wbr>(<span class="base"><a href="#Alias">Alias</a></span>):
+
+ <label class="view-source-button" for="PivotAlias-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#PivotAlias"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="PivotAlias-4124"><a href="#PivotAlias-4124"><span class="linenos">4124</span></a><span class="k">class</span> <span class="nc">PivotAlias</span><span class="p">(</span><span class="n">Alias</span><span class="p">):</span>
+</span><span id="PivotAlias-4125"><a href="#PivotAlias-4125"><span class="linenos">4125</span></a> <span class="k">pass</span>
+</span></pre></div>
+
+
+
+
+ <div id="PivotAlias.key" class="classattr">
+ <div class="attr variable">
+ <span class="name">key</span> =
+<span class="default_value">&#39;pivotalias&#39;</span>
+
+
+ </div>
+ <a class="headerlink" href="#PivotAlias.key"></a>
+
+
+
+ </div>
+ <div class="inherited">
+ <h5>Inherited Members</h5>
+ <dl>
+ <div><dt><a href="#Expression">Expression</a></dt>
+ <dd id="PivotAlias.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
+ <dd id="PivotAlias.args" class="variable"><a href="#Expression.args">args</a></dd>
+ <dd id="PivotAlias.parent" class="variable"><a href="#Expression.parent">parent</a></dd>
+ <dd id="PivotAlias.arg_key" class="variable"><a href="#Expression.arg_key">arg_key</a></dd>
+ <dd id="PivotAlias.comments" class="variable"><a href="#Expression.comments">comments</a></dd>
+ <dd id="PivotAlias.hashable_args" class="variable"><a href="#Expression.hashable_args">hashable_args</a></dd>
+ <dd id="PivotAlias.this" class="variable"><a href="#Expression.this">this</a></dd>
+ <dd id="PivotAlias.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
+ <dd id="PivotAlias.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
+ <dd id="PivotAlias.text" class="function"><a href="#Expression.text">text</a></dd>
+ <dd id="PivotAlias.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
+ <dd id="PivotAlias.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
+ <dd id="PivotAlias.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
+ <dd id="PivotAlias.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
+ <dd id="PivotAlias.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="PivotAlias.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
+ <dd id="PivotAlias.name" class="variable"><a href="#Expression.name">name</a></dd>
+ <dd id="PivotAlias.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
+ <dd id="PivotAlias.type" class="variable"><a href="#Expression.type">type</a></dd>
+ <dd id="PivotAlias.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="PivotAlias.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
+ <dd id="PivotAlias.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
+ <dd id="PivotAlias.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="PivotAlias.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
+ <dd id="PivotAlias.append" class="function"><a href="#Expression.append">append</a></dd>
+ <dd id="PivotAlias.set" class="function"><a href="#Expression.set">set</a></dd>
+ <dd id="PivotAlias.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
+ <dd id="PivotAlias.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
+ <dd id="PivotAlias.find" class="function"><a href="#Expression.find">find</a></dd>
+ <dd id="PivotAlias.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
+ <dd id="PivotAlias.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
+ <dd id="PivotAlias.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
+ <dd id="PivotAlias.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
+ <dd id="PivotAlias.root" class="function"><a href="#Expression.root">root</a></dd>
+ <dd id="PivotAlias.walk" class="function"><a href="#Expression.walk">walk</a></dd>
+ <dd id="PivotAlias.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
+ <dd id="PivotAlias.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
+ <dd id="PivotAlias.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
+ <dd id="PivotAlias.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
+ <dd id="PivotAlias.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
+ <dd id="PivotAlias.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="PivotAlias.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
+ <dd id="PivotAlias.sql" class="function"><a href="#Expression.sql">sql</a></dd>
+ <dd id="PivotAlias.transform" class="function"><a href="#Expression.transform">transform</a></dd>
+ <dd id="PivotAlias.replace" class="function"><a href="#Expression.replace">replace</a></dd>
+ <dd id="PivotAlias.pop" class="function"><a href="#Expression.pop">pop</a></dd>
+ <dd id="PivotAlias.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
+ <dd id="PivotAlias.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
+ <dd id="PivotAlias.dump" class="function"><a href="#Expression.dump">dump</a></dd>
+ <dd id="PivotAlias.load" class="function"><a href="#Expression.load">load</a></dd>
+ <dd id="PivotAlias.and_" class="function"><a href="#Expression.and_">and_</a></dd>
+ <dd id="PivotAlias.or_" class="function"><a href="#Expression.or_">or_</a></dd>
+ <dd id="PivotAlias.not_" class="function"><a href="#Expression.not_">not_</a></dd>
+ <dd id="PivotAlias.as_" class="function"><a href="#Expression.as_">as_</a></dd>
+ <dd id="PivotAlias.isin" class="function"><a href="#Expression.isin">isin</a></dd>
+ <dd id="PivotAlias.between" class="function"><a href="#Expression.between">between</a></dd>
+ <dd id="PivotAlias.is_" class="function"><a href="#Expression.is_">is_</a></dd>
+ <dd id="PivotAlias.like" class="function"><a href="#Expression.like">like</a></dd>
+ <dd id="PivotAlias.ilike" class="function"><a href="#Expression.ilike">ilike</a></dd>
+ <dd id="PivotAlias.eq" class="function"><a href="#Expression.eq">eq</a></dd>
+ <dd id="PivotAlias.neq" class="function"><a href="#Expression.neq">neq</a></dd>
+ <dd id="PivotAlias.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
+ <dd id="PivotAlias.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="PivotAlias.desc" class="function"><a href="#Expression.desc">desc</a></dd>
+
+ </div>
+ <div><dt><a href="#Alias">Alias</a></dt>
+ <dd id="PivotAlias.arg_types" class="variable"><a href="#Alias.arg_types">arg_types</a></dd>
+ <dd id="PivotAlias.output_name" class="variable"><a href="#Alias.output_name">output_name</a></dd>
</div>
</dl>
@@ -52934,12 +55450,12 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Aliases"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Aliases-4095"><a href="#Aliases-4095"><span class="linenos">4095</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-4096"><a href="#Aliases-4096"><span class="linenos">4096</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4097"><a href="#Aliases-4097"><span class="linenos">4097</span></a>
-</span><span id="Aliases-4098"><a href="#Aliases-4098"><span class="linenos">4098</span></a> <span class="nd">@property</span>
-</span><span id="Aliases-4099"><a href="#Aliases-4099"><span class="linenos">4099</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-4100"><a href="#Aliases-4100"><span class="linenos">4100</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-4128"><a href="#Aliases-4128"><span class="linenos">4128</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-4129"><a href="#Aliases-4129"><span class="linenos">4129</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="Aliases-4130"><a href="#Aliases-4130"><span class="linenos">4130</span></a>
+</span><span id="Aliases-4131"><a href="#Aliases-4131"><span class="linenos">4131</span></a> <span class="nd">@property</span>
+</span><span id="Aliases-4132"><a href="#Aliases-4132"><span class="linenos">4132</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-4133"><a href="#Aliases-4133"><span class="linenos">4133</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span>
</span></pre></div>
@@ -52958,13 +55474,20 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<div id="Aliases.aliases" class="classattr">
- <div class="attr variable">
+ <input id="Aliases.aliases-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">aliases</span>
-
+ <label class="view-source-button" for="Aliases.aliases-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Aliases.aliases"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Aliases.aliases-4131"><a href="#Aliases.aliases-4131"><span class="linenos">4131</span></a> <span class="nd">@property</span>
+</span><span id="Aliases.aliases-4132"><a href="#Aliases.aliases-4132"><span class="linenos">4132</span></a> <span class="k">def</span> <span class="nf">aliases</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="Aliases.aliases-4133"><a href="#Aliases.aliases-4133"><span class="linenos">4133</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span>
+</span></pre></div>
+
+
</div>
@@ -53005,6 +55528,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Aliases.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Aliases.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Aliases.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Aliases.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Aliases.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Aliases.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Aliases.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -53025,6 +55549,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Aliases.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Aliases.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Aliases.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Aliases.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Aliases.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Aliases.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Aliases.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -53046,6 +55571,123 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Aliases.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Aliases.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Aliases.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Aliases.desc" class="function"><a href="#Expression.desc">desc</a></dd>
+
+ </div>
+ </dl>
+ </div>
+ </section>
+ <section id="AtIndex">
+ <input id="AtIndex-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">AtIndex</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
+
+ <label class="view-source-button" for="AtIndex-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#AtIndex"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="AtIndex-4137"><a href="#AtIndex-4137"><span class="linenos">4137</span></a><span class="k">class</span> <span class="nc">AtIndex</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="AtIndex-4138"><a href="#AtIndex-4138"><span class="linenos">4138</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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>
+
+
+
+
+ <div id="AtIndex.arg_types" class="classattr">
+ <div class="attr variable">
+ <span class="name">arg_types</span> =
+<span class="default_value">{&#39;this&#39;: True, &#39;expression&#39;: True}</span>
+
+
+ </div>
+ <a class="headerlink" href="#AtIndex.arg_types"></a>
+
+
+
+ </div>
+ <div id="AtIndex.key" class="classattr">
+ <div class="attr variable">
+ <span class="name">key</span> =
+<span class="default_value">&#39;atindex&#39;</span>
+
+
+ </div>
+ <a class="headerlink" href="#AtIndex.key"></a>
+
+
+
+ </div>
+ <div class="inherited">
+ <h5>Inherited Members</h5>
+ <dl>
+ <div><dt><a href="#Expression">Expression</a></dt>
+ <dd id="AtIndex.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
+ <dd id="AtIndex.args" class="variable"><a href="#Expression.args">args</a></dd>
+ <dd id="AtIndex.parent" class="variable"><a href="#Expression.parent">parent</a></dd>
+ <dd id="AtIndex.arg_key" class="variable"><a href="#Expression.arg_key">arg_key</a></dd>
+ <dd id="AtIndex.comments" class="variable"><a href="#Expression.comments">comments</a></dd>
+ <dd id="AtIndex.hashable_args" class="variable"><a href="#Expression.hashable_args">hashable_args</a></dd>
+ <dd id="AtIndex.this" class="variable"><a href="#Expression.this">this</a></dd>
+ <dd id="AtIndex.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
+ <dd id="AtIndex.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
+ <dd id="AtIndex.text" class="function"><a href="#Expression.text">text</a></dd>
+ <dd id="AtIndex.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
+ <dd id="AtIndex.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
+ <dd id="AtIndex.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
+ <dd id="AtIndex.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
+ <dd id="AtIndex.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="AtIndex.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
+ <dd id="AtIndex.name" class="variable"><a href="#Expression.name">name</a></dd>
+ <dd id="AtIndex.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
+ <dd id="AtIndex.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
+ <dd id="AtIndex.type" class="variable"><a href="#Expression.type">type</a></dd>
+ <dd id="AtIndex.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="AtIndex.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
+ <dd id="AtIndex.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
+ <dd id="AtIndex.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="AtIndex.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
+ <dd id="AtIndex.append" class="function"><a href="#Expression.append">append</a></dd>
+ <dd id="AtIndex.set" class="function"><a href="#Expression.set">set</a></dd>
+ <dd id="AtIndex.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
+ <dd id="AtIndex.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
+ <dd id="AtIndex.find" class="function"><a href="#Expression.find">find</a></dd>
+ <dd id="AtIndex.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
+ <dd id="AtIndex.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
+ <dd id="AtIndex.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
+ <dd id="AtIndex.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
+ <dd id="AtIndex.root" class="function"><a href="#Expression.root">root</a></dd>
+ <dd id="AtIndex.walk" class="function"><a href="#Expression.walk">walk</a></dd>
+ <dd id="AtIndex.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
+ <dd id="AtIndex.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
+ <dd id="AtIndex.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
+ <dd id="AtIndex.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
+ <dd id="AtIndex.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
+ <dd id="AtIndex.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="AtIndex.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
+ <dd id="AtIndex.sql" class="function"><a href="#Expression.sql">sql</a></dd>
+ <dd id="AtIndex.transform" class="function"><a href="#Expression.transform">transform</a></dd>
+ <dd id="AtIndex.replace" class="function"><a href="#Expression.replace">replace</a></dd>
+ <dd id="AtIndex.pop" class="function"><a href="#Expression.pop">pop</a></dd>
+ <dd id="AtIndex.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
+ <dd id="AtIndex.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
+ <dd id="AtIndex.dump" class="function"><a href="#Expression.dump">dump</a></dd>
+ <dd id="AtIndex.load" class="function"><a href="#Expression.load">load</a></dd>
+ <dd id="AtIndex.and_" class="function"><a href="#Expression.and_">and_</a></dd>
+ <dd id="AtIndex.or_" class="function"><a href="#Expression.or_">or_</a></dd>
+ <dd id="AtIndex.not_" class="function"><a href="#Expression.not_">not_</a></dd>
+ <dd id="AtIndex.as_" class="function"><a href="#Expression.as_">as_</a></dd>
+ <dd id="AtIndex.isin" class="function"><a href="#Expression.isin">isin</a></dd>
+ <dd id="AtIndex.between" class="function"><a href="#Expression.between">between</a></dd>
+ <dd id="AtIndex.is_" class="function"><a href="#Expression.is_">is_</a></dd>
+ <dd id="AtIndex.like" class="function"><a href="#Expression.like">like</a></dd>
+ <dd id="AtIndex.ilike" class="function"><a href="#Expression.ilike">ilike</a></dd>
+ <dd id="AtIndex.eq" class="function"><a href="#Expression.eq">eq</a></dd>
+ <dd id="AtIndex.neq" class="function"><a href="#Expression.neq">neq</a></dd>
+ <dd id="AtIndex.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
+ <dd id="AtIndex.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="AtIndex.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -53062,8 +55704,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#AtTimeZone"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="AtTimeZone-4103"><a href="#AtTimeZone-4103"><span class="linenos">4103</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-4104"><a href="#AtTimeZone-4104"><span class="linenos">4104</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4141"><a href="#AtTimeZone-4141"><span class="linenos">4141</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-4142"><a href="#AtTimeZone-4142"><span class="linenos">4142</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -53118,6 +55760,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="AtTimeZone.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="AtTimeZone.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="AtTimeZone.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="AtTimeZone.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="AtTimeZone.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="AtTimeZone.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="AtTimeZone.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -53138,6 +55781,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="AtTimeZone.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="AtTimeZone.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="AtTimeZone.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="AtTimeZone.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="AtTimeZone.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="AtTimeZone.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="AtTimeZone.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -53159,6 +55803,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="AtTimeZone.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="AtTimeZone.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="AtTimeZone.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="AtTimeZone.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -53175,8 +55820,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Between"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Between-4107"><a href="#Between-4107"><span class="linenos">4107</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-4108"><a href="#Between-4108"><span class="linenos">4108</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4145"><a href="#Between-4145"><span class="linenos">4145</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-4146"><a href="#Between-4146"><span class="linenos">4146</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -53231,6 +55876,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Between.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Between.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Between.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Between.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Between.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Between.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Between.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -53251,6 +55897,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Between.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Between.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Between.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Between.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Between.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Between.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Between.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -53272,6 +55919,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Between.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Between.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Between.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Between.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -53288,16 +55936,16 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Bracket"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Bracket-4111"><a href="#Bracket-4111"><span class="linenos">4111</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-4112"><a href="#Bracket-4112"><span class="linenos">4112</span></a> <span class="c1"># https://cloud.google.com/bigquery/docs/reference/standard-sql/operators#array_subscript_operator</span>
-</span><span id="Bracket-4113"><a href="#Bracket-4113"><span class="linenos">4113</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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;offset&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;safe&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="Bracket-4114"><a href="#Bracket-4114"><span class="linenos">4114</span></a>
-</span><span id="Bracket-4115"><a href="#Bracket-4115"><span class="linenos">4115</span></a> <span class="nd">@property</span>
-</span><span id="Bracket-4116"><a href="#Bracket-4116"><span class="linenos">4116</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Bracket-4117"><a href="#Bracket-4117"><span class="linenos">4117</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
-</span><span id="Bracket-4118"><a href="#Bracket-4118"><span class="linenos">4118</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">output_name</span>
-</span><span id="Bracket-4119"><a href="#Bracket-4119"><span class="linenos">4119</span></a>
-</span><span id="Bracket-4120"><a href="#Bracket-4120"><span class="linenos">4120</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">output_name</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Bracket-4149"><a href="#Bracket-4149"><span class="linenos">4149</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-4150"><a href="#Bracket-4150"><span class="linenos">4150</span></a> <span class="c1"># https://cloud.google.com/bigquery/docs/reference/standard-sql/operators#array_subscript_operator</span>
+</span><span id="Bracket-4151"><a href="#Bracket-4151"><span class="linenos">4151</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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;offset&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;safe&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="Bracket-4152"><a href="#Bracket-4152"><span class="linenos">4152</span></a>
+</span><span id="Bracket-4153"><a href="#Bracket-4153"><span class="linenos">4153</span></a> <span class="nd">@property</span>
+</span><span id="Bracket-4154"><a href="#Bracket-4154"><span class="linenos">4154</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Bracket-4155"><a href="#Bracket-4155"><span class="linenos">4155</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
+</span><span id="Bracket-4156"><a href="#Bracket-4156"><span class="linenos">4156</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">output_name</span>
+</span><span id="Bracket-4157"><a href="#Bracket-4157"><span class="linenos">4157</span></a>
+</span><span id="Bracket-4158"><a href="#Bracket-4158"><span class="linenos">4158</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">output_name</span>
</span></pre></div>
@@ -53316,13 +55964,23 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<div id="Bracket.output_name" class="classattr">
- <div class="attr variable">
+ <input id="Bracket.output_name-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">output_name</span><span class="annotation">: str</span>
-
+ <label class="view-source-button" for="Bracket.output_name-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Bracket.output_name"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Bracket.output_name-4153"><a href="#Bracket.output_name-4153"><span class="linenos">4153</span></a> <span class="nd">@property</span>
+</span><span id="Bracket.output_name-4154"><a href="#Bracket.output_name-4154"><span class="linenos">4154</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Bracket.output_name-4155"><a href="#Bracket.output_name-4155"><span class="linenos">4155</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
+</span><span id="Bracket.output_name-4156"><a href="#Bracket.output_name-4156"><span class="linenos">4156</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">output_name</span>
+</span><span id="Bracket.output_name-4157"><a href="#Bracket.output_name-4157"><span class="linenos">4157</span></a>
+</span><span id="Bracket.output_name-4158"><a href="#Bracket.output_name-4158"><span class="linenos">4158</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">output_name</span>
+</span></pre></div>
+
+
<div class="docstring"><p>Name of the output column if this expression is a selection.</p>
<p>If the Expression has no output name, an empty string is returned.</p>
@@ -53381,6 +56039,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Bracket.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Bracket.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Bracket.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Bracket.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Bracket.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Bracket.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Bracket.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -53401,6 +56060,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Bracket.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Bracket.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Bracket.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Bracket.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Bracket.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Bracket.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Bracket.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -53422,6 +56082,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Bracket.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Bracket.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Bracket.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Bracket.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -53438,8 +56099,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Distinct"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Distinct-4123"><a href="#Distinct-4123"><span class="linenos">4123</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-4124"><a href="#Distinct-4124"><span class="linenos">4124</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-4161"><a href="#Distinct-4161"><span class="linenos">4161</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-4162"><a href="#Distinct-4162"><span class="linenos">4162</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>
@@ -53494,6 +56155,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Distinct.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Distinct.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Distinct.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Distinct.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Distinct.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Distinct.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Distinct.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -53514,6 +56176,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Distinct.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Distinct.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Distinct.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Distinct.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Distinct.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Distinct.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Distinct.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -53535,6 +56198,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Distinct.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Distinct.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Distinct.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Distinct.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -53551,15 +56215,15 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#In"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="In-4127"><a href="#In-4127"><span class="linenos">4127</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-4128"><a href="#In-4128"><span class="linenos">4128</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="In-4129"><a href="#In-4129"><span class="linenos">4129</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-4130"><a href="#In-4130"><span class="linenos">4130</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-4131"><a href="#In-4131"><span class="linenos">4131</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-4132"><a href="#In-4132"><span class="linenos">4132</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-4133"><a href="#In-4133"><span class="linenos">4133</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-4134"><a href="#In-4134"><span class="linenos">4134</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-4135"><a href="#In-4135"><span class="linenos">4135</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="In-4165"><a href="#In-4165"><span class="linenos">4165</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-4166"><a href="#In-4166"><span class="linenos">4166</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="In-4167"><a href="#In-4167"><span class="linenos">4167</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-4168"><a href="#In-4168"><span class="linenos">4168</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-4169"><a href="#In-4169"><span class="linenos">4169</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-4170"><a href="#In-4170"><span class="linenos">4170</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-4171"><a href="#In-4171"><span class="linenos">4171</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-4172"><a href="#In-4172"><span class="linenos">4172</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-4173"><a href="#In-4173"><span class="linenos">4173</span></a> <span class="p">}</span>
</span></pre></div>
@@ -53615,6 +56279,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="In.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="In.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="In.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="In.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="In.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="In.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="In.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -53635,6 +56300,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="In.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="In.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="In.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="In.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="In.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="In.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="In.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -53656,6 +56322,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="In.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="In.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="In.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="In.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -53672,8 +56339,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#ForIn"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ForIn-4139"><a href="#ForIn-4139"><span class="linenos">4139</span></a><span class="k">class</span> <span class="nc">ForIn</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="ForIn-4140"><a href="#ForIn-4140"><span class="linenos">4140</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ForIn-4177"><a href="#ForIn-4177"><span class="linenos">4177</span></a><span class="k">class</span> <span class="nc">ForIn</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="ForIn-4178"><a href="#ForIn-4178"><span class="linenos">4178</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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>
@@ -53728,6 +56395,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="ForIn.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ForIn.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="ForIn.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="ForIn.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="ForIn.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="ForIn.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ForIn.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -53748,6 +56416,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="ForIn.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ForIn.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ForIn.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="ForIn.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="ForIn.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ForIn.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ForIn.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -53769,6 +56438,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="ForIn.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="ForIn.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="ForIn.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="ForIn.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -53785,38 +56455,40 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#TimeUnit"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeUnit-4143"><a href="#TimeUnit-4143"><span class="linenos">4143</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-4144"><a href="#TimeUnit-4144"><span class="linenos">4144</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-4145"><a href="#TimeUnit-4145"><span class="linenos">4145</span></a>
-</span><span id="TimeUnit-4146"><a href="#TimeUnit-4146"><span class="linenos">4146</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-4147"><a href="#TimeUnit-4147"><span class="linenos">4147</span></a>
-</span><span id="TimeUnit-4148"><a href="#TimeUnit-4148"><span class="linenos">4148</span></a> <span class="n">UNABBREVIATED_UNIT_NAME</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="TimeUnit-4149"><a href="#TimeUnit-4149"><span class="linenos">4149</span></a> <span class="s2">&quot;d&quot;</span><span class="p">:</span> <span class="s2">&quot;day&quot;</span><span class="p">,</span>
-</span><span id="TimeUnit-4150"><a href="#TimeUnit-4150"><span class="linenos">4150</span></a> <span class="s2">&quot;h&quot;</span><span class="p">:</span> <span class="s2">&quot;hour&quot;</span><span class="p">,</span>
-</span><span id="TimeUnit-4151"><a href="#TimeUnit-4151"><span class="linenos">4151</span></a> <span class="s2">&quot;m&quot;</span><span class="p">:</span> <span class="s2">&quot;minute&quot;</span><span class="p">,</span>
-</span><span id="TimeUnit-4152"><a href="#TimeUnit-4152"><span class="linenos">4152</span></a> <span class="s2">&quot;ms&quot;</span><span class="p">:</span> <span class="s2">&quot;millisecond&quot;</span><span class="p">,</span>
-</span><span id="TimeUnit-4153"><a href="#TimeUnit-4153"><span class="linenos">4153</span></a> <span class="s2">&quot;ns&quot;</span><span class="p">:</span> <span class="s2">&quot;nanosecond&quot;</span><span class="p">,</span>
-</span><span id="TimeUnit-4154"><a href="#TimeUnit-4154"><span class="linenos">4154</span></a> <span class="s2">&quot;q&quot;</span><span class="p">:</span> <span class="s2">&quot;quarter&quot;</span><span class="p">,</span>
-</span><span id="TimeUnit-4155"><a href="#TimeUnit-4155"><span class="linenos">4155</span></a> <span class="s2">&quot;s&quot;</span><span class="p">:</span> <span class="s2">&quot;second&quot;</span><span class="p">,</span>
-</span><span id="TimeUnit-4156"><a href="#TimeUnit-4156"><span class="linenos">4156</span></a> <span class="s2">&quot;us&quot;</span><span class="p">:</span> <span class="s2">&quot;microsecond&quot;</span><span class="p">,</span>
-</span><span id="TimeUnit-4157"><a href="#TimeUnit-4157"><span class="linenos">4157</span></a> <span class="s2">&quot;w&quot;</span><span class="p">:</span> <span class="s2">&quot;week&quot;</span><span class="p">,</span>
-</span><span id="TimeUnit-4158"><a href="#TimeUnit-4158"><span class="linenos">4158</span></a> <span class="s2">&quot;y&quot;</span><span class="p">:</span> <span class="s2">&quot;year&quot;</span><span class="p">,</span>
-</span><span id="TimeUnit-4159"><a href="#TimeUnit-4159"><span class="linenos">4159</span></a> <span class="p">}</span>
-</span><span id="TimeUnit-4160"><a href="#TimeUnit-4160"><span class="linenos">4160</span></a>
-</span><span id="TimeUnit-4161"><a href="#TimeUnit-4161"><span class="linenos">4161</span></a> <span class="n">VAR_LIKE</span> <span class="o">=</span> <span class="p">(</span><span class="n">Column</span><span class="p">,</span> <span class="n">Literal</span><span class="p">,</span> <span class="n">Var</span><span class="p">)</span>
-</span><span id="TimeUnit-4162"><a href="#TimeUnit-4162"><span class="linenos">4162</span></a>
-</span><span id="TimeUnit-4163"><a href="#TimeUnit-4163"><span class="linenos">4163</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-4164"><a href="#TimeUnit-4164"><span class="linenos">4164</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-4165"><a href="#TimeUnit-4165"><span class="linenos">4165</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">unit</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">VAR_LIKE</span><span class="p">):</span>
-</span><span id="TimeUnit-4166"><a href="#TimeUnit-4166"><span class="linenos">4166</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="bp">self</span><span class="o">.</span><span class="n">UNABBREVIATED_UNIT_NAME</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> <span class="ow">or</span> <span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
-</span><span id="TimeUnit-4167"><a href="#TimeUnit-4167"><span class="linenos">4167</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-4168"><a href="#TimeUnit-4168"><span class="linenos">4168</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-4169"><a href="#TimeUnit-4169"><span class="linenos">4169</span></a>
-</span><span id="TimeUnit-4170"><a href="#TimeUnit-4170"><span class="linenos">4170</span></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="o">**</span><span class="n">args</span><span class="p">)</span>
-</span><span id="TimeUnit-4171"><a href="#TimeUnit-4171"><span class="linenos">4171</span></a>
-</span><span id="TimeUnit-4172"><a href="#TimeUnit-4172"><span class="linenos">4172</span></a> <span class="nd">@property</span>
-</span><span id="TimeUnit-4173"><a href="#TimeUnit-4173"><span class="linenos">4173</span></a> <span class="k">def</span> <span class="nf">unit</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Var</span><span class="p">]:</span>
-</span><span id="TimeUnit-4174"><a href="#TimeUnit-4174"><span class="linenos">4174</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;unit&quot;</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TimeUnit-4181"><a href="#TimeUnit-4181"><span class="linenos">4181</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-4182"><a href="#TimeUnit-4182"><span class="linenos">4182</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-4183"><a href="#TimeUnit-4183"><span class="linenos">4183</span></a>
+</span><span id="TimeUnit-4184"><a href="#TimeUnit-4184"><span class="linenos">4184</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-4185"><a href="#TimeUnit-4185"><span class="linenos">4185</span></a>
+</span><span id="TimeUnit-4186"><a href="#TimeUnit-4186"><span class="linenos">4186</span></a> <span class="n">UNABBREVIATED_UNIT_NAME</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="TimeUnit-4187"><a href="#TimeUnit-4187"><span class="linenos">4187</span></a> <span class="s2">&quot;D&quot;</span><span class="p">:</span> <span class="s2">&quot;DAY&quot;</span><span class="p">,</span>
+</span><span id="TimeUnit-4188"><a href="#TimeUnit-4188"><span class="linenos">4188</span></a> <span class="s2">&quot;H&quot;</span><span class="p">:</span> <span class="s2">&quot;HOUR&quot;</span><span class="p">,</span>
+</span><span id="TimeUnit-4189"><a href="#TimeUnit-4189"><span class="linenos">4189</span></a> <span class="s2">&quot;M&quot;</span><span class="p">:</span> <span class="s2">&quot;MINUTE&quot;</span><span class="p">,</span>
+</span><span id="TimeUnit-4190"><a href="#TimeUnit-4190"><span class="linenos">4190</span></a> <span class="s2">&quot;MS&quot;</span><span class="p">:</span> <span class="s2">&quot;MILLISECOND&quot;</span><span class="p">,</span>
+</span><span id="TimeUnit-4191"><a href="#TimeUnit-4191"><span class="linenos">4191</span></a> <span class="s2">&quot;NS&quot;</span><span class="p">:</span> <span class="s2">&quot;NANOSECOND&quot;</span><span class="p">,</span>
+</span><span id="TimeUnit-4192"><a href="#TimeUnit-4192"><span class="linenos">4192</span></a> <span class="s2">&quot;Q&quot;</span><span class="p">:</span> <span class="s2">&quot;QUARTER&quot;</span><span class="p">,</span>
+</span><span id="TimeUnit-4193"><a href="#TimeUnit-4193"><span class="linenos">4193</span></a> <span class="s2">&quot;S&quot;</span><span class="p">:</span> <span class="s2">&quot;SECOND&quot;</span><span class="p">,</span>
+</span><span id="TimeUnit-4194"><a href="#TimeUnit-4194"><span class="linenos">4194</span></a> <span class="s2">&quot;US&quot;</span><span class="p">:</span> <span class="s2">&quot;MICROSECOND&quot;</span><span class="p">,</span>
+</span><span id="TimeUnit-4195"><a href="#TimeUnit-4195"><span class="linenos">4195</span></a> <span class="s2">&quot;W&quot;</span><span class="p">:</span> <span class="s2">&quot;WEEK&quot;</span><span class="p">,</span>
+</span><span id="TimeUnit-4196"><a href="#TimeUnit-4196"><span class="linenos">4196</span></a> <span class="s2">&quot;Y&quot;</span><span class="p">:</span> <span class="s2">&quot;YEAR&quot;</span><span class="p">,</span>
+</span><span id="TimeUnit-4197"><a href="#TimeUnit-4197"><span class="linenos">4197</span></a> <span class="p">}</span>
+</span><span id="TimeUnit-4198"><a href="#TimeUnit-4198"><span class="linenos">4198</span></a>
+</span><span id="TimeUnit-4199"><a href="#TimeUnit-4199"><span class="linenos">4199</span></a> <span class="n">VAR_LIKE</span> <span class="o">=</span> <span class="p">(</span><span class="n">Column</span><span class="p">,</span> <span class="n">Literal</span><span class="p">,</span> <span class="n">Var</span><span class="p">)</span>
+</span><span id="TimeUnit-4200"><a href="#TimeUnit-4200"><span class="linenos">4200</span></a>
+</span><span id="TimeUnit-4201"><a href="#TimeUnit-4201"><span class="linenos">4201</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-4202"><a href="#TimeUnit-4202"><span class="linenos">4202</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-4203"><a href="#TimeUnit-4203"><span class="linenos">4203</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">unit</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">VAR_LIKE</span><span class="p">):</span>
+</span><span id="TimeUnit-4204"><a href="#TimeUnit-4204"><span class="linenos">4204</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">&quot;unit&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">Var</span><span class="p">(</span>
+</span><span id="TimeUnit-4205"><a href="#TimeUnit-4205"><span class="linenos">4205</span></a> <span class="n">this</span><span class="o">=</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">UNABBREVIATED_UNIT_NAME</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> <span class="ow">or</span> <span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
+</span><span id="TimeUnit-4206"><a href="#TimeUnit-4206"><span class="linenos">4206</span></a> <span class="p">)</span>
+</span><span id="TimeUnit-4207"><a href="#TimeUnit-4207"><span class="linenos">4207</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-4208"><a href="#TimeUnit-4208"><span class="linenos">4208</span></a> <span class="n">unit</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;this&quot;</span><span class="p">,</span> <span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">unit</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()))</span>
+</span><span id="TimeUnit-4209"><a href="#TimeUnit-4209"><span class="linenos">4209</span></a>
+</span><span id="TimeUnit-4210"><a href="#TimeUnit-4210"><span class="linenos">4210</span></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="o">**</span><span class="n">args</span><span class="p">)</span>
+</span><span id="TimeUnit-4211"><a href="#TimeUnit-4211"><span class="linenos">4211</span></a>
+</span><span id="TimeUnit-4212"><a href="#TimeUnit-4212"><span class="linenos">4212</span></a> <span class="nd">@property</span>
+</span><span id="TimeUnit-4213"><a href="#TimeUnit-4213"><span class="linenos">4213</span></a> <span class="k">def</span> <span class="nf">unit</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Var</span><span class="p">]:</span>
+</span><span id="TimeUnit-4214"><a href="#TimeUnit-4214"><span class="linenos">4214</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;unit&quot;</span><span class="p">)</span>
</span></pre></div>
@@ -53834,14 +56506,16 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#TimeUnit.__init__"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeUnit.__init__-4163"><a href="#TimeUnit.__init__-4163"><span class="linenos">4163</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__-4164"><a href="#TimeUnit.__init__-4164"><span class="linenos">4164</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__-4165"><a href="#TimeUnit.__init__-4165"><span class="linenos">4165</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">unit</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">VAR_LIKE</span><span class="p">):</span>
-</span><span id="TimeUnit.__init__-4166"><a href="#TimeUnit.__init__-4166"><span class="linenos">4166</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="bp">self</span><span class="o">.</span><span class="n">UNABBREVIATED_UNIT_NAME</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> <span class="ow">or</span> <span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
-</span><span id="TimeUnit.__init__-4167"><a href="#TimeUnit.__init__-4167"><span class="linenos">4167</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__-4168"><a href="#TimeUnit.__init__-4168"><span class="linenos">4168</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__-4169"><a href="#TimeUnit.__init__-4169"><span class="linenos">4169</span></a>
-</span><span id="TimeUnit.__init__-4170"><a href="#TimeUnit.__init__-4170"><span class="linenos">4170</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__-4201"><a href="#TimeUnit.__init__-4201"><span class="linenos">4201</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__-4202"><a href="#TimeUnit.__init__-4202"><span class="linenos">4202</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__-4203"><a href="#TimeUnit.__init__-4203"><span class="linenos">4203</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">unit</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">VAR_LIKE</span><span class="p">):</span>
+</span><span id="TimeUnit.__init__-4204"><a href="#TimeUnit.__init__-4204"><span class="linenos">4204</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">&quot;unit&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">Var</span><span class="p">(</span>
+</span><span id="TimeUnit.__init__-4205"><a href="#TimeUnit.__init__-4205"><span class="linenos">4205</span></a> <span class="n">this</span><span class="o">=</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">UNABBREVIATED_UNIT_NAME</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> <span class="ow">or</span> <span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
+</span><span id="TimeUnit.__init__-4206"><a href="#TimeUnit.__init__-4206"><span class="linenos">4206</span></a> <span class="p">)</span>
+</span><span id="TimeUnit.__init__-4207"><a href="#TimeUnit.__init__-4207"><span class="linenos">4207</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__-4208"><a href="#TimeUnit.__init__-4208"><span class="linenos">4208</span></a> <span class="n">unit</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;this&quot;</span><span class="p">,</span> <span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">unit</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()))</span>
+</span><span id="TimeUnit.__init__-4209"><a href="#TimeUnit.__init__-4209"><span class="linenos">4209</span></a>
+</span><span id="TimeUnit.__init__-4210"><a href="#TimeUnit.__init__-4210"><span class="linenos">4210</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>
@@ -53864,7 +56538,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<div class="attr variable">
<span class="name">UNABBREVIATED_UNIT_NAME</span> =
<input id="TimeUnit.UNABBREVIATED_UNIT_NAME-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
- <label class="view-value-button pdoc-button" for="TimeUnit.UNABBREVIATED_UNIT_NAME-view-value"></label><span class="default_value">{&#39;d&#39;: &#39;day&#39;, &#39;h&#39;: &#39;hour&#39;, &#39;m&#39;: &#39;minute&#39;, &#39;ms&#39;: &#39;millisecond&#39;, &#39;ns&#39;: &#39;nanosecond&#39;, &#39;q&#39;: &#39;quarter&#39;, &#39;s&#39;: &#39;second&#39;, &#39;us&#39;: &#39;microsecond&#39;, &#39;w&#39;: &#39;week&#39;, &#39;y&#39;: &#39;year&#39;}</span>
+ <label class="view-value-button pdoc-button" for="TimeUnit.UNABBREVIATED_UNIT_NAME-view-value"></label><span class="default_value">{&#39;D&#39;: &#39;DAY&#39;, &#39;H&#39;: &#39;HOUR&#39;, &#39;M&#39;: &#39;MINUTE&#39;, &#39;MS&#39;: &#39;MILLISECOND&#39;, &#39;NS&#39;: &#39;NANOSECOND&#39;, &#39;Q&#39;: &#39;QUARTER&#39;, &#39;S&#39;: &#39;SECOND&#39;, &#39;US&#39;: &#39;MICROSECOND&#39;, &#39;W&#39;: &#39;WEEK&#39;, &#39;Y&#39;: &#39;YEAR&#39;}</span>
</div>
@@ -53887,13 +56561,20 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<div id="TimeUnit.unit" class="classattr">
- <div class="attr variable">
+ <input id="TimeUnit.unit-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">unit</span><span class="annotation">: Optional[<a href="#Var">Var</a>]</span>
-
+ <label class="view-source-button" for="TimeUnit.unit-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#TimeUnit.unit"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TimeUnit.unit-4212"><a href="#TimeUnit.unit-4212"><span class="linenos">4212</span></a> <span class="nd">@property</span>
+</span><span id="TimeUnit.unit-4213"><a href="#TimeUnit.unit-4213"><span class="linenos">4213</span></a> <span class="k">def</span> <span class="nf">unit</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Var</span><span class="p">]:</span>
+</span><span id="TimeUnit.unit-4214"><a href="#TimeUnit.unit-4214"><span class="linenos">4214</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;unit&quot;</span><span class="p">)</span>
+</span></pre></div>
+
+
</div>
@@ -53933,6 +56614,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="TimeUnit.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="TimeUnit.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="TimeUnit.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="TimeUnit.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="TimeUnit.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="TimeUnit.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="TimeUnit.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -53953,6 +56635,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="TimeUnit.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="TimeUnit.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="TimeUnit.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="TimeUnit.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="TimeUnit.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="TimeUnit.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="TimeUnit.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -53974,6 +56657,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="TimeUnit.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="TimeUnit.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="TimeUnit.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="TimeUnit.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -53990,14 +56674,14 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#IntervalOp"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="IntervalOp-4177"><a href="#IntervalOp-4177"><span class="linenos">4177</span></a><span class="k">class</span> <span class="nc">IntervalOp</span><span class="p">(</span><span class="n">TimeUnit</span><span class="p">):</span>
-</span><span id="IntervalOp-4178"><a href="#IntervalOp-4178"><span class="linenos">4178</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="IntervalOp-4179"><a href="#IntervalOp-4179"><span class="linenos">4179</span></a>
-</span><span id="IntervalOp-4180"><a href="#IntervalOp-4180"><span class="linenos">4180</span></a> <span class="k">def</span> <span class="nf">interval</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="IntervalOp-4181"><a href="#IntervalOp-4181"><span class="linenos">4181</span></a> <span class="k">return</span> <span class="n">Interval</span><span class="p">(</span>
-</span><span id="IntervalOp-4182"><a href="#IntervalOp-4182"><span class="linenos">4182</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span>
-</span><span id="IntervalOp-4183"><a href="#IntervalOp-4183"><span class="linenos">4183</span></a> <span class="n">unit</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">unit</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span>
-</span><span id="IntervalOp-4184"><a href="#IntervalOp-4184"><span class="linenos">4184</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="IntervalOp-4217"><a href="#IntervalOp-4217"><span class="linenos">4217</span></a><span class="k">class</span> <span class="nc">IntervalOp</span><span class="p">(</span><span class="n">TimeUnit</span><span class="p">):</span>
+</span><span id="IntervalOp-4218"><a href="#IntervalOp-4218"><span class="linenos">4218</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="IntervalOp-4219"><a href="#IntervalOp-4219"><span class="linenos">4219</span></a>
+</span><span id="IntervalOp-4220"><a href="#IntervalOp-4220"><span class="linenos">4220</span></a> <span class="k">def</span> <span class="nf">interval</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="IntervalOp-4221"><a href="#IntervalOp-4221"><span class="linenos">4221</span></a> <span class="k">return</span> <span class="n">Interval</span><span class="p">(</span>
+</span><span id="IntervalOp-4222"><a href="#IntervalOp-4222"><span class="linenos">4222</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span>
+</span><span id="IntervalOp-4223"><a href="#IntervalOp-4223"><span class="linenos">4223</span></a> <span class="n">unit</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">unit</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span>
+</span><span id="IntervalOp-4224"><a href="#IntervalOp-4224"><span class="linenos">4224</span></a> <span class="p">)</span>
</span></pre></div>
@@ -54026,11 +56710,11 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#IntervalOp.interval"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="IntervalOp.interval-4180"><a href="#IntervalOp.interval-4180"><span class="linenos">4180</span></a> <span class="k">def</span> <span class="nf">interval</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="IntervalOp.interval-4181"><a href="#IntervalOp.interval-4181"><span class="linenos">4181</span></a> <span class="k">return</span> <span class="n">Interval</span><span class="p">(</span>
-</span><span id="IntervalOp.interval-4182"><a href="#IntervalOp.interval-4182"><span class="linenos">4182</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span>
-</span><span id="IntervalOp.interval-4183"><a href="#IntervalOp.interval-4183"><span class="linenos">4183</span></a> <span class="n">unit</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">unit</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span>
-</span><span id="IntervalOp.interval-4184"><a href="#IntervalOp.interval-4184"><span class="linenos">4184</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="IntervalOp.interval-4220"><a href="#IntervalOp.interval-4220"><span class="linenos">4220</span></a> <span class="k">def</span> <span class="nf">interval</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="IntervalOp.interval-4221"><a href="#IntervalOp.interval-4221"><span class="linenos">4221</span></a> <span class="k">return</span> <span class="n">Interval</span><span class="p">(</span>
+</span><span id="IntervalOp.interval-4222"><a href="#IntervalOp.interval-4222"><span class="linenos">4222</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span>
+</span><span id="IntervalOp.interval-4223"><a href="#IntervalOp.interval-4223"><span class="linenos">4223</span></a> <span class="n">unit</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">unit</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span>
+</span><span id="IntervalOp.interval-4224"><a href="#IntervalOp.interval-4224"><span class="linenos">4224</span></a> <span class="p">)</span>
</span></pre></div>
@@ -54080,6 +56764,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="IntervalOp.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="IntervalOp.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="IntervalOp.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="IntervalOp.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="IntervalOp.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="IntervalOp.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="IntervalOp.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -54100,6 +56785,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="IntervalOp.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="IntervalOp.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="IntervalOp.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="IntervalOp.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="IntervalOp.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="IntervalOp.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="IntervalOp.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -54121,6 +56807,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="IntervalOp.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="IntervalOp.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="IntervalOp.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="IntervalOp.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -54137,8 +56824,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#IntervalSpan"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="IntervalSpan-4190"><a href="#IntervalSpan-4190"><span class="linenos">4190</span></a><span class="k">class</span> <span class="nc">IntervalSpan</span><span class="p">(</span><span class="n">DataType</span><span class="p">):</span>
-</span><span id="IntervalSpan-4191"><a href="#IntervalSpan-4191"><span class="linenos">4191</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="IntervalSpan-4230"><a href="#IntervalSpan-4230"><span class="linenos">4230</span></a><span class="k">class</span> <span class="nc">IntervalSpan</span><span class="p">(</span><span class="n">DataType</span><span class="p">):</span>
+</span><span id="IntervalSpan-4231"><a href="#IntervalSpan-4231"><span class="linenos">4231</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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>
@@ -54192,6 +56879,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="IntervalSpan.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="IntervalSpan.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="IntervalSpan.type" class="variable"><a href="#Expression.type">type</a></dd>
+ <dd id="IntervalSpan.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="IntervalSpan.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="IntervalSpan.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="IntervalSpan.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -54212,6 +56900,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="IntervalSpan.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="IntervalSpan.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="IntervalSpan.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="IntervalSpan.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="IntervalSpan.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="IntervalSpan.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="IntervalSpan.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -54233,6 +56922,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="IntervalSpan.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="IntervalSpan.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="IntervalSpan.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="IntervalSpan.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#DataType">DataType</a></dt>
@@ -54260,8 +56950,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Interval"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Interval-4194"><a href="#Interval-4194"><span class="linenos">4194</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-4195"><a href="#Interval-4195"><span class="linenos">4195</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-4234"><a href="#Interval-4234"><span class="linenos">4234</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-4235"><a href="#Interval-4235"><span class="linenos">4235</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -54322,6 +57012,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Interval.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Interval.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Interval.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Interval.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Interval.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Interval.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Interval.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -54342,6 +57033,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Interval.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Interval.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Interval.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Interval.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Interval.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Interval.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Interval.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -54363,6 +57055,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="Interval.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Interval.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Interval.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Interval.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -54379,8 +57072,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#IgnoreNulls"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="IgnoreNulls-4198"><a href="#IgnoreNulls-4198"><span class="linenos">4198</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-4199"><a href="#IgnoreNulls-4199"><span class="linenos">4199</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="IgnoreNulls-4238"><a href="#IgnoreNulls-4238"><span class="linenos">4238</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-4239"><a href="#IgnoreNulls-4239"><span class="linenos">4239</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -54424,6 +57117,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="IgnoreNulls.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="IgnoreNulls.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="IgnoreNulls.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="IgnoreNulls.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="IgnoreNulls.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="IgnoreNulls.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="IgnoreNulls.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -54444,6 +57138,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="IgnoreNulls.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="IgnoreNulls.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="IgnoreNulls.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="IgnoreNulls.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="IgnoreNulls.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="IgnoreNulls.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="IgnoreNulls.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -54465,6 +57160,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="IgnoreNulls.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="IgnoreNulls.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="IgnoreNulls.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="IgnoreNulls.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -54481,8 +57177,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#RespectNulls"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="RespectNulls-4202"><a href="#RespectNulls-4202"><span class="linenos">4202</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-4203"><a href="#RespectNulls-4203"><span class="linenos">4203</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="RespectNulls-4242"><a href="#RespectNulls-4242"><span class="linenos">4242</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-4243"><a href="#RespectNulls-4243"><span class="linenos">4243</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -54526,6 +57222,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="RespectNulls.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="RespectNulls.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="RespectNulls.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="RespectNulls.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="RespectNulls.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="RespectNulls.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="RespectNulls.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -54546,6 +57243,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="RespectNulls.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="RespectNulls.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="RespectNulls.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="RespectNulls.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="RespectNulls.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="RespectNulls.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="RespectNulls.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -54567,6 +57265,7 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
<dd id="RespectNulls.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="RespectNulls.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="RespectNulls.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="RespectNulls.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -54583,53 +57282,53 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Func"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Func-4207"><a href="#Func-4207"><span class="linenos">4207</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-4208"><a href="#Func-4208"><span class="linenos">4208</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Func-4209"><a href="#Func-4209"><span class="linenos">4209</span></a><span class="sd"> The base class for all function expressions.</span>
-</span><span id="Func-4210"><a href="#Func-4210"><span class="linenos">4210</span></a>
-</span><span id="Func-4211"><a href="#Func-4211"><span class="linenos">4211</span></a><span class="sd"> Attributes:</span>
-</span><span id="Func-4212"><a href="#Func-4212"><span class="linenos">4212</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-4213"><a href="#Func-4213"><span class="linenos">4213</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-4214"><a href="#Func-4214"><span class="linenos">4214</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-4215"><a href="#Func-4215"><span class="linenos">4215</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-4216"><a href="#Func-4216"><span class="linenos">4216</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-4217"><a href="#Func-4217"><span class="linenos">4217</span></a><span class="sd"> name is set to the expression&#39;s class name transformed to snake case.</span>
-</span><span id="Func-4218"><a href="#Func-4218"><span class="linenos">4218</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Func-4219"><a href="#Func-4219"><span class="linenos">4219</span></a>
-</span><span id="Func-4220"><a href="#Func-4220"><span class="linenos">4220</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">False</span>
-</span><span id="Func-4221"><a href="#Func-4221"><span class="linenos">4221</span></a>
-</span><span id="Func-4222"><a href="#Func-4222"><span class="linenos">4222</span></a> <span class="nd">@classmethod</span>
-</span><span id="Func-4223"><a href="#Func-4223"><span class="linenos">4223</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-4224"><a href="#Func-4224"><span class="linenos">4224</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-4225"><a href="#Func-4225"><span class="linenos">4225</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-4226"><a href="#Func-4226"><span class="linenos">4226</span></a> <span class="c1"># If this function supports variable length argument treat the last argument as such.</span>
-</span><span id="Func-4227"><a href="#Func-4227"><span class="linenos">4227</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-4228"><a href="#Func-4228"><span class="linenos">4228</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-4229"><a href="#Func-4229"><span class="linenos">4229</span></a>
-</span><span id="Func-4230"><a href="#Func-4230"><span class="linenos">4230</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-4231"><a href="#Func-4231"><span class="linenos">4231</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-4232"><a href="#Func-4232"><span class="linenos">4232</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="Func-4233"><a href="#Func-4233"><span class="linenos">4233</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-4234"><a href="#Func-4234"><span class="linenos">4234</span></a>
-</span><span id="Func-4235"><a href="#Func-4235"><span class="linenos">4235</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-4236"><a href="#Func-4236"><span class="linenos">4236</span></a>
-</span><span id="Func-4237"><a href="#Func-4237"><span class="linenos">4237</span></a> <span class="nd">@classmethod</span>
-</span><span id="Func-4238"><a href="#Func-4238"><span class="linenos">4238</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-4239"><a href="#Func-4239"><span class="linenos">4239</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-4240"><a href="#Func-4240"><span class="linenos">4240</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span>
-</span><span id="Func-4241"><a href="#Func-4241"><span class="linenos">4241</span></a> <span class="s2">&quot;SQL name is only supported by concrete function implementations&quot;</span>
-</span><span id="Func-4242"><a href="#Func-4242"><span class="linenos">4242</span></a> <span class="p">)</span>
-</span><span id="Func-4243"><a href="#Func-4243"><span class="linenos">4243</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-4244"><a href="#Func-4244"><span class="linenos">4244</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-4245"><a href="#Func-4245"><span class="linenos">4245</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-4246"><a href="#Func-4246"><span class="linenos">4246</span></a>
-</span><span id="Func-4247"><a href="#Func-4247"><span class="linenos">4247</span></a> <span class="nd">@classmethod</span>
-</span><span id="Func-4248"><a href="#Func-4248"><span class="linenos">4248</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-4249"><a href="#Func-4249"><span class="linenos">4249</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-4247"><a href="#Func-4247"><span class="linenos">4247</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-4248"><a href="#Func-4248"><span class="linenos">4248</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Func-4249"><a href="#Func-4249"><span class="linenos">4249</span></a><span class="sd"> The base class for all function expressions.</span>
</span><span id="Func-4250"><a href="#Func-4250"><span class="linenos">4250</span></a>
-</span><span id="Func-4251"><a href="#Func-4251"><span class="linenos">4251</span></a> <span class="nd">@classmethod</span>
-</span><span id="Func-4252"><a href="#Func-4252"><span class="linenos">4252</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-4253"><a href="#Func-4253"><span class="linenos">4253</span></a> <span class="k">return</span> <span class="p">{</span><span class="n">name</span><span class="p">:</span> <span class="bp">cls</span><span class="o">.</span><span class="n">from_arg_list</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="n">sql_names</span><span class="p">()}</span>
+</span><span id="Func-4251"><a href="#Func-4251"><span class="linenos">4251</span></a><span class="sd"> Attributes:</span>
+</span><span id="Func-4252"><a href="#Func-4252"><span class="linenos">4252</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-4253"><a href="#Func-4253"><span class="linenos">4253</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-4254"><a href="#Func-4254"><span class="linenos">4254</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-4255"><a href="#Func-4255"><span class="linenos">4255</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-4256"><a href="#Func-4256"><span class="linenos">4256</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-4257"><a href="#Func-4257"><span class="linenos">4257</span></a><span class="sd"> name is set to the expression&#39;s class name transformed to snake case.</span>
+</span><span id="Func-4258"><a href="#Func-4258"><span class="linenos">4258</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Func-4259"><a href="#Func-4259"><span class="linenos">4259</span></a>
+</span><span id="Func-4260"><a href="#Func-4260"><span class="linenos">4260</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">False</span>
+</span><span id="Func-4261"><a href="#Func-4261"><span class="linenos">4261</span></a>
+</span><span id="Func-4262"><a href="#Func-4262"><span class="linenos">4262</span></a> <span class="nd">@classmethod</span>
+</span><span id="Func-4263"><a href="#Func-4263"><span class="linenos">4263</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-4264"><a href="#Func-4264"><span class="linenos">4264</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-4265"><a href="#Func-4265"><span class="linenos">4265</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-4266"><a href="#Func-4266"><span class="linenos">4266</span></a> <span class="c1"># If this function supports variable length argument treat the last argument as such.</span>
+</span><span id="Func-4267"><a href="#Func-4267"><span class="linenos">4267</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-4268"><a href="#Func-4268"><span class="linenos">4268</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-4269"><a href="#Func-4269"><span class="linenos">4269</span></a>
+</span><span id="Func-4270"><a href="#Func-4270"><span class="linenos">4270</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-4271"><a href="#Func-4271"><span class="linenos">4271</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-4272"><a href="#Func-4272"><span class="linenos">4272</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="Func-4273"><a href="#Func-4273"><span class="linenos">4273</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-4274"><a href="#Func-4274"><span class="linenos">4274</span></a>
+</span><span id="Func-4275"><a href="#Func-4275"><span class="linenos">4275</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-4276"><a href="#Func-4276"><span class="linenos">4276</span></a>
+</span><span id="Func-4277"><a href="#Func-4277"><span class="linenos">4277</span></a> <span class="nd">@classmethod</span>
+</span><span id="Func-4278"><a href="#Func-4278"><span class="linenos">4278</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-4279"><a href="#Func-4279"><span class="linenos">4279</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-4280"><a href="#Func-4280"><span class="linenos">4280</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span>
+</span><span id="Func-4281"><a href="#Func-4281"><span class="linenos">4281</span></a> <span class="s2">&quot;SQL name is only supported by concrete function implementations&quot;</span>
+</span><span id="Func-4282"><a href="#Func-4282"><span class="linenos">4282</span></a> <span class="p">)</span>
+</span><span id="Func-4283"><a href="#Func-4283"><span class="linenos">4283</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-4284"><a href="#Func-4284"><span class="linenos">4284</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-4285"><a href="#Func-4285"><span class="linenos">4285</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-4286"><a href="#Func-4286"><span class="linenos">4286</span></a>
+</span><span id="Func-4287"><a href="#Func-4287"><span class="linenos">4287</span></a> <span class="nd">@classmethod</span>
+</span><span id="Func-4288"><a href="#Func-4288"><span class="linenos">4288</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-4289"><a href="#Func-4289"><span class="linenos">4289</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-4290"><a href="#Func-4290"><span class="linenos">4290</span></a>
+</span><span id="Func-4291"><a href="#Func-4291"><span class="linenos">4291</span></a> <span class="nd">@classmethod</span>
+</span><span id="Func-4292"><a href="#Func-4292"><span class="linenos">4292</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-4293"><a href="#Func-4293"><span class="linenos">4293</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>
@@ -54672,20 +57371,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-4222"><a href="#Func.from_arg_list-4222"><span class="linenos">4222</span></a> <span class="nd">@classmethod</span>
-</span><span id="Func.from_arg_list-4223"><a href="#Func.from_arg_list-4223"><span class="linenos">4223</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-4224"><a href="#Func.from_arg_list-4224"><span class="linenos">4224</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-4225"><a href="#Func.from_arg_list-4225"><span class="linenos">4225</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-4226"><a href="#Func.from_arg_list-4226"><span class="linenos">4226</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-4227"><a href="#Func.from_arg_list-4227"><span class="linenos">4227</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-4228"><a href="#Func.from_arg_list-4228"><span class="linenos">4228</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-4229"><a href="#Func.from_arg_list-4229"><span class="linenos">4229</span></a>
-</span><span id="Func.from_arg_list-4230"><a href="#Func.from_arg_list-4230"><span class="linenos">4230</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-4231"><a href="#Func.from_arg_list-4231"><span class="linenos">4231</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-4232"><a href="#Func.from_arg_list-4232"><span class="linenos">4232</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="Func.from_arg_list-4233"><a href="#Func.from_arg_list-4233"><span class="linenos">4233</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-4234"><a href="#Func.from_arg_list-4234"><span class="linenos">4234</span></a>
-</span><span id="Func.from_arg_list-4235"><a href="#Func.from_arg_list-4235"><span class="linenos">4235</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-4262"><a href="#Func.from_arg_list-4262"><span class="linenos">4262</span></a> <span class="nd">@classmethod</span>
+</span><span id="Func.from_arg_list-4263"><a href="#Func.from_arg_list-4263"><span class="linenos">4263</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-4264"><a href="#Func.from_arg_list-4264"><span class="linenos">4264</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-4265"><a href="#Func.from_arg_list-4265"><span class="linenos">4265</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-4266"><a href="#Func.from_arg_list-4266"><span class="linenos">4266</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-4267"><a href="#Func.from_arg_list-4267"><span class="linenos">4267</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-4268"><a href="#Func.from_arg_list-4268"><span class="linenos">4268</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-4269"><a href="#Func.from_arg_list-4269"><span class="linenos">4269</span></a>
+</span><span id="Func.from_arg_list-4270"><a href="#Func.from_arg_list-4270"><span class="linenos">4270</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-4271"><a href="#Func.from_arg_list-4271"><span class="linenos">4271</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-4272"><a href="#Func.from_arg_list-4272"><span class="linenos">4272</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="Func.from_arg_list-4273"><a href="#Func.from_arg_list-4273"><span class="linenos">4273</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-4274"><a href="#Func.from_arg_list-4274"><span class="linenos">4274</span></a>
+</span><span id="Func.from_arg_list-4275"><a href="#Func.from_arg_list-4275"><span class="linenos">4275</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>
@@ -54704,15 +57403,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-4237"><a href="#Func.sql_names-4237"><span class="linenos">4237</span></a> <span class="nd">@classmethod</span>
-</span><span id="Func.sql_names-4238"><a href="#Func.sql_names-4238"><span class="linenos">4238</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-4239"><a href="#Func.sql_names-4239"><span class="linenos">4239</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-4240"><a href="#Func.sql_names-4240"><span class="linenos">4240</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span>
-</span><span id="Func.sql_names-4241"><a href="#Func.sql_names-4241"><span class="linenos">4241</span></a> <span class="s2">&quot;SQL name is only supported by concrete function implementations&quot;</span>
-</span><span id="Func.sql_names-4242"><a href="#Func.sql_names-4242"><span class="linenos">4242</span></a> <span class="p">)</span>
-</span><span id="Func.sql_names-4243"><a href="#Func.sql_names-4243"><span class="linenos">4243</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-4244"><a href="#Func.sql_names-4244"><span class="linenos">4244</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-4245"><a href="#Func.sql_names-4245"><span class="linenos">4245</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-4277"><a href="#Func.sql_names-4277"><span class="linenos">4277</span></a> <span class="nd">@classmethod</span>
+</span><span id="Func.sql_names-4278"><a href="#Func.sql_names-4278"><span class="linenos">4278</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-4279"><a href="#Func.sql_names-4279"><span class="linenos">4279</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-4280"><a href="#Func.sql_names-4280"><span class="linenos">4280</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span>
+</span><span id="Func.sql_names-4281"><a href="#Func.sql_names-4281"><span class="linenos">4281</span></a> <span class="s2">&quot;SQL name is only supported by concrete function implementations&quot;</span>
+</span><span id="Func.sql_names-4282"><a href="#Func.sql_names-4282"><span class="linenos">4282</span></a> <span class="p">)</span>
+</span><span id="Func.sql_names-4283"><a href="#Func.sql_names-4283"><span class="linenos">4283</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-4284"><a href="#Func.sql_names-4284"><span class="linenos">4284</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-4285"><a href="#Func.sql_names-4285"><span class="linenos">4285</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>
@@ -54731,9 +57430,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-4247"><a href="#Func.sql_name-4247"><span class="linenos">4247</span></a> <span class="nd">@classmethod</span>
-</span><span id="Func.sql_name-4248"><a href="#Func.sql_name-4248"><span class="linenos">4248</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-4249"><a href="#Func.sql_name-4249"><span class="linenos">4249</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-4287"><a href="#Func.sql_name-4287"><span class="linenos">4287</span></a> <span class="nd">@classmethod</span>
+</span><span id="Func.sql_name-4288"><a href="#Func.sql_name-4288"><span class="linenos">4288</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-4289"><a href="#Func.sql_name-4289"><span class="linenos">4289</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>
@@ -54752,9 +57451,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-4251"><a href="#Func.default_parser_mappings-4251"><span class="linenos">4251</span></a> <span class="nd">@classmethod</span>
-</span><span id="Func.default_parser_mappings-4252"><a href="#Func.default_parser_mappings-4252"><span class="linenos">4252</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-4253"><a href="#Func.default_parser_mappings-4253"><span class="linenos">4253</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-4291"><a href="#Func.default_parser_mappings-4291"><span class="linenos">4291</span></a> <span class="nd">@classmethod</span>
+</span><span id="Func.default_parser_mappings-4292"><a href="#Func.default_parser_mappings-4292"><span class="linenos">4292</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-4293"><a href="#Func.default_parser_mappings-4293"><span class="linenos">4293</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>
@@ -54799,6 +57498,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Func.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Func.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Func.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Func.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Func.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Func.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Func.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -54819,6 +57519,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Func.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Func.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Func.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Func.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Func.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Func.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Func.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -54840,6 +57541,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Func.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Func.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Func.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Func.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -54856,8 +57558,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-4256"><a href="#AggFunc-4256"><span class="linenos">4256</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-4257"><a href="#AggFunc-4257"><span class="linenos">4257</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="AggFunc-4296"><a href="#AggFunc-4296"><span class="linenos">4296</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-4297"><a href="#AggFunc-4297"><span class="linenos">4297</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -54901,6 +57603,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="AggFunc.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="AggFunc.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="AggFunc.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="AggFunc.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="AggFunc.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="AggFunc.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="AggFunc.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -54921,6 +57624,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="AggFunc.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="AggFunc.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="AggFunc.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="AggFunc.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="AggFunc.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="AggFunc.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="AggFunc.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -54942,6 +57646,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="AggFunc.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="AggFunc.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="AggFunc.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="AggFunc.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -54966,8 +57671,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#ParameterizedAgg"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ParameterizedAgg-4260"><a href="#ParameterizedAgg-4260"><span class="linenos">4260</span></a><span class="k">class</span> <span class="nc">ParameterizedAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="ParameterizedAgg-4261"><a href="#ParameterizedAgg-4261"><span class="linenos">4261</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;params&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ParameterizedAgg-4300"><a href="#ParameterizedAgg-4300"><span class="linenos">4300</span></a><span class="k">class</span> <span class="nc">ParameterizedAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="ParameterizedAgg-4301"><a href="#ParameterizedAgg-4301"><span class="linenos">4301</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;params&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -55022,6 +57727,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ParameterizedAgg.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ParameterizedAgg.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="ParameterizedAgg.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="ParameterizedAgg.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="ParameterizedAgg.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="ParameterizedAgg.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ParameterizedAgg.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -55042,6 +57748,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ParameterizedAgg.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ParameterizedAgg.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ParameterizedAgg.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="ParameterizedAgg.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="ParameterizedAgg.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ParameterizedAgg.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ParameterizedAgg.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -55063,6 +57770,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ParameterizedAgg.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="ParameterizedAgg.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="ParameterizedAgg.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="ParameterizedAgg.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -55087,8 +57795,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-4264"><a href="#Abs-4264"><span class="linenos">4264</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-4265"><a href="#Abs-4265"><span class="linenos">4265</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Abs-4304"><a href="#Abs-4304"><span class="linenos">4304</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-4305"><a href="#Abs-4305"><span class="linenos">4305</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -55132,6 +57840,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Abs.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Abs.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Abs.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Abs.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Abs.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Abs.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Abs.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -55152,6 +57861,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Abs.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Abs.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Abs.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Abs.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Abs.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Abs.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Abs.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -55173,6 +57883,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Abs.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Abs.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Abs.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Abs.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -55197,9 +57908,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#ArgMax"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ArgMax-4268"><a href="#ArgMax-4268"><span class="linenos">4268</span></a><span class="k">class</span> <span class="nc">ArgMax</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="ArgMax-4269"><a href="#ArgMax-4269"><span class="linenos">4269</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;count&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="ArgMax-4270"><a href="#ArgMax-4270"><span class="linenos">4270</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;ARG_MAX&quot;</span><span class="p">,</span> <span class="s2">&quot;ARGMAX&quot;</span><span class="p">,</span> <span class="s2">&quot;MAX_BY&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ArgMax-4308"><a href="#ArgMax-4308"><span class="linenos">4308</span></a><span class="k">class</span> <span class="nc">ArgMax</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="ArgMax-4309"><a href="#ArgMax-4309"><span class="linenos">4309</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;count&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="ArgMax-4310"><a href="#ArgMax-4310"><span class="linenos">4310</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;ARG_MAX&quot;</span><span class="p">,</span> <span class="s2">&quot;ARGMAX&quot;</span><span class="p">,</span> <span class="s2">&quot;MAX_BY&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -55254,6 +57965,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArgMax.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ArgMax.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="ArgMax.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="ArgMax.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="ArgMax.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="ArgMax.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ArgMax.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -55274,6 +57986,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArgMax.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ArgMax.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ArgMax.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="ArgMax.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="ArgMax.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ArgMax.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ArgMax.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -55295,6 +58008,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArgMax.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="ArgMax.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="ArgMax.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="ArgMax.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -55319,9 +58033,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#ArgMin"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ArgMin-4273"><a href="#ArgMin-4273"><span class="linenos">4273</span></a><span class="k">class</span> <span class="nc">ArgMin</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="ArgMin-4274"><a href="#ArgMin-4274"><span class="linenos">4274</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;count&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="ArgMin-4275"><a href="#ArgMin-4275"><span class="linenos">4275</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;ARG_MIN&quot;</span><span class="p">,</span> <span class="s2">&quot;ARGMIN&quot;</span><span class="p">,</span> <span class="s2">&quot;MIN_BY&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ArgMin-4313"><a href="#ArgMin-4313"><span class="linenos">4313</span></a><span class="k">class</span> <span class="nc">ArgMin</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="ArgMin-4314"><a href="#ArgMin-4314"><span class="linenos">4314</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;count&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="ArgMin-4315"><a href="#ArgMin-4315"><span class="linenos">4315</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;ARG_MIN&quot;</span><span class="p">,</span> <span class="s2">&quot;ARGMIN&quot;</span><span class="p">,</span> <span class="s2">&quot;MIN_BY&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -55376,6 +58090,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArgMin.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ArgMin.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="ArgMin.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="ArgMin.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="ArgMin.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="ArgMin.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ArgMin.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -55396,6 +58111,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArgMin.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ArgMin.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ArgMin.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="ArgMin.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="ArgMin.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ArgMin.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ArgMin.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -55417,6 +58133,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArgMin.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="ArgMin.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="ArgMin.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="ArgMin.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -55441,8 +58158,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#ApproxTopK"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ApproxTopK-4278"><a href="#ApproxTopK-4278"><span class="linenos">4278</span></a><span class="k">class</span> <span class="nc">ApproxTopK</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="ApproxTopK-4279"><a href="#ApproxTopK-4279"><span class="linenos">4279</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;counters&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ApproxTopK-4318"><a href="#ApproxTopK-4318"><span class="linenos">4318</span></a><span class="k">class</span> <span class="nc">ApproxTopK</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="ApproxTopK-4319"><a href="#ApproxTopK-4319"><span class="linenos">4319</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;counters&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -55497,6 +58214,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ApproxTopK.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ApproxTopK.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="ApproxTopK.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="ApproxTopK.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="ApproxTopK.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="ApproxTopK.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ApproxTopK.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -55517,6 +58235,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ApproxTopK.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ApproxTopK.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ApproxTopK.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="ApproxTopK.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="ApproxTopK.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ApproxTopK.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ApproxTopK.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -55538,6 +58257,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ApproxTopK.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="ApproxTopK.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="ApproxTopK.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="ApproxTopK.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -55562,8 +58282,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Flatten"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Flatten-4282"><a href="#Flatten-4282"><span class="linenos">4282</span></a><span class="k">class</span> <span class="nc">Flatten</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Flatten-4283"><a href="#Flatten-4283"><span class="linenos">4283</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Flatten-4322"><a href="#Flatten-4322"><span class="linenos">4322</span></a><span class="k">class</span> <span class="nc">Flatten</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Flatten-4323"><a href="#Flatten-4323"><span class="linenos">4323</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -55607,6 +58327,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Flatten.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Flatten.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Flatten.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Flatten.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Flatten.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Flatten.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Flatten.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -55627,6 +58348,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Flatten.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Flatten.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Flatten.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Flatten.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Flatten.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Flatten.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Flatten.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -55648,6 +58370,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Flatten.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Flatten.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Flatten.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Flatten.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -55672,8 +58395,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Transform"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Transform-4287"><a href="#Transform-4287"><span class="linenos">4287</span></a><span class="k">class</span> <span class="nc">Transform</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Transform-4288"><a href="#Transform-4288"><span class="linenos">4288</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Transform-4327"><a href="#Transform-4327"><span class="linenos">4327</span></a><span class="k">class</span> <span class="nc">Transform</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Transform-4328"><a href="#Transform-4328"><span class="linenos">4328</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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>
@@ -55728,6 +58451,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Transform.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Transform.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Transform.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Transform.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Transform.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Transform.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Transform.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -55748,6 +58472,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Transform.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Transform.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Transform.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Transform.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Transform.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Transform.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Transform.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -55769,6 +58494,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Transform.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Transform.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Transform.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Transform.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -55793,9 +58519,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-4291"><a href="#Anonymous-4291"><span class="linenos">4291</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-4292"><a href="#Anonymous-4292"><span class="linenos">4292</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4293"><a href="#Anonymous-4293"><span class="linenos">4293</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-4331"><a href="#Anonymous-4331"><span class="linenos">4331</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-4332"><a href="#Anonymous-4332"><span class="linenos">4332</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4333"><a href="#Anonymous-4333"><span class="linenos">4333</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -55862,6 +58588,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Anonymous.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Anonymous.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Anonymous.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Anonymous.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Anonymous.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Anonymous.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Anonymous.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -55882,6 +58609,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Anonymous.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Anonymous.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Anonymous.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Anonymous.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Anonymous.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Anonymous.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Anonymous.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -55903,6 +58631,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Anonymous.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Anonymous.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Anonymous.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Anonymous.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -55915,6 +58644,393 @@ name is set to the expression's class name transformed to snake case.</li>
</dl>
</div>
</section>
+ <section id="AnonymousAggFunc">
+ <input id="AnonymousAggFunc-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">AnonymousAggFunc</span><wbr>(<span class="base"><a href="#AggFunc">AggFunc</a></span>):
+
+ <label class="view-source-button" for="AnonymousAggFunc-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#AnonymousAggFunc"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="AnonymousAggFunc-4336"><a href="#AnonymousAggFunc-4336"><span class="linenos">4336</span></a><span class="k">class</span> <span class="nc">AnonymousAggFunc</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="AnonymousAggFunc-4337"><a href="#AnonymousAggFunc-4337"><span class="linenos">4337</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="AnonymousAggFunc-4338"><a href="#AnonymousAggFunc-4338"><span class="linenos">4338</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span></pre></div>
+
+
+
+
+ <div id="AnonymousAggFunc.arg_types" class="classattr">
+ <div class="attr variable">
+ <span class="name">arg_types</span> =
+<span class="default_value">{&#39;this&#39;: True, &#39;expressions&#39;: False}</span>
+
+
+ </div>
+ <a class="headerlink" href="#AnonymousAggFunc.arg_types"></a>
+
+
+
+ </div>
+ <div id="AnonymousAggFunc.is_var_len_args" class="classattr">
+ <div class="attr variable">
+ <span class="name">is_var_len_args</span> =
+<span class="default_value">True</span>
+
+
+ </div>
+ <a class="headerlink" href="#AnonymousAggFunc.is_var_len_args"></a>
+
+
+
+ </div>
+ <div id="AnonymousAggFunc.key" class="classattr">
+ <div class="attr variable">
+ <span class="name">key</span> =
+<span class="default_value">&#39;anonymousaggfunc&#39;</span>
+
+
+ </div>
+ <a class="headerlink" href="#AnonymousAggFunc.key"></a>
+
+
+
+ </div>
+ <div class="inherited">
+ <h5>Inherited Members</h5>
+ <dl>
+ <div><dt><a href="#Expression">Expression</a></dt>
+ <dd id="AnonymousAggFunc.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
+ <dd id="AnonymousAggFunc.args" class="variable"><a href="#Expression.args">args</a></dd>
+ <dd id="AnonymousAggFunc.parent" class="variable"><a href="#Expression.parent">parent</a></dd>
+ <dd id="AnonymousAggFunc.arg_key" class="variable"><a href="#Expression.arg_key">arg_key</a></dd>
+ <dd id="AnonymousAggFunc.comments" class="variable"><a href="#Expression.comments">comments</a></dd>
+ <dd id="AnonymousAggFunc.hashable_args" class="variable"><a href="#Expression.hashable_args">hashable_args</a></dd>
+ <dd id="AnonymousAggFunc.this" class="variable"><a href="#Expression.this">this</a></dd>
+ <dd id="AnonymousAggFunc.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
+ <dd id="AnonymousAggFunc.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
+ <dd id="AnonymousAggFunc.text" class="function"><a href="#Expression.text">text</a></dd>
+ <dd id="AnonymousAggFunc.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
+ <dd id="AnonymousAggFunc.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
+ <dd id="AnonymousAggFunc.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
+ <dd id="AnonymousAggFunc.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
+ <dd id="AnonymousAggFunc.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="AnonymousAggFunc.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
+ <dd id="AnonymousAggFunc.name" class="variable"><a href="#Expression.name">name</a></dd>
+ <dd id="AnonymousAggFunc.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
+ <dd id="AnonymousAggFunc.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
+ <dd id="AnonymousAggFunc.type" class="variable"><a href="#Expression.type">type</a></dd>
+ <dd id="AnonymousAggFunc.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="AnonymousAggFunc.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
+ <dd id="AnonymousAggFunc.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
+ <dd id="AnonymousAggFunc.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="AnonymousAggFunc.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
+ <dd id="AnonymousAggFunc.append" class="function"><a href="#Expression.append">append</a></dd>
+ <dd id="AnonymousAggFunc.set" class="function"><a href="#Expression.set">set</a></dd>
+ <dd id="AnonymousAggFunc.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
+ <dd id="AnonymousAggFunc.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
+ <dd id="AnonymousAggFunc.find" class="function"><a href="#Expression.find">find</a></dd>
+ <dd id="AnonymousAggFunc.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
+ <dd id="AnonymousAggFunc.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
+ <dd id="AnonymousAggFunc.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
+ <dd id="AnonymousAggFunc.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
+ <dd id="AnonymousAggFunc.root" class="function"><a href="#Expression.root">root</a></dd>
+ <dd id="AnonymousAggFunc.walk" class="function"><a href="#Expression.walk">walk</a></dd>
+ <dd id="AnonymousAggFunc.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
+ <dd id="AnonymousAggFunc.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
+ <dd id="AnonymousAggFunc.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
+ <dd id="AnonymousAggFunc.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
+ <dd id="AnonymousAggFunc.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
+ <dd id="AnonymousAggFunc.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="AnonymousAggFunc.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
+ <dd id="AnonymousAggFunc.sql" class="function"><a href="#Expression.sql">sql</a></dd>
+ <dd id="AnonymousAggFunc.transform" class="function"><a href="#Expression.transform">transform</a></dd>
+ <dd id="AnonymousAggFunc.replace" class="function"><a href="#Expression.replace">replace</a></dd>
+ <dd id="AnonymousAggFunc.pop" class="function"><a href="#Expression.pop">pop</a></dd>
+ <dd id="AnonymousAggFunc.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
+ <dd id="AnonymousAggFunc.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
+ <dd id="AnonymousAggFunc.dump" class="function"><a href="#Expression.dump">dump</a></dd>
+ <dd id="AnonymousAggFunc.load" class="function"><a href="#Expression.load">load</a></dd>
+ <dd id="AnonymousAggFunc.and_" class="function"><a href="#Expression.and_">and_</a></dd>
+ <dd id="AnonymousAggFunc.or_" class="function"><a href="#Expression.or_">or_</a></dd>
+ <dd id="AnonymousAggFunc.not_" class="function"><a href="#Expression.not_">not_</a></dd>
+ <dd id="AnonymousAggFunc.as_" class="function"><a href="#Expression.as_">as_</a></dd>
+ <dd id="AnonymousAggFunc.isin" class="function"><a href="#Expression.isin">isin</a></dd>
+ <dd id="AnonymousAggFunc.between" class="function"><a href="#Expression.between">between</a></dd>
+ <dd id="AnonymousAggFunc.is_" class="function"><a href="#Expression.is_">is_</a></dd>
+ <dd id="AnonymousAggFunc.like" class="function"><a href="#Expression.like">like</a></dd>
+ <dd id="AnonymousAggFunc.ilike" class="function"><a href="#Expression.ilike">ilike</a></dd>
+ <dd id="AnonymousAggFunc.eq" class="function"><a href="#Expression.eq">eq</a></dd>
+ <dd id="AnonymousAggFunc.neq" class="function"><a href="#Expression.neq">neq</a></dd>
+ <dd id="AnonymousAggFunc.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
+ <dd id="AnonymousAggFunc.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="AnonymousAggFunc.desc" class="function"><a href="#Expression.desc">desc</a></dd>
+
+ </div>
+ <div><dt><a href="#Func">Func</a></dt>
+ <dd id="AnonymousAggFunc.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
+ <dd id="AnonymousAggFunc.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
+ <dd id="AnonymousAggFunc.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
+ <dd id="AnonymousAggFunc.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
+
+ </div>
+ </dl>
+ </div>
+ </section>
+ <section id="CombinedAggFunc">
+ <input id="CombinedAggFunc-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">CombinedAggFunc</span><wbr>(<span class="base"><a href="#AnonymousAggFunc">AnonymousAggFunc</a></span>):
+
+ <label class="view-source-button" for="CombinedAggFunc-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#CombinedAggFunc"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="CombinedAggFunc-4342"><a href="#CombinedAggFunc-4342"><span class="linenos">4342</span></a><span class="k">class</span> <span class="nc">CombinedAggFunc</span><span class="p">(</span><span class="n">AnonymousAggFunc</span><span class="p">):</span>
+</span><span id="CombinedAggFunc-4343"><a href="#CombinedAggFunc-4343"><span class="linenos">4343</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;parts&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span></pre></div>
+
+
+
+
+ <div id="CombinedAggFunc.arg_types" class="classattr">
+ <div class="attr variable">
+ <span class="name">arg_types</span> =
+<span class="default_value">{&#39;this&#39;: True, &#39;expressions&#39;: False, &#39;parts&#39;: True}</span>
+
+
+ </div>
+ <a class="headerlink" href="#CombinedAggFunc.arg_types"></a>
+
+
+
+ </div>
+ <div id="CombinedAggFunc.key" class="classattr">
+ <div class="attr variable">
+ <span class="name">key</span> =
+<span class="default_value">&#39;combinedaggfunc&#39;</span>
+
+
+ </div>
+ <a class="headerlink" href="#CombinedAggFunc.key"></a>
+
+
+
+ </div>
+ <div class="inherited">
+ <h5>Inherited Members</h5>
+ <dl>
+ <div><dt><a href="#Expression">Expression</a></dt>
+ <dd id="CombinedAggFunc.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
+ <dd id="CombinedAggFunc.args" class="variable"><a href="#Expression.args">args</a></dd>
+ <dd id="CombinedAggFunc.parent" class="variable"><a href="#Expression.parent">parent</a></dd>
+ <dd id="CombinedAggFunc.arg_key" class="variable"><a href="#Expression.arg_key">arg_key</a></dd>
+ <dd id="CombinedAggFunc.comments" class="variable"><a href="#Expression.comments">comments</a></dd>
+ <dd id="CombinedAggFunc.hashable_args" class="variable"><a href="#Expression.hashable_args">hashable_args</a></dd>
+ <dd id="CombinedAggFunc.this" class="variable"><a href="#Expression.this">this</a></dd>
+ <dd id="CombinedAggFunc.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
+ <dd id="CombinedAggFunc.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
+ <dd id="CombinedAggFunc.text" class="function"><a href="#Expression.text">text</a></dd>
+ <dd id="CombinedAggFunc.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
+ <dd id="CombinedAggFunc.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
+ <dd id="CombinedAggFunc.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
+ <dd id="CombinedAggFunc.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
+ <dd id="CombinedAggFunc.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="CombinedAggFunc.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
+ <dd id="CombinedAggFunc.name" class="variable"><a href="#Expression.name">name</a></dd>
+ <dd id="CombinedAggFunc.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
+ <dd id="CombinedAggFunc.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
+ <dd id="CombinedAggFunc.type" class="variable"><a href="#Expression.type">type</a></dd>
+ <dd id="CombinedAggFunc.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="CombinedAggFunc.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
+ <dd id="CombinedAggFunc.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
+ <dd id="CombinedAggFunc.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="CombinedAggFunc.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
+ <dd id="CombinedAggFunc.append" class="function"><a href="#Expression.append">append</a></dd>
+ <dd id="CombinedAggFunc.set" class="function"><a href="#Expression.set">set</a></dd>
+ <dd id="CombinedAggFunc.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
+ <dd id="CombinedAggFunc.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
+ <dd id="CombinedAggFunc.find" class="function"><a href="#Expression.find">find</a></dd>
+ <dd id="CombinedAggFunc.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
+ <dd id="CombinedAggFunc.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
+ <dd id="CombinedAggFunc.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
+ <dd id="CombinedAggFunc.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
+ <dd id="CombinedAggFunc.root" class="function"><a href="#Expression.root">root</a></dd>
+ <dd id="CombinedAggFunc.walk" class="function"><a href="#Expression.walk">walk</a></dd>
+ <dd id="CombinedAggFunc.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
+ <dd id="CombinedAggFunc.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
+ <dd id="CombinedAggFunc.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
+ <dd id="CombinedAggFunc.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
+ <dd id="CombinedAggFunc.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
+ <dd id="CombinedAggFunc.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="CombinedAggFunc.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
+ <dd id="CombinedAggFunc.sql" class="function"><a href="#Expression.sql">sql</a></dd>
+ <dd id="CombinedAggFunc.transform" class="function"><a href="#Expression.transform">transform</a></dd>
+ <dd id="CombinedAggFunc.replace" class="function"><a href="#Expression.replace">replace</a></dd>
+ <dd id="CombinedAggFunc.pop" class="function"><a href="#Expression.pop">pop</a></dd>
+ <dd id="CombinedAggFunc.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
+ <dd id="CombinedAggFunc.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
+ <dd id="CombinedAggFunc.dump" class="function"><a href="#Expression.dump">dump</a></dd>
+ <dd id="CombinedAggFunc.load" class="function"><a href="#Expression.load">load</a></dd>
+ <dd id="CombinedAggFunc.and_" class="function"><a href="#Expression.and_">and_</a></dd>
+ <dd id="CombinedAggFunc.or_" class="function"><a href="#Expression.or_">or_</a></dd>
+ <dd id="CombinedAggFunc.not_" class="function"><a href="#Expression.not_">not_</a></dd>
+ <dd id="CombinedAggFunc.as_" class="function"><a href="#Expression.as_">as_</a></dd>
+ <dd id="CombinedAggFunc.isin" class="function"><a href="#Expression.isin">isin</a></dd>
+ <dd id="CombinedAggFunc.between" class="function"><a href="#Expression.between">between</a></dd>
+ <dd id="CombinedAggFunc.is_" class="function"><a href="#Expression.is_">is_</a></dd>
+ <dd id="CombinedAggFunc.like" class="function"><a href="#Expression.like">like</a></dd>
+ <dd id="CombinedAggFunc.ilike" class="function"><a href="#Expression.ilike">ilike</a></dd>
+ <dd id="CombinedAggFunc.eq" class="function"><a href="#Expression.eq">eq</a></dd>
+ <dd id="CombinedAggFunc.neq" class="function"><a href="#Expression.neq">neq</a></dd>
+ <dd id="CombinedAggFunc.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
+ <dd id="CombinedAggFunc.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="CombinedAggFunc.desc" class="function"><a href="#Expression.desc">desc</a></dd>
+
+ </div>
+ <div><dt><a href="#AnonymousAggFunc">AnonymousAggFunc</a></dt>
+ <dd id="CombinedAggFunc.is_var_len_args" class="variable"><a href="#AnonymousAggFunc.is_var_len_args">is_var_len_args</a></dd>
+
+ </div>
+ <div><dt><a href="#Func">Func</a></dt>
+ <dd id="CombinedAggFunc.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
+ <dd id="CombinedAggFunc.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
+ <dd id="CombinedAggFunc.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
+ <dd id="CombinedAggFunc.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
+
+ </div>
+ </dl>
+ </div>
+ </section>
+ <section id="CombinedParameterizedAgg">
+ <input id="CombinedParameterizedAgg-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">CombinedParameterizedAgg</span><wbr>(<span class="base"><a href="#ParameterizedAgg">ParameterizedAgg</a></span>):
+
+ <label class="view-source-button" for="CombinedParameterizedAgg-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#CombinedParameterizedAgg"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="CombinedParameterizedAgg-4346"><a href="#CombinedParameterizedAgg-4346"><span class="linenos">4346</span></a><span class="k">class</span> <span class="nc">CombinedParameterizedAgg</span><span class="p">(</span><span class="n">ParameterizedAgg</span><span class="p">):</span>
+</span><span id="CombinedParameterizedAgg-4347"><a href="#CombinedParameterizedAgg-4347"><span class="linenos">4347</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;params&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;parts&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span></pre></div>
+
+
+
+
+ <div id="CombinedParameterizedAgg.arg_types" class="classattr">
+ <div class="attr variable">
+ <span class="name">arg_types</span> =
+<span class="default_value">{&#39;this&#39;: True, &#39;expressions&#39;: True, &#39;params&#39;: True, &#39;parts&#39;: True}</span>
+
+
+ </div>
+ <a class="headerlink" href="#CombinedParameterizedAgg.arg_types"></a>
+
+
+
+ </div>
+ <div id="CombinedParameterizedAgg.key" class="classattr">
+ <div class="attr variable">
+ <span class="name">key</span> =
+<span class="default_value">&#39;combinedparameterizedagg&#39;</span>
+
+
+ </div>
+ <a class="headerlink" href="#CombinedParameterizedAgg.key"></a>
+
+
+
+ </div>
+ <div class="inherited">
+ <h5>Inherited Members</h5>
+ <dl>
+ <div><dt><a href="#Expression">Expression</a></dt>
+ <dd id="CombinedParameterizedAgg.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
+ <dd id="CombinedParameterizedAgg.args" class="variable"><a href="#Expression.args">args</a></dd>
+ <dd id="CombinedParameterizedAgg.parent" class="variable"><a href="#Expression.parent">parent</a></dd>
+ <dd id="CombinedParameterizedAgg.arg_key" class="variable"><a href="#Expression.arg_key">arg_key</a></dd>
+ <dd id="CombinedParameterizedAgg.comments" class="variable"><a href="#Expression.comments">comments</a></dd>
+ <dd id="CombinedParameterizedAgg.hashable_args" class="variable"><a href="#Expression.hashable_args">hashable_args</a></dd>
+ <dd id="CombinedParameterizedAgg.this" class="variable"><a href="#Expression.this">this</a></dd>
+ <dd id="CombinedParameterizedAgg.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
+ <dd id="CombinedParameterizedAgg.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
+ <dd id="CombinedParameterizedAgg.text" class="function"><a href="#Expression.text">text</a></dd>
+ <dd id="CombinedParameterizedAgg.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
+ <dd id="CombinedParameterizedAgg.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
+ <dd id="CombinedParameterizedAgg.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
+ <dd id="CombinedParameterizedAgg.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
+ <dd id="CombinedParameterizedAgg.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="CombinedParameterizedAgg.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
+ <dd id="CombinedParameterizedAgg.name" class="variable"><a href="#Expression.name">name</a></dd>
+ <dd id="CombinedParameterizedAgg.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
+ <dd id="CombinedParameterizedAgg.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
+ <dd id="CombinedParameterizedAgg.type" class="variable"><a href="#Expression.type">type</a></dd>
+ <dd id="CombinedParameterizedAgg.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="CombinedParameterizedAgg.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
+ <dd id="CombinedParameterizedAgg.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
+ <dd id="CombinedParameterizedAgg.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="CombinedParameterizedAgg.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
+ <dd id="CombinedParameterizedAgg.append" class="function"><a href="#Expression.append">append</a></dd>
+ <dd id="CombinedParameterizedAgg.set" class="function"><a href="#Expression.set">set</a></dd>
+ <dd id="CombinedParameterizedAgg.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
+ <dd id="CombinedParameterizedAgg.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
+ <dd id="CombinedParameterizedAgg.find" class="function"><a href="#Expression.find">find</a></dd>
+ <dd id="CombinedParameterizedAgg.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
+ <dd id="CombinedParameterizedAgg.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
+ <dd id="CombinedParameterizedAgg.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
+ <dd id="CombinedParameterizedAgg.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
+ <dd id="CombinedParameterizedAgg.root" class="function"><a href="#Expression.root">root</a></dd>
+ <dd id="CombinedParameterizedAgg.walk" class="function"><a href="#Expression.walk">walk</a></dd>
+ <dd id="CombinedParameterizedAgg.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
+ <dd id="CombinedParameterizedAgg.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
+ <dd id="CombinedParameterizedAgg.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
+ <dd id="CombinedParameterizedAgg.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
+ <dd id="CombinedParameterizedAgg.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
+ <dd id="CombinedParameterizedAgg.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="CombinedParameterizedAgg.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
+ <dd id="CombinedParameterizedAgg.sql" class="function"><a href="#Expression.sql">sql</a></dd>
+ <dd id="CombinedParameterizedAgg.transform" class="function"><a href="#Expression.transform">transform</a></dd>
+ <dd id="CombinedParameterizedAgg.replace" class="function"><a href="#Expression.replace">replace</a></dd>
+ <dd id="CombinedParameterizedAgg.pop" class="function"><a href="#Expression.pop">pop</a></dd>
+ <dd id="CombinedParameterizedAgg.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
+ <dd id="CombinedParameterizedAgg.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
+ <dd id="CombinedParameterizedAgg.dump" class="function"><a href="#Expression.dump">dump</a></dd>
+ <dd id="CombinedParameterizedAgg.load" class="function"><a href="#Expression.load">load</a></dd>
+ <dd id="CombinedParameterizedAgg.and_" class="function"><a href="#Expression.and_">and_</a></dd>
+ <dd id="CombinedParameterizedAgg.or_" class="function"><a href="#Expression.or_">or_</a></dd>
+ <dd id="CombinedParameterizedAgg.not_" class="function"><a href="#Expression.not_">not_</a></dd>
+ <dd id="CombinedParameterizedAgg.as_" class="function"><a href="#Expression.as_">as_</a></dd>
+ <dd id="CombinedParameterizedAgg.isin" class="function"><a href="#Expression.isin">isin</a></dd>
+ <dd id="CombinedParameterizedAgg.between" class="function"><a href="#Expression.between">between</a></dd>
+ <dd id="CombinedParameterizedAgg.is_" class="function"><a href="#Expression.is_">is_</a></dd>
+ <dd id="CombinedParameterizedAgg.like" class="function"><a href="#Expression.like">like</a></dd>
+ <dd id="CombinedParameterizedAgg.ilike" class="function"><a href="#Expression.ilike">ilike</a></dd>
+ <dd id="CombinedParameterizedAgg.eq" class="function"><a href="#Expression.eq">eq</a></dd>
+ <dd id="CombinedParameterizedAgg.neq" class="function"><a href="#Expression.neq">neq</a></dd>
+ <dd id="CombinedParameterizedAgg.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
+ <dd id="CombinedParameterizedAgg.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="CombinedParameterizedAgg.desc" class="function"><a href="#Expression.desc">desc</a></dd>
+
+ </div>
+ <div><dt><a href="#Func">Func</a></dt>
+ <dd id="CombinedParameterizedAgg.is_var_len_args" class="variable"><a href="#Func.is_var_len_args">is_var_len_args</a></dd>
+ <dd id="CombinedParameterizedAgg.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
+ <dd id="CombinedParameterizedAgg.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
+ <dd id="CombinedParameterizedAgg.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
+ <dd id="CombinedParameterizedAgg.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
+
+ </div>
+ </dl>
+ </div>
+ </section>
<section id="Hll">
<input id="Hll-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
@@ -55926,9 +59042,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-4298"><a href="#Hll-4298"><span class="linenos">4298</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-4299"><a href="#Hll-4299"><span class="linenos">4299</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4300"><a href="#Hll-4300"><span class="linenos">4300</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-4352"><a href="#Hll-4352"><span class="linenos">4352</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-4353"><a href="#Hll-4353"><span class="linenos">4353</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4354"><a href="#Hll-4354"><span class="linenos">4354</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -55995,6 +59111,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Hll.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Hll.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Hll.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Hll.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Hll.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Hll.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Hll.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -56015,6 +59132,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Hll.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Hll.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Hll.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Hll.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Hll.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Hll.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Hll.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -56036,6 +59154,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Hll.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Hll.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Hll.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Hll.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -56059,9 +59178,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#ApproxDistinct"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ApproxDistinct-4303"><a href="#ApproxDistinct-4303"><span class="linenos">4303</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-4304"><a href="#ApproxDistinct-4304"><span class="linenos">4304</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;accuracy&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="ApproxDistinct-4305"><a href="#ApproxDistinct-4305"><span class="linenos">4305</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;APPROX_DISTINCT&quot;</span><span class="p">,</span> <span class="s2">&quot;APPROX_COUNT_DISTINCT&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ApproxDistinct-4357"><a href="#ApproxDistinct-4357"><span class="linenos">4357</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-4358"><a href="#ApproxDistinct-4358"><span class="linenos">4358</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;accuracy&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="ApproxDistinct-4359"><a href="#ApproxDistinct-4359"><span class="linenos">4359</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;APPROX_DISTINCT&quot;</span><span class="p">,</span> <span class="s2">&quot;APPROX_COUNT_DISTINCT&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -56116,6 +59235,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ApproxDistinct.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ApproxDistinct.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="ApproxDistinct.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="ApproxDistinct.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="ApproxDistinct.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="ApproxDistinct.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ApproxDistinct.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -56136,6 +59256,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ApproxDistinct.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ApproxDistinct.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ApproxDistinct.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="ApproxDistinct.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="ApproxDistinct.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ApproxDistinct.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ApproxDistinct.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -56157,6 +59278,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ApproxDistinct.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="ApproxDistinct.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="ApproxDistinct.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="ApproxDistinct.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -56181,9 +59303,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-4308"><a href="#Array-4308"><span class="linenos">4308</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-4309"><a href="#Array-4309"><span class="linenos">4309</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-4310"><a href="#Array-4310"><span class="linenos">4310</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-4362"><a href="#Array-4362"><span class="linenos">4362</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-4363"><a href="#Array-4363"><span class="linenos">4363</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-4364"><a href="#Array-4364"><span class="linenos">4364</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -56250,6 +59372,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Array.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Array.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Array.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Array.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Array.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Array.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Array.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -56270,6 +59393,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Array.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Array.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Array.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Array.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Array.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Array.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Array.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -56291,6 +59415,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Array.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Array.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Array.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Array.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -56303,6 +59428,119 @@ name is set to the expression's class name transformed to snake case.</li>
</dl>
</div>
</section>
+ <section id="ToArray">
+ <input id="ToArray-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">ToArray</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
+
+ <label class="view-source-button" for="ToArray-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#ToArray"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ToArray-4368"><a href="#ToArray-4368"><span class="linenos">4368</span></a><span class="k">class</span> <span class="nc">ToArray</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="ToArray-4369"><a href="#ToArray-4369"><span class="linenos">4369</span></a> <span class="k">pass</span>
+</span></pre></div>
+
+
+
+
+ <div id="ToArray.key" class="classattr">
+ <div class="attr variable">
+ <span class="name">key</span> =
+<span class="default_value">&#39;toarray&#39;</span>
+
+
+ </div>
+ <a class="headerlink" href="#ToArray.key"></a>
+
+
+
+ </div>
+ <div class="inherited">
+ <h5>Inherited Members</h5>
+ <dl>
+ <div><dt><a href="#Expression">Expression</a></dt>
+ <dd id="ToArray.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
+ <dd id="ToArray.arg_types" class="variable"><a href="#Expression.arg_types">arg_types</a></dd>
+ <dd id="ToArray.args" class="variable"><a href="#Expression.args">args</a></dd>
+ <dd id="ToArray.parent" class="variable"><a href="#Expression.parent">parent</a></dd>
+ <dd id="ToArray.arg_key" class="variable"><a href="#Expression.arg_key">arg_key</a></dd>
+ <dd id="ToArray.comments" class="variable"><a href="#Expression.comments">comments</a></dd>
+ <dd id="ToArray.hashable_args" class="variable"><a href="#Expression.hashable_args">hashable_args</a></dd>
+ <dd id="ToArray.this" class="variable"><a href="#Expression.this">this</a></dd>
+ <dd id="ToArray.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
+ <dd id="ToArray.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
+ <dd id="ToArray.text" class="function"><a href="#Expression.text">text</a></dd>
+ <dd id="ToArray.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
+ <dd id="ToArray.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
+ <dd id="ToArray.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
+ <dd id="ToArray.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
+ <dd id="ToArray.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="ToArray.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
+ <dd id="ToArray.name" class="variable"><a href="#Expression.name">name</a></dd>
+ <dd id="ToArray.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
+ <dd id="ToArray.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
+ <dd id="ToArray.type" class="variable"><a href="#Expression.type">type</a></dd>
+ <dd id="ToArray.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="ToArray.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
+ <dd id="ToArray.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
+ <dd id="ToArray.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="ToArray.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
+ <dd id="ToArray.append" class="function"><a href="#Expression.append">append</a></dd>
+ <dd id="ToArray.set" class="function"><a href="#Expression.set">set</a></dd>
+ <dd id="ToArray.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
+ <dd id="ToArray.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
+ <dd id="ToArray.find" class="function"><a href="#Expression.find">find</a></dd>
+ <dd id="ToArray.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
+ <dd id="ToArray.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
+ <dd id="ToArray.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
+ <dd id="ToArray.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
+ <dd id="ToArray.root" class="function"><a href="#Expression.root">root</a></dd>
+ <dd id="ToArray.walk" class="function"><a href="#Expression.walk">walk</a></dd>
+ <dd id="ToArray.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
+ <dd id="ToArray.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
+ <dd id="ToArray.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
+ <dd id="ToArray.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
+ <dd id="ToArray.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
+ <dd id="ToArray.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="ToArray.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
+ <dd id="ToArray.sql" class="function"><a href="#Expression.sql">sql</a></dd>
+ <dd id="ToArray.transform" class="function"><a href="#Expression.transform">transform</a></dd>
+ <dd id="ToArray.replace" class="function"><a href="#Expression.replace">replace</a></dd>
+ <dd id="ToArray.pop" class="function"><a href="#Expression.pop">pop</a></dd>
+ <dd id="ToArray.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
+ <dd id="ToArray.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
+ <dd id="ToArray.dump" class="function"><a href="#Expression.dump">dump</a></dd>
+ <dd id="ToArray.load" class="function"><a href="#Expression.load">load</a></dd>
+ <dd id="ToArray.and_" class="function"><a href="#Expression.and_">and_</a></dd>
+ <dd id="ToArray.or_" class="function"><a href="#Expression.or_">or_</a></dd>
+ <dd id="ToArray.not_" class="function"><a href="#Expression.not_">not_</a></dd>
+ <dd id="ToArray.as_" class="function"><a href="#Expression.as_">as_</a></dd>
+ <dd id="ToArray.isin" class="function"><a href="#Expression.isin">isin</a></dd>
+ <dd id="ToArray.between" class="function"><a href="#Expression.between">between</a></dd>
+ <dd id="ToArray.is_" class="function"><a href="#Expression.is_">is_</a></dd>
+ <dd id="ToArray.like" class="function"><a href="#Expression.like">like</a></dd>
+ <dd id="ToArray.ilike" class="function"><a href="#Expression.ilike">ilike</a></dd>
+ <dd id="ToArray.eq" class="function"><a href="#Expression.eq">eq</a></dd>
+ <dd id="ToArray.neq" class="function"><a href="#Expression.neq">neq</a></dd>
+ <dd id="ToArray.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
+ <dd id="ToArray.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="ToArray.desc" class="function"><a href="#Expression.desc">desc</a></dd>
+
+ </div>
+ <div><dt><a href="#Func">Func</a></dt>
+ <dd id="ToArray.is_var_len_args" class="variable"><a href="#Func.is_var_len_args">is_var_len_args</a></dd>
+ <dd id="ToArray.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
+ <dd id="ToArray.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
+ <dd id="ToArray.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
+ <dd id="ToArray.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
+
+ </div>
+ </dl>
+ </div>
+ </section>
<section id="ToChar">
<input id="ToChar-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
@@ -56314,8 +59552,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-4315"><a href="#ToChar-4315"><span class="linenos">4315</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-4316"><a href="#ToChar-4316"><span class="linenos">4316</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;nlsparam&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ToChar-4374"><a href="#ToChar-4374"><span class="linenos">4374</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-4375"><a href="#ToChar-4375"><span class="linenos">4375</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;nlsparam&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -56370,6 +59608,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ToChar.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ToChar.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="ToChar.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="ToChar.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="ToChar.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="ToChar.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ToChar.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -56390,6 +59629,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ToChar.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ToChar.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ToChar.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="ToChar.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="ToChar.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ToChar.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ToChar.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -56411,6 +59651,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ToChar.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="ToChar.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="ToChar.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="ToChar.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -56435,8 +59676,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-4319"><a href="#GenerateSeries-4319"><span class="linenos">4319</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-4320"><a href="#GenerateSeries-4320"><span class="linenos">4320</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-4378"><a href="#GenerateSeries-4378"><span class="linenos">4378</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-4379"><a href="#GenerateSeries-4379"><span class="linenos">4379</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>
@@ -56491,6 +59732,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="GenerateSeries.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="GenerateSeries.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="GenerateSeries.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="GenerateSeries.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="GenerateSeries.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="GenerateSeries.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="GenerateSeries.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -56511,6 +59753,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="GenerateSeries.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="GenerateSeries.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="GenerateSeries.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="GenerateSeries.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="GenerateSeries.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="GenerateSeries.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="GenerateSeries.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -56532,6 +59775,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="GenerateSeries.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="GenerateSeries.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="GenerateSeries.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="GenerateSeries.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -56556,8 +59800,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-4323"><a href="#ArrayAgg-4323"><span class="linenos">4323</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-4324"><a href="#ArrayAgg-4324"><span class="linenos">4324</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayAgg-4382"><a href="#ArrayAgg-4382"><span class="linenos">4382</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-4383"><a href="#ArrayAgg-4383"><span class="linenos">4383</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -56601,6 +59845,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayAgg.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ArrayAgg.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="ArrayAgg.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="ArrayAgg.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="ArrayAgg.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="ArrayAgg.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ArrayAgg.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -56621,6 +59866,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayAgg.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ArrayAgg.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ArrayAgg.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="ArrayAgg.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="ArrayAgg.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ArrayAgg.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ArrayAgg.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -56642,6 +59888,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayAgg.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="ArrayAgg.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="ArrayAgg.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="ArrayAgg.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -56666,8 +59913,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#ArrayUniqueAgg"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayUniqueAgg-4327"><a href="#ArrayUniqueAgg-4327"><span class="linenos">4327</span></a><span class="k">class</span> <span class="nc">ArrayUniqueAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="ArrayUniqueAgg-4328"><a href="#ArrayUniqueAgg-4328"><span class="linenos">4328</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayUniqueAgg-4386"><a href="#ArrayUniqueAgg-4386"><span class="linenos">4386</span></a><span class="k">class</span> <span class="nc">ArrayUniqueAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="ArrayUniqueAgg-4387"><a href="#ArrayUniqueAgg-4387"><span class="linenos">4387</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -56711,6 +59958,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayUniqueAgg.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ArrayUniqueAgg.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="ArrayUniqueAgg.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="ArrayUniqueAgg.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="ArrayUniqueAgg.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="ArrayUniqueAgg.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ArrayUniqueAgg.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -56731,6 +59979,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayUniqueAgg.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ArrayUniqueAgg.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ArrayUniqueAgg.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="ArrayUniqueAgg.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="ArrayUniqueAgg.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ArrayUniqueAgg.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ArrayUniqueAgg.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -56752,6 +60001,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayUniqueAgg.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="ArrayUniqueAgg.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="ArrayUniqueAgg.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="ArrayUniqueAgg.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -56776,8 +60026,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-4331"><a href="#ArrayAll-4331"><span class="linenos">4331</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-4332"><a href="#ArrayAll-4332"><span class="linenos">4332</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><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-4390"><a href="#ArrayAll-4390"><span class="linenos">4390</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-4391"><a href="#ArrayAll-4391"><span class="linenos">4391</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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>
@@ -56832,6 +60082,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayAll.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ArrayAll.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="ArrayAll.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="ArrayAll.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="ArrayAll.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="ArrayAll.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ArrayAll.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -56852,6 +60103,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayAll.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ArrayAll.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ArrayAll.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="ArrayAll.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="ArrayAll.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ArrayAll.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ArrayAll.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -56873,6 +60125,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayAll.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="ArrayAll.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="ArrayAll.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="ArrayAll.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -56897,8 +60150,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-4335"><a href="#ArrayAny-4335"><span class="linenos">4335</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-4336"><a href="#ArrayAny-4336"><span class="linenos">4336</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><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-4394"><a href="#ArrayAny-4394"><span class="linenos">4394</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-4395"><a href="#ArrayAny-4395"><span class="linenos">4395</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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>
@@ -56953,6 +60206,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayAny.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ArrayAny.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="ArrayAny.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="ArrayAny.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="ArrayAny.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="ArrayAny.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ArrayAny.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -56973,6 +60227,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayAny.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ArrayAny.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ArrayAny.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="ArrayAny.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="ArrayAny.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ArrayAny.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ArrayAny.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -56994,6 +60249,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayAny.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="ArrayAny.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="ArrayAny.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="ArrayAny.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -57018,10 +60274,10 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#ArrayConcat"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayConcat-4339"><a href="#ArrayConcat-4339"><span class="linenos">4339</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-4340"><a href="#ArrayConcat-4340"><span class="linenos">4340</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;ARRAY_CONCAT&quot;</span><span class="p">,</span> <span class="s2">&quot;ARRAY_CAT&quot;</span><span class="p">]</span>
-</span><span id="ArrayConcat-4341"><a href="#ArrayConcat-4341"><span class="linenos">4341</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4342"><a href="#ArrayConcat-4342"><span class="linenos">4342</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-4398"><a href="#ArrayConcat-4398"><span class="linenos">4398</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-4399"><a href="#ArrayConcat-4399"><span class="linenos">4399</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;ARRAY_CONCAT&quot;</span><span class="p">,</span> <span class="s2">&quot;ARRAY_CAT&quot;</span><span class="p">]</span>
+</span><span id="ArrayConcat-4400"><a href="#ArrayConcat-4400"><span class="linenos">4400</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4401"><a href="#ArrayConcat-4401"><span class="linenos">4401</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -57088,6 +60344,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayConcat.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ArrayConcat.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="ArrayConcat.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="ArrayConcat.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="ArrayConcat.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="ArrayConcat.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ArrayConcat.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -57108,6 +60365,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayConcat.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ArrayConcat.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ArrayConcat.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="ArrayConcat.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="ArrayConcat.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ArrayConcat.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ArrayConcat.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -57129,6 +60387,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayConcat.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="ArrayConcat.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="ArrayConcat.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="ArrayConcat.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -57152,8 +60411,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-4345"><a href="#ArrayContains-4345"><span class="linenos">4345</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-4346"><a href="#ArrayContains-4346"><span class="linenos">4346</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayContains-4404"><a href="#ArrayContains-4404"><span class="linenos">4404</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-4405"><a href="#ArrayContains-4405"><span class="linenos">4405</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -57196,6 +60455,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayContains.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ArrayContains.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="ArrayContains.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="ArrayContains.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="ArrayContains.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="ArrayContains.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ArrayContains.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -57216,6 +60476,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayContains.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ArrayContains.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ArrayContains.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="ArrayContains.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="ArrayContains.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ArrayContains.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ArrayContains.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -57237,6 +60498,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayContains.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="ArrayContains.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="ArrayContains.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="ArrayContains.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Binary">Binary</a></dt>
@@ -57267,8 +60529,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-4349"><a href="#ArrayContained-4349"><span class="linenos">4349</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-4350"><a href="#ArrayContained-4350"><span class="linenos">4350</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayContained-4408"><a href="#ArrayContained-4408"><span class="linenos">4408</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-4409"><a href="#ArrayContained-4409"><span class="linenos">4409</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -57311,6 +60573,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayContained.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ArrayContained.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="ArrayContained.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="ArrayContained.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="ArrayContained.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="ArrayContained.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ArrayContained.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -57331,6 +60594,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayContained.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ArrayContained.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ArrayContained.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="ArrayContained.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="ArrayContained.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ArrayContained.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ArrayContained.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -57352,6 +60616,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayContained.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="ArrayContained.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="ArrayContained.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="ArrayContained.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Binary">Binary</a></dt>
@@ -57374,9 +60639,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-4353"><a href="#ArrayFilter-4353"><span class="linenos">4353</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-4354"><a href="#ArrayFilter-4354"><span class="linenos">4354</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-4355"><a href="#ArrayFilter-4355"><span class="linenos">4355</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-4412"><a href="#ArrayFilter-4412"><span class="linenos">4412</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-4413"><a href="#ArrayFilter-4413"><span class="linenos">4413</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-4414"><a href="#ArrayFilter-4414"><span class="linenos">4414</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>
@@ -57431,6 +60696,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayFilter.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ArrayFilter.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="ArrayFilter.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="ArrayFilter.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="ArrayFilter.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="ArrayFilter.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ArrayFilter.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -57451,6 +60717,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayFilter.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ArrayFilter.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ArrayFilter.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="ArrayFilter.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="ArrayFilter.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ArrayFilter.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ArrayFilter.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -57472,6 +60739,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayFilter.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="ArrayFilter.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="ArrayFilter.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="ArrayFilter.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -57496,8 +60764,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-4358"><a href="#ArrayJoin-4358"><span class="linenos">4358</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-4359"><a href="#ArrayJoin-4359"><span class="linenos">4359</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-4417"><a href="#ArrayJoin-4417"><span class="linenos">4417</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-4418"><a href="#ArrayJoin-4418"><span class="linenos">4418</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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>
@@ -57552,6 +60820,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayJoin.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ArrayJoin.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="ArrayJoin.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="ArrayJoin.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="ArrayJoin.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="ArrayJoin.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ArrayJoin.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -57572,6 +60841,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayJoin.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ArrayJoin.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ArrayJoin.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="ArrayJoin.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="ArrayJoin.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ArrayJoin.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ArrayJoin.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -57593,6 +60863,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayJoin.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="ArrayJoin.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="ArrayJoin.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="ArrayJoin.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -57617,8 +60888,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-4362"><a href="#ArraySize-4362"><span class="linenos">4362</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-4363"><a href="#ArraySize-4363"><span class="linenos">4363</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-4421"><a href="#ArraySize-4421"><span class="linenos">4421</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-4422"><a href="#ArraySize-4422"><span class="linenos">4422</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -57673,6 +60944,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArraySize.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ArraySize.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="ArraySize.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="ArraySize.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="ArraySize.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="ArraySize.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ArraySize.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -57693,6 +60965,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArraySize.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ArraySize.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ArraySize.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="ArraySize.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="ArraySize.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ArraySize.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ArraySize.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -57714,6 +60987,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArraySize.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="ArraySize.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="ArraySize.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="ArraySize.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -57738,8 +61012,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-4366"><a href="#ArraySort-4366"><span class="linenos">4366</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-4367"><a href="#ArraySort-4367"><span class="linenos">4367</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-4425"><a href="#ArraySort-4425"><span class="linenos">4425</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-4426"><a href="#ArraySort-4426"><span class="linenos">4426</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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>
@@ -57794,6 +61068,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArraySort.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ArraySort.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="ArraySort.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="ArraySort.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="ArraySort.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="ArraySort.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ArraySort.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -57814,6 +61089,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArraySort.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ArraySort.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ArraySort.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="ArraySort.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="ArraySort.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ArraySort.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ArraySort.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -57835,6 +61111,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArraySort.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="ArraySort.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="ArraySort.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="ArraySort.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -57859,8 +61136,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-4370"><a href="#ArraySum-4370"><span class="linenos">4370</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-4371"><a href="#ArraySum-4371"><span class="linenos">4371</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ArraySum-4429"><a href="#ArraySum-4429"><span class="linenos">4429</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-4430"><a href="#ArraySum-4430"><span class="linenos">4430</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -57904,6 +61181,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArraySum.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ArraySum.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="ArraySum.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="ArraySum.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="ArraySum.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="ArraySum.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ArraySum.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -57924,6 +61202,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArraySum.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ArraySum.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ArraySum.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="ArraySum.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="ArraySum.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ArraySum.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ArraySum.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -57945,6 +61224,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArraySum.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="ArraySum.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="ArraySum.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="ArraySum.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -57969,8 +61249,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-4374"><a href="#ArrayUnionAgg-4374"><span class="linenos">4374</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-4375"><a href="#ArrayUnionAgg-4375"><span class="linenos">4375</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayUnionAgg-4433"><a href="#ArrayUnionAgg-4433"><span class="linenos">4433</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-4434"><a href="#ArrayUnionAgg-4434"><span class="linenos">4434</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -58014,6 +61294,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayUnionAgg.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ArrayUnionAgg.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="ArrayUnionAgg.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="ArrayUnionAgg.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="ArrayUnionAgg.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="ArrayUnionAgg.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ArrayUnionAgg.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -58034,6 +61315,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayUnionAgg.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ArrayUnionAgg.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ArrayUnionAgg.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="ArrayUnionAgg.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="ArrayUnionAgg.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ArrayUnionAgg.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ArrayUnionAgg.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -58055,6 +61337,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayUnionAgg.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="ArrayUnionAgg.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="ArrayUnionAgg.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="ArrayUnionAgg.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -58079,8 +61362,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-4378"><a href="#Avg-4378"><span class="linenos">4378</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-4379"><a href="#Avg-4379"><span class="linenos">4379</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Avg-4437"><a href="#Avg-4437"><span class="linenos">4437</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-4438"><a href="#Avg-4438"><span class="linenos">4438</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -58124,6 +61407,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Avg.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Avg.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Avg.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Avg.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Avg.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Avg.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Avg.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -58144,6 +61428,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Avg.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Avg.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Avg.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Avg.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Avg.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Avg.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Avg.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -58165,6 +61450,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Avg.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Avg.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Avg.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Avg.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -58189,8 +61475,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-4382"><a href="#AnyValue-4382"><span class="linenos">4382</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-4383"><a href="#AnyValue-4383"><span class="linenos">4383</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;having&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;max&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;ignore_nulls&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="AnyValue-4441"><a href="#AnyValue-4441"><span class="linenos">4441</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-4442"><a href="#AnyValue-4442"><span class="linenos">4442</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;having&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;max&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;ignore_nulls&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -58245,6 +61531,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="AnyValue.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="AnyValue.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="AnyValue.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="AnyValue.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="AnyValue.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="AnyValue.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="AnyValue.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -58265,6 +61552,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="AnyValue.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="AnyValue.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="AnyValue.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="AnyValue.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="AnyValue.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="AnyValue.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="AnyValue.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -58286,6 +61574,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="AnyValue.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="AnyValue.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="AnyValue.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="AnyValue.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -58310,8 +61599,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#First"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="First-4386"><a href="#First-4386"><span class="linenos">4386</span></a><span class="k">class</span> <span class="nc">First</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="First-4387"><a href="#First-4387"><span class="linenos">4387</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;ignore_nulls&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="First-4445"><a href="#First-4445"><span class="linenos">4445</span></a><span class="k">class</span> <span class="nc">First</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="First-4446"><a href="#First-4446"><span class="linenos">4446</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;ignore_nulls&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -58366,6 +61655,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="First.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="First.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="First.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="First.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="First.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="First.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="First.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -58386,6 +61676,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="First.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="First.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="First.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="First.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="First.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="First.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="First.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -58407,6 +61698,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="First.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="First.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="First.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="First.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -58431,8 +61723,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Last"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Last-4390"><a href="#Last-4390"><span class="linenos">4390</span></a><span class="k">class</span> <span class="nc">Last</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Last-4391"><a href="#Last-4391"><span class="linenos">4391</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;ignore_nulls&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Last-4449"><a href="#Last-4449"><span class="linenos">4449</span></a><span class="k">class</span> <span class="nc">Last</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Last-4450"><a href="#Last-4450"><span class="linenos">4450</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;ignore_nulls&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -58487,6 +61779,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Last.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Last.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Last.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Last.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Last.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Last.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Last.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -58507,6 +61800,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Last.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Last.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Last.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Last.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Last.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Last.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Last.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -58528,6 +61822,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Last.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Last.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Last.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Last.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -58552,24 +61847,24 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Case"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Case-4394"><a href="#Case-4394"><span class="linenos">4394</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-4395"><a href="#Case-4395"><span class="linenos">4395</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;ifs&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;default&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="Case-4396"><a href="#Case-4396"><span class="linenos">4396</span></a>
-</span><span id="Case-4397"><a href="#Case-4397"><span class="linenos">4397</span></a> <span class="k">def</span> <span class="nf">when</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">condition</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">then</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Case</span><span class="p">:</span>
-</span><span id="Case-4398"><a href="#Case-4398"><span class="linenos">4398</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
-</span><span id="Case-4399"><a href="#Case-4399"><span class="linenos">4399</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
-</span><span id="Case-4400"><a href="#Case-4400"><span class="linenos">4400</span></a> <span class="s2">&quot;ifs&quot;</span><span class="p">,</span>
-</span><span id="Case-4401"><a href="#Case-4401"><span class="linenos">4401</span></a> <span class="n">If</span><span class="p">(</span>
-</span><span id="Case-4402"><a href="#Case-4402"><span class="linenos">4402</span></a> <span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">condition</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
-</span><span id="Case-4403"><a href="#Case-4403"><span class="linenos">4403</span></a> <span class="n">true</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">then</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
-</span><span id="Case-4404"><a href="#Case-4404"><span class="linenos">4404</span></a> <span class="p">),</span>
-</span><span id="Case-4405"><a href="#Case-4405"><span class="linenos">4405</span></a> <span class="p">)</span>
-</span><span id="Case-4406"><a href="#Case-4406"><span class="linenos">4406</span></a> <span class="k">return</span> <span class="n">instance</span>
-</span><span id="Case-4407"><a href="#Case-4407"><span class="linenos">4407</span></a>
-</span><span id="Case-4408"><a href="#Case-4408"><span class="linenos">4408</span></a> <span class="k">def</span> <span class="nf">else_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">condition</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Case</span><span class="p">:</span>
-</span><span id="Case-4409"><a href="#Case-4409"><span class="linenos">4409</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
-</span><span id="Case-4410"><a href="#Case-4410"><span class="linenos">4410</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;default&quot;</span><span class="p">,</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">condition</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
-</span><span id="Case-4411"><a href="#Case-4411"><span class="linenos">4411</span></a> <span class="k">return</span> <span class="n">instance</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Case-4453"><a href="#Case-4453"><span class="linenos">4453</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-4454"><a href="#Case-4454"><span class="linenos">4454</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;ifs&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;default&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="Case-4455"><a href="#Case-4455"><span class="linenos">4455</span></a>
+</span><span id="Case-4456"><a href="#Case-4456"><span class="linenos">4456</span></a> <span class="k">def</span> <span class="nf">when</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">condition</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">then</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Case</span><span class="p">:</span>
+</span><span id="Case-4457"><a href="#Case-4457"><span class="linenos">4457</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
+</span><span id="Case-4458"><a href="#Case-4458"><span class="linenos">4458</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
+</span><span id="Case-4459"><a href="#Case-4459"><span class="linenos">4459</span></a> <span class="s2">&quot;ifs&quot;</span><span class="p">,</span>
+</span><span id="Case-4460"><a href="#Case-4460"><span class="linenos">4460</span></a> <span class="n">If</span><span class="p">(</span>
+</span><span id="Case-4461"><a href="#Case-4461"><span class="linenos">4461</span></a> <span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">condition</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
+</span><span id="Case-4462"><a href="#Case-4462"><span class="linenos">4462</span></a> <span class="n">true</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">then</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
+</span><span id="Case-4463"><a href="#Case-4463"><span class="linenos">4463</span></a> <span class="p">),</span>
+</span><span id="Case-4464"><a href="#Case-4464"><span class="linenos">4464</span></a> <span class="p">)</span>
+</span><span id="Case-4465"><a href="#Case-4465"><span class="linenos">4465</span></a> <span class="k">return</span> <span class="n">instance</span>
+</span><span id="Case-4466"><a href="#Case-4466"><span class="linenos">4466</span></a>
+</span><span id="Case-4467"><a href="#Case-4467"><span class="linenos">4467</span></a> <span class="k">def</span> <span class="nf">else_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">condition</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Case</span><span class="p">:</span>
+</span><span id="Case-4468"><a href="#Case-4468"><span class="linenos">4468</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
+</span><span id="Case-4469"><a href="#Case-4469"><span class="linenos">4469</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;default&quot;</span><span class="p">,</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">condition</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
+</span><span id="Case-4470"><a href="#Case-4470"><span class="linenos">4470</span></a> <span class="k">return</span> <span class="n">instance</span>
</span></pre></div>
@@ -58598,16 +61893,16 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Case.when"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Case.when-4397"><a href="#Case.when-4397"><span class="linenos">4397</span></a> <span class="k">def</span> <span class="nf">when</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">condition</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">then</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Case</span><span class="p">:</span>
-</span><span id="Case.when-4398"><a href="#Case.when-4398"><span class="linenos">4398</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
-</span><span id="Case.when-4399"><a href="#Case.when-4399"><span class="linenos">4399</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
-</span><span id="Case.when-4400"><a href="#Case.when-4400"><span class="linenos">4400</span></a> <span class="s2">&quot;ifs&quot;</span><span class="p">,</span>
-</span><span id="Case.when-4401"><a href="#Case.when-4401"><span class="linenos">4401</span></a> <span class="n">If</span><span class="p">(</span>
-</span><span id="Case.when-4402"><a href="#Case.when-4402"><span class="linenos">4402</span></a> <span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">condition</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
-</span><span id="Case.when-4403"><a href="#Case.when-4403"><span class="linenos">4403</span></a> <span class="n">true</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">then</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
-</span><span id="Case.when-4404"><a href="#Case.when-4404"><span class="linenos">4404</span></a> <span class="p">),</span>
-</span><span id="Case.when-4405"><a href="#Case.when-4405"><span class="linenos">4405</span></a> <span class="p">)</span>
-</span><span id="Case.when-4406"><a href="#Case.when-4406"><span class="linenos">4406</span></a> <span class="k">return</span> <span class="n">instance</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Case.when-4456"><a href="#Case.when-4456"><span class="linenos">4456</span></a> <span class="k">def</span> <span class="nf">when</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">condition</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">then</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Case</span><span class="p">:</span>
+</span><span id="Case.when-4457"><a href="#Case.when-4457"><span class="linenos">4457</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
+</span><span id="Case.when-4458"><a href="#Case.when-4458"><span class="linenos">4458</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
+</span><span id="Case.when-4459"><a href="#Case.when-4459"><span class="linenos">4459</span></a> <span class="s2">&quot;ifs&quot;</span><span class="p">,</span>
+</span><span id="Case.when-4460"><a href="#Case.when-4460"><span class="linenos">4460</span></a> <span class="n">If</span><span class="p">(</span>
+</span><span id="Case.when-4461"><a href="#Case.when-4461"><span class="linenos">4461</span></a> <span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">condition</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
+</span><span id="Case.when-4462"><a href="#Case.when-4462"><span class="linenos">4462</span></a> <span class="n">true</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">then</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
+</span><span id="Case.when-4463"><a href="#Case.when-4463"><span class="linenos">4463</span></a> <span class="p">),</span>
+</span><span id="Case.when-4464"><a href="#Case.when-4464"><span class="linenos">4464</span></a> <span class="p">)</span>
+</span><span id="Case.when-4465"><a href="#Case.when-4465"><span class="linenos">4465</span></a> <span class="k">return</span> <span class="n">instance</span>
</span></pre></div>
@@ -58625,10 +61920,10 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Case.else_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Case.else_-4408"><a href="#Case.else_-4408"><span class="linenos">4408</span></a> <span class="k">def</span> <span class="nf">else_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">condition</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Case</span><span class="p">:</span>
-</span><span id="Case.else_-4409"><a href="#Case.else_-4409"><span class="linenos">4409</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
-</span><span id="Case.else_-4410"><a href="#Case.else_-4410"><span class="linenos">4410</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;default&quot;</span><span class="p">,</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">condition</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
-</span><span id="Case.else_-4411"><a href="#Case.else_-4411"><span class="linenos">4411</span></a> <span class="k">return</span> <span class="n">instance</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Case.else_-4467"><a href="#Case.else_-4467"><span class="linenos">4467</span></a> <span class="k">def</span> <span class="nf">else_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">condition</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Case</span><span class="p">:</span>
+</span><span id="Case.else_-4468"><a href="#Case.else_-4468"><span class="linenos">4468</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
+</span><span id="Case.else_-4469"><a href="#Case.else_-4469"><span class="linenos">4469</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;default&quot;</span><span class="p">,</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">condition</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
+</span><span id="Case.else_-4470"><a href="#Case.else_-4470"><span class="linenos">4470</span></a> <span class="k">return</span> <span class="n">instance</span>
</span></pre></div>
@@ -58672,6 +61967,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Case.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Case.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Case.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Case.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Case.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Case.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Case.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -58692,6 +61988,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Case.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Case.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Case.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Case.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Case.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Case.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Case.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -58713,6 +62010,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Case.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Case.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Case.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Case.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -58737,34 +62035,34 @@ 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-4414"><a href="#Cast-4414"><span class="linenos">4414</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-4415"><a href="#Cast-4415"><span class="linenos">4415</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;to&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;safe&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="Cast-4416"><a href="#Cast-4416"><span class="linenos">4416</span></a>
-</span><span id="Cast-4417"><a href="#Cast-4417"><span class="linenos">4417</span></a> <span class="nd">@property</span>
-</span><span id="Cast-4418"><a href="#Cast-4418"><span class="linenos">4418</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-4419"><a href="#Cast-4419"><span class="linenos">4419</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-4420"><a href="#Cast-4420"><span class="linenos">4420</span></a>
-</span><span id="Cast-4421"><a href="#Cast-4421"><span class="linenos">4421</span></a> <span class="nd">@property</span>
-</span><span id="Cast-4422"><a href="#Cast-4422"><span class="linenos">4422</span></a> <span class="k">def</span> <span class="nf">to</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DataType</span><span class="p">:</span>
-</span><span id="Cast-4423"><a href="#Cast-4423"><span class="linenos">4423</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-4424"><a href="#Cast-4424"><span class="linenos">4424</span></a>
-</span><span id="Cast-4425"><a href="#Cast-4425"><span class="linenos">4425</span></a> <span class="nd">@property</span>
-</span><span id="Cast-4426"><a href="#Cast-4426"><span class="linenos">4426</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Cast-4427"><a href="#Cast-4427"><span class="linenos">4427</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-4428"><a href="#Cast-4428"><span class="linenos">4428</span></a>
-</span><span id="Cast-4429"><a href="#Cast-4429"><span class="linenos">4429</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">dtypes</span><span class="p">:</span> <span class="n">DATA_TYPE</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="Cast-4430"><a href="#Cast-4430"><span class="linenos">4430</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Cast-4431"><a href="#Cast-4431"><span class="linenos">4431</span></a><span class="sd"> Checks whether this Cast&#39;s DataType matches one of the provided data types. Nested types</span>
-</span><span id="Cast-4432"><a href="#Cast-4432"><span class="linenos">4432</span></a><span class="sd"> like arrays or structs will be compared using &quot;structural equivalence&quot; semantics, so e.g.</span>
-</span><span id="Cast-4433"><a href="#Cast-4433"><span class="linenos">4433</span></a><span class="sd"> array&lt;int&gt; != array&lt;float&gt;.</span>
-</span><span id="Cast-4434"><a href="#Cast-4434"><span class="linenos">4434</span></a>
-</span><span id="Cast-4435"><a href="#Cast-4435"><span class="linenos">4435</span></a><span class="sd"> Args:</span>
-</span><span id="Cast-4436"><a href="#Cast-4436"><span class="linenos">4436</span></a><span class="sd"> dtypes: the data types to compare this Cast&#39;s DataType to.</span>
-</span><span id="Cast-4437"><a href="#Cast-4437"><span class="linenos">4437</span></a>
-</span><span id="Cast-4438"><a href="#Cast-4438"><span class="linenos">4438</span></a><span class="sd"> Returns:</span>
-</span><span id="Cast-4439"><a href="#Cast-4439"><span class="linenos">4439</span></a><span class="sd"> True, if and only if there is a type in `dtypes` which is equal to this Cast&#39;s DataType.</span>
-</span><span id="Cast-4440"><a href="#Cast-4440"><span class="linenos">4440</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Cast-4441"><a href="#Cast-4441"><span class="linenos">4441</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">to</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="o">*</span><span class="n">dtypes</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Cast-4473"><a href="#Cast-4473"><span class="linenos">4473</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-4474"><a href="#Cast-4474"><span class="linenos">4474</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;to&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;safe&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="Cast-4475"><a href="#Cast-4475"><span class="linenos">4475</span></a>
+</span><span id="Cast-4476"><a href="#Cast-4476"><span class="linenos">4476</span></a> <span class="nd">@property</span>
+</span><span id="Cast-4477"><a href="#Cast-4477"><span class="linenos">4477</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-4478"><a href="#Cast-4478"><span class="linenos">4478</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-4479"><a href="#Cast-4479"><span class="linenos">4479</span></a>
+</span><span id="Cast-4480"><a href="#Cast-4480"><span class="linenos">4480</span></a> <span class="nd">@property</span>
+</span><span id="Cast-4481"><a href="#Cast-4481"><span class="linenos">4481</span></a> <span class="k">def</span> <span class="nf">to</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DataType</span><span class="p">:</span>
+</span><span id="Cast-4482"><a href="#Cast-4482"><span class="linenos">4482</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-4483"><a href="#Cast-4483"><span class="linenos">4483</span></a>
+</span><span id="Cast-4484"><a href="#Cast-4484"><span class="linenos">4484</span></a> <span class="nd">@property</span>
+</span><span id="Cast-4485"><a href="#Cast-4485"><span class="linenos">4485</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Cast-4486"><a href="#Cast-4486"><span class="linenos">4486</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-4487"><a href="#Cast-4487"><span class="linenos">4487</span></a>
+</span><span id="Cast-4488"><a href="#Cast-4488"><span class="linenos">4488</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">dtypes</span><span class="p">:</span> <span class="n">DATA_TYPE</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="Cast-4489"><a href="#Cast-4489"><span class="linenos">4489</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Cast-4490"><a href="#Cast-4490"><span class="linenos">4490</span></a><span class="sd"> Checks whether this Cast&#39;s DataType matches one of the provided data types. Nested types</span>
+</span><span id="Cast-4491"><a href="#Cast-4491"><span class="linenos">4491</span></a><span class="sd"> like arrays or structs will be compared using &quot;structural equivalence&quot; semantics, so e.g.</span>
+</span><span id="Cast-4492"><a href="#Cast-4492"><span class="linenos">4492</span></a><span class="sd"> array&lt;int&gt; != array&lt;float&gt;.</span>
+</span><span id="Cast-4493"><a href="#Cast-4493"><span class="linenos">4493</span></a>
+</span><span id="Cast-4494"><a href="#Cast-4494"><span class="linenos">4494</span></a><span class="sd"> Args:</span>
+</span><span id="Cast-4495"><a href="#Cast-4495"><span class="linenos">4495</span></a><span class="sd"> dtypes: the data types to compare this Cast&#39;s DataType to.</span>
+</span><span id="Cast-4496"><a href="#Cast-4496"><span class="linenos">4496</span></a>
+</span><span id="Cast-4497"><a href="#Cast-4497"><span class="linenos">4497</span></a><span class="sd"> Returns:</span>
+</span><span id="Cast-4498"><a href="#Cast-4498"><span class="linenos">4498</span></a><span class="sd"> True, if and only if there is a type in `dtypes` which is equal to this Cast&#39;s DataType.</span>
+</span><span id="Cast-4499"><a href="#Cast-4499"><span class="linenos">4499</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Cast-4500"><a href="#Cast-4500"><span class="linenos">4500</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">to</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="o">*</span><span class="n">dtypes</span><span class="p">)</span>
</span></pre></div>
@@ -58783,35 +62081,56 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<div id="Cast.name" class="classattr">
- <div class="attr variable">
+ <input id="Cast.name-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">name</span><span class="annotation">: str</span>
-
+ <label class="view-source-button" for="Cast.name-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Cast.name"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Cast.name-4476"><a href="#Cast.name-4476"><span class="linenos">4476</span></a> <span class="nd">@property</span>
+</span><span id="Cast.name-4477"><a href="#Cast.name-4477"><span class="linenos">4477</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Cast.name-4478"><a href="#Cast.name-4478"><span class="linenos">4478</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span>
+</span></pre></div>
+
+
</div>
<div id="Cast.to" class="classattr">
- <div class="attr variable">
+ <input id="Cast.to-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">to</span><span class="annotation">: <a href="#DataType">DataType</a></span>
-
+ <label class="view-source-button" for="Cast.to-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Cast.to"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Cast.to-4480"><a href="#Cast.to-4480"><span class="linenos">4480</span></a> <span class="nd">@property</span>
+</span><span id="Cast.to-4481"><a href="#Cast.to-4481"><span class="linenos">4481</span></a> <span class="k">def</span> <span class="nf">to</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DataType</span><span class="p">:</span>
+</span><span id="Cast.to-4482"><a href="#Cast.to-4482"><span class="linenos">4482</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;to&quot;</span><span class="p">]</span>
+</span></pre></div>
+
+
</div>
<div id="Cast.output_name" class="classattr">
- <div class="attr variable">
+ <input id="Cast.output_name-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">output_name</span><span class="annotation">: str</span>
-
+ <label class="view-source-button" for="Cast.output_name-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Cast.output_name"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Cast.output_name-4484"><a href="#Cast.output_name-4484"><span class="linenos">4484</span></a> <span class="nd">@property</span>
+</span><span id="Cast.output_name-4485"><a href="#Cast.output_name-4485"><span class="linenos">4485</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Cast.output_name-4486"><a href="#Cast.output_name-4486"><span class="linenos">4486</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
+</span></pre></div>
+
+
<div class="docstring"><p>Name of the output column if this expression is a selection.</p>
<p>If the Expression has no output name, an empty string is returned.</p>
@@ -58845,19 +62164,19 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Cast.is_type"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Cast.is_type-4429"><a href="#Cast.is_type-4429"><span class="linenos">4429</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">dtypes</span><span class="p">:</span> <span class="n">DATA_TYPE</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="Cast.is_type-4430"><a href="#Cast.is_type-4430"><span class="linenos">4430</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Cast.is_type-4431"><a href="#Cast.is_type-4431"><span class="linenos">4431</span></a><span class="sd"> Checks whether this Cast&#39;s DataType matches one of the provided data types. Nested types</span>
-</span><span id="Cast.is_type-4432"><a href="#Cast.is_type-4432"><span class="linenos">4432</span></a><span class="sd"> like arrays or structs will be compared using &quot;structural equivalence&quot; semantics, so e.g.</span>
-</span><span id="Cast.is_type-4433"><a href="#Cast.is_type-4433"><span class="linenos">4433</span></a><span class="sd"> array&lt;int&gt; != array&lt;float&gt;.</span>
-</span><span id="Cast.is_type-4434"><a href="#Cast.is_type-4434"><span class="linenos">4434</span></a>
-</span><span id="Cast.is_type-4435"><a href="#Cast.is_type-4435"><span class="linenos">4435</span></a><span class="sd"> Args:</span>
-</span><span id="Cast.is_type-4436"><a href="#Cast.is_type-4436"><span class="linenos">4436</span></a><span class="sd"> dtypes: the data types to compare this Cast&#39;s DataType to.</span>
-</span><span id="Cast.is_type-4437"><a href="#Cast.is_type-4437"><span class="linenos">4437</span></a>
-</span><span id="Cast.is_type-4438"><a href="#Cast.is_type-4438"><span class="linenos">4438</span></a><span class="sd"> Returns:</span>
-</span><span id="Cast.is_type-4439"><a href="#Cast.is_type-4439"><span class="linenos">4439</span></a><span class="sd"> True, if and only if there is a type in `dtypes` which is equal to this Cast&#39;s DataType.</span>
-</span><span id="Cast.is_type-4440"><a href="#Cast.is_type-4440"><span class="linenos">4440</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Cast.is_type-4441"><a href="#Cast.is_type-4441"><span class="linenos">4441</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">to</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="o">*</span><span class="n">dtypes</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Cast.is_type-4488"><a href="#Cast.is_type-4488"><span class="linenos">4488</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">dtypes</span><span class="p">:</span> <span class="n">DATA_TYPE</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="Cast.is_type-4489"><a href="#Cast.is_type-4489"><span class="linenos">4489</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Cast.is_type-4490"><a href="#Cast.is_type-4490"><span class="linenos">4490</span></a><span class="sd"> Checks whether this Cast&#39;s DataType matches one of the provided data types. Nested types</span>
+</span><span id="Cast.is_type-4491"><a href="#Cast.is_type-4491"><span class="linenos">4491</span></a><span class="sd"> like arrays or structs will be compared using &quot;structural equivalence&quot; semantics, so e.g.</span>
+</span><span id="Cast.is_type-4492"><a href="#Cast.is_type-4492"><span class="linenos">4492</span></a><span class="sd"> array&lt;int&gt; != array&lt;float&gt;.</span>
+</span><span id="Cast.is_type-4493"><a href="#Cast.is_type-4493"><span class="linenos">4493</span></a>
+</span><span id="Cast.is_type-4494"><a href="#Cast.is_type-4494"><span class="linenos">4494</span></a><span class="sd"> Args:</span>
+</span><span id="Cast.is_type-4495"><a href="#Cast.is_type-4495"><span class="linenos">4495</span></a><span class="sd"> dtypes: the data types to compare this Cast&#39;s DataType to.</span>
+</span><span id="Cast.is_type-4496"><a href="#Cast.is_type-4496"><span class="linenos">4496</span></a>
+</span><span id="Cast.is_type-4497"><a href="#Cast.is_type-4497"><span class="linenos">4497</span></a><span class="sd"> Returns:</span>
+</span><span id="Cast.is_type-4498"><a href="#Cast.is_type-4498"><span class="linenos">4498</span></a><span class="sd"> True, if and only if there is a type in `dtypes` which is equal to this Cast&#39;s DataType.</span>
+</span><span id="Cast.is_type-4499"><a href="#Cast.is_type-4499"><span class="linenos">4499</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Cast.is_type-4500"><a href="#Cast.is_type-4500"><span class="linenos">4500</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">to</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="o">*</span><span class="n">dtypes</span><span class="p">)</span>
</span></pre></div>
@@ -58914,6 +62233,7 @@ array<int> != array<float>.</p>
<dd id="Cast.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Cast.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Cast.type" class="variable"><a href="#Expression.type">type</a></dd>
+ <dd id="Cast.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Cast.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Cast.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Cast.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -58934,6 +62254,7 @@ array<int> != array<float>.</p>
<dd id="Cast.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Cast.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Cast.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Cast.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Cast.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Cast.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Cast.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -58955,6 +62276,7 @@ array<int> != array<float>.</p>
<dd id="Cast.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Cast.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Cast.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Cast.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -58979,8 +62301,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TryCast"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TryCast-4444"><a href="#TryCast-4444"><span class="linenos">4444</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-4445"><a href="#TryCast-4445"><span class="linenos">4445</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TryCast-4503"><a href="#TryCast-4503"><span class="linenos">4503</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-4504"><a href="#TryCast-4504"><span class="linenos">4504</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -59020,6 +62342,7 @@ array<int> != array<float>.</p>
<dd id="TryCast.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="TryCast.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="TryCast.type" class="variable"><a href="#Expression.type">type</a></dd>
+ <dd id="TryCast.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="TryCast.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="TryCast.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="TryCast.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -59040,6 +62363,7 @@ array<int> != array<float>.</p>
<dd id="TryCast.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="TryCast.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="TryCast.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="TryCast.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="TryCast.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="TryCast.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="TryCast.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -59061,6 +62385,7 @@ array<int> != array<float>.</p>
<dd id="TryCast.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="TryCast.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="TryCast.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="TryCast.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Cast">Cast</a></dt>
@@ -59093,8 +62418,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#CastToStrType"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="CastToStrType-4448"><a href="#CastToStrType-4448"><span class="linenos">4448</span></a><span class="k">class</span> <span class="nc">CastToStrType</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="CastToStrType-4449"><a href="#CastToStrType-4449"><span class="linenos">4449</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;to&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="CastToStrType-4507"><a href="#CastToStrType-4507"><span class="linenos">4507</span></a><span class="k">class</span> <span class="nc">CastToStrType</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="CastToStrType-4508"><a href="#CastToStrType-4508"><span class="linenos">4508</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;to&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -59149,6 +62474,7 @@ array<int> != array<float>.</p>
<dd id="CastToStrType.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="CastToStrType.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="CastToStrType.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="CastToStrType.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="CastToStrType.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="CastToStrType.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="CastToStrType.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -59169,6 +62495,7 @@ array<int> != array<float>.</p>
<dd id="CastToStrType.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="CastToStrType.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="CastToStrType.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="CastToStrType.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="CastToStrType.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="CastToStrType.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="CastToStrType.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -59190,6 +62517,7 @@ array<int> != array<float>.</p>
<dd id="CastToStrType.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="CastToStrType.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="CastToStrType.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="CastToStrType.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -59214,8 +62542,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Collate"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Collate-4452"><a href="#Collate-4452"><span class="linenos">4452</span></a><span class="k">class</span> <span class="nc">Collate</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
-</span><span id="Collate-4453"><a href="#Collate-4453"><span class="linenos">4453</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Collate-4511"><a href="#Collate-4511"><span class="linenos">4511</span></a><span class="k">class</span> <span class="nc">Collate</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
+</span><span id="Collate-4512"><a href="#Collate-4512"><span class="linenos">4512</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -59258,6 +62586,7 @@ array<int> != array<float>.</p>
<dd id="Collate.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Collate.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Collate.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Collate.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Collate.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Collate.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Collate.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -59278,6 +62607,7 @@ array<int> != array<float>.</p>
<dd id="Collate.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Collate.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Collate.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Collate.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Collate.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Collate.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Collate.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -59299,6 +62629,7 @@ array<int> != array<float>.</p>
<dd id="Collate.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Collate.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Collate.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Collate.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Binary">Binary</a></dt>
@@ -59329,9 +62660,9 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Ceil"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Ceil-4456"><a href="#Ceil-4456"><span class="linenos">4456</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-4457"><a href="#Ceil-4457"><span class="linenos">4457</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4458"><a href="#Ceil-4458"><span class="linenos">4458</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-4515"><a href="#Ceil-4515"><span class="linenos">4515</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-4516"><a href="#Ceil-4516"><span class="linenos">4516</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4517"><a href="#Ceil-4517"><span class="linenos">4517</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>
@@ -59386,6 +62717,7 @@ array<int> != array<float>.</p>
<dd id="Ceil.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Ceil.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Ceil.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Ceil.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Ceil.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Ceil.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Ceil.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -59406,6 +62738,7 @@ array<int> != array<float>.</p>
<dd id="Ceil.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Ceil.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Ceil.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Ceil.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Ceil.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Ceil.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Ceil.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -59427,6 +62760,7 @@ array<int> != array<float>.</p>
<dd id="Ceil.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Ceil.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Ceil.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Ceil.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -59451,10 +62785,10 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Coalesce"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Coalesce-4461"><a href="#Coalesce-4461"><span class="linenos">4461</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-4462"><a href="#Coalesce-4462"><span class="linenos">4462</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4463"><a href="#Coalesce-4463"><span class="linenos">4463</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="Coalesce-4464"><a href="#Coalesce-4464"><span class="linenos">4464</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;COALESCE&quot;</span><span class="p">,</span> <span class="s2">&quot;IFNULL&quot;</span><span class="p">,</span> <span class="s2">&quot;NVL&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Coalesce-4520"><a href="#Coalesce-4520"><span class="linenos">4520</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-4521"><a href="#Coalesce-4521"><span class="linenos">4521</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4522"><a href="#Coalesce-4522"><span class="linenos">4522</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="Coalesce-4523"><a href="#Coalesce-4523"><span class="linenos">4523</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;COALESCE&quot;</span><span class="p">,</span> <span class="s2">&quot;IFNULL&quot;</span><span class="p">,</span> <span class="s2">&quot;NVL&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -59521,6 +62855,7 @@ array<int> != array<float>.</p>
<dd id="Coalesce.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Coalesce.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Coalesce.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Coalesce.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Coalesce.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Coalesce.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Coalesce.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -59541,6 +62876,7 @@ array<int> != array<float>.</p>
<dd id="Coalesce.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Coalesce.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Coalesce.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Coalesce.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Coalesce.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Coalesce.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Coalesce.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -59562,6 +62898,7 @@ array<int> != array<float>.</p>
<dd id="Coalesce.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Coalesce.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Coalesce.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Coalesce.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -59585,10 +62922,10 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Chr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Chr-4467"><a href="#Chr-4467"><span class="linenos">4467</span></a><span class="k">class</span> <span class="nc">Chr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Chr-4468"><a href="#Chr-4468"><span class="linenos">4468</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;charset&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="Chr-4469"><a href="#Chr-4469"><span class="linenos">4469</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="Chr-4470"><a href="#Chr-4470"><span class="linenos">4470</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;CHR&quot;</span><span class="p">,</span> <span class="s2">&quot;CHAR&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Chr-4526"><a href="#Chr-4526"><span class="linenos">4526</span></a><span class="k">class</span> <span class="nc">Chr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Chr-4527"><a href="#Chr-4527"><span class="linenos">4527</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;charset&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="Chr-4528"><a href="#Chr-4528"><span class="linenos">4528</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="Chr-4529"><a href="#Chr-4529"><span class="linenos">4529</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;CHR&quot;</span><span class="p">,</span> <span class="s2">&quot;CHAR&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -59655,6 +62992,7 @@ array<int> != array<float>.</p>
<dd id="Chr.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Chr.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Chr.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Chr.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Chr.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Chr.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Chr.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -59675,6 +63013,7 @@ array<int> != array<float>.</p>
<dd id="Chr.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Chr.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Chr.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Chr.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Chr.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Chr.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Chr.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -59696,6 +63035,7 @@ array<int> != array<float>.</p>
<dd id="Chr.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Chr.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Chr.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Chr.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -59719,9 +63059,9 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Concat"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Concat-4473"><a href="#Concat-4473"><span class="linenos">4473</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-4474"><a href="#Concat-4474"><span class="linenos">4474</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;safe&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;coalesce&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="Concat-4475"><a href="#Concat-4475"><span class="linenos">4475</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-4532"><a href="#Concat-4532"><span class="linenos">4532</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-4533"><a href="#Concat-4533"><span class="linenos">4533</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;safe&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;coalesce&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="Concat-4534"><a href="#Concat-4534"><span class="linenos">4534</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -59788,6 +63128,7 @@ array<int> != array<float>.</p>
<dd id="Concat.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Concat.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Concat.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Concat.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Concat.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Concat.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Concat.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -59808,6 +63149,7 @@ array<int> != array<float>.</p>
<dd id="Concat.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Concat.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Concat.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Concat.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Concat.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Concat.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Concat.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -59829,6 +63171,7 @@ array<int> != array<float>.</p>
<dd id="Concat.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Concat.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Concat.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Concat.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -59852,8 +63195,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#ConcatWs"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ConcatWs-4478"><a href="#ConcatWs-4478"><span class="linenos">4478</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-4479"><a href="#ConcatWs-4479"><span class="linenos">4479</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-4537"><a href="#ConcatWs-4537"><span class="linenos">4537</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-4538"><a href="#ConcatWs-4538"><span class="linenos">4538</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>
@@ -59896,6 +63239,7 @@ array<int> != array<float>.</p>
<dd id="ConcatWs.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ConcatWs.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="ConcatWs.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="ConcatWs.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="ConcatWs.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="ConcatWs.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ConcatWs.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -59916,6 +63260,7 @@ array<int> != array<float>.</p>
<dd id="ConcatWs.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ConcatWs.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ConcatWs.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="ConcatWs.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="ConcatWs.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ConcatWs.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ConcatWs.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -59937,6 +63282,7 @@ array<int> != array<float>.</p>
<dd id="ConcatWs.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="ConcatWs.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="ConcatWs.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="ConcatWs.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Concat">Concat</a></dt>
@@ -59965,9 +63311,9 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Count"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Count-4482"><a href="#Count-4482"><span class="linenos">4482</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-4483"><a href="#Count-4483"><span class="linenos">4483</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="Count-4484"><a href="#Count-4484"><span class="linenos">4484</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Count-4541"><a href="#Count-4541"><span class="linenos">4541</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-4542"><a href="#Count-4542"><span class="linenos">4542</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="Count-4543"><a href="#Count-4543"><span class="linenos">4543</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -60034,6 +63380,7 @@ array<int> != array<float>.</p>
<dd id="Count.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Count.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Count.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Count.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Count.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Count.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Count.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -60054,6 +63401,7 @@ array<int> != array<float>.</p>
<dd id="Count.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Count.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Count.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Count.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Count.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Count.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Count.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -60075,6 +63423,7 @@ array<int> != array<float>.</p>
<dd id="Count.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Count.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Count.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Count.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -60098,8 +63447,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#CountIf"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="CountIf-4487"><a href="#CountIf-4487"><span class="linenos">4487</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-4488"><a href="#CountIf-4488"><span class="linenos">4488</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="CountIf-4546"><a href="#CountIf-4546"><span class="linenos">4546</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-4547"><a href="#CountIf-4547"><span class="linenos">4547</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;COUNT_IF&quot;</span><span class="p">,</span> <span class="s2">&quot;COUNTIF&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -60143,6 +63492,7 @@ array<int> != array<float>.</p>
<dd id="CountIf.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="CountIf.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="CountIf.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="CountIf.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="CountIf.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="CountIf.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="CountIf.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -60163,6 +63513,7 @@ array<int> != array<float>.</p>
<dd id="CountIf.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="CountIf.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="CountIf.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="CountIf.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="CountIf.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="CountIf.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="CountIf.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -60184,6 +63535,7 @@ array<int> != array<float>.</p>
<dd id="CountIf.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="CountIf.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="CountIf.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="CountIf.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -60208,8 +63560,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#CurrentDate"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="CurrentDate-4491"><a href="#CurrentDate-4491"><span class="linenos">4491</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-4492"><a href="#CurrentDate-4492"><span class="linenos">4492</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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-4550"><a href="#CurrentDate-4550"><span class="linenos">4550</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-4551"><a href="#CurrentDate-4551"><span class="linenos">4551</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -60264,6 +63616,7 @@ array<int> != array<float>.</p>
<dd id="CurrentDate.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="CurrentDate.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="CurrentDate.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="CurrentDate.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="CurrentDate.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="CurrentDate.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="CurrentDate.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -60284,6 +63637,7 @@ array<int> != array<float>.</p>
<dd id="CurrentDate.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="CurrentDate.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="CurrentDate.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="CurrentDate.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="CurrentDate.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="CurrentDate.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="CurrentDate.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -60305,6 +63659,7 @@ array<int> != array<float>.</p>
<dd id="CurrentDate.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="CurrentDate.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="CurrentDate.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="CurrentDate.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -60329,8 +63684,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#CurrentDatetime"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="CurrentDatetime-4495"><a href="#CurrentDatetime-4495"><span class="linenos">4495</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-4496"><a href="#CurrentDatetime-4496"><span class="linenos">4496</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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-4554"><a href="#CurrentDatetime-4554"><span class="linenos">4554</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-4555"><a href="#CurrentDatetime-4555"><span class="linenos">4555</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -60385,6 +63740,7 @@ array<int> != array<float>.</p>
<dd id="CurrentDatetime.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="CurrentDatetime.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="CurrentDatetime.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="CurrentDatetime.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="CurrentDatetime.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="CurrentDatetime.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="CurrentDatetime.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -60405,6 +63761,7 @@ array<int> != array<float>.</p>
<dd id="CurrentDatetime.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="CurrentDatetime.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="CurrentDatetime.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="CurrentDatetime.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="CurrentDatetime.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="CurrentDatetime.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="CurrentDatetime.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -60426,6 +63783,7 @@ array<int> != array<float>.</p>
<dd id="CurrentDatetime.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="CurrentDatetime.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="CurrentDatetime.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="CurrentDatetime.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -60450,8 +63808,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#CurrentTime"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="CurrentTime-4499"><a href="#CurrentTime-4499"><span class="linenos">4499</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-4500"><a href="#CurrentTime-4500"><span class="linenos">4500</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-4558"><a href="#CurrentTime-4558"><span class="linenos">4558</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-4559"><a href="#CurrentTime-4559"><span class="linenos">4559</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -60506,6 +63864,7 @@ array<int> != array<float>.</p>
<dd id="CurrentTime.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="CurrentTime.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="CurrentTime.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="CurrentTime.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="CurrentTime.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="CurrentTime.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="CurrentTime.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -60526,6 +63885,7 @@ array<int> != array<float>.</p>
<dd id="CurrentTime.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="CurrentTime.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="CurrentTime.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="CurrentTime.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="CurrentTime.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="CurrentTime.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="CurrentTime.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -60547,6 +63907,7 @@ array<int> != array<float>.</p>
<dd id="CurrentTime.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="CurrentTime.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="CurrentTime.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="CurrentTime.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -60571,8 +63932,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#CurrentTimestamp"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="CurrentTimestamp-4503"><a href="#CurrentTimestamp-4503"><span class="linenos">4503</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-4504"><a href="#CurrentTimestamp-4504"><span class="linenos">4504</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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-4562"><a href="#CurrentTimestamp-4562"><span class="linenos">4562</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-4563"><a href="#CurrentTimestamp-4563"><span class="linenos">4563</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -60627,6 +63988,7 @@ array<int> != array<float>.</p>
<dd id="CurrentTimestamp.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="CurrentTimestamp.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="CurrentTimestamp.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="CurrentTimestamp.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="CurrentTimestamp.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="CurrentTimestamp.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="CurrentTimestamp.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -60647,6 +64009,7 @@ array<int> != array<float>.</p>
<dd id="CurrentTimestamp.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="CurrentTimestamp.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="CurrentTimestamp.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="CurrentTimestamp.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="CurrentTimestamp.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="CurrentTimestamp.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="CurrentTimestamp.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -60668,6 +64031,7 @@ array<int> != array<float>.</p>
<dd id="CurrentTimestamp.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="CurrentTimestamp.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="CurrentTimestamp.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="CurrentTimestamp.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -60692,8 +64056,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#CurrentUser"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="CurrentUser-4507"><a href="#CurrentUser-4507"><span class="linenos">4507</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-4508"><a href="#CurrentUser-4508"><span class="linenos">4508</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="CurrentUser-4566"><a href="#CurrentUser-4566"><span class="linenos">4566</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-4567"><a href="#CurrentUser-4567"><span class="linenos">4567</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -60748,6 +64112,7 @@ array<int> != array<float>.</p>
<dd id="CurrentUser.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="CurrentUser.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="CurrentUser.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="CurrentUser.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="CurrentUser.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="CurrentUser.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="CurrentUser.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -60768,6 +64133,7 @@ array<int> != array<float>.</p>
<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.to_s" class="function"><a href="#Expression.to_s">to_s</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>
@@ -60789,6 +64155,7 @@ array<int> != array<float>.</p>
<dd id="CurrentUser.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="CurrentUser.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="CurrentUser.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="CurrentUser.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -60813,8 +64180,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#DateAdd"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DateAdd-4511"><a href="#DateAdd-4511"><span class="linenos">4511</span></a><span class="k">class</span> <span class="nc">DateAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">IntervalOp</span><span class="p">):</span>
-</span><span id="DateAdd-4512"><a href="#DateAdd-4512"><span class="linenos">4512</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-4570"><a href="#DateAdd-4570"><span class="linenos">4570</span></a><span class="k">class</span> <span class="nc">DateAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">IntervalOp</span><span class="p">):</span>
+</span><span id="DateAdd-4571"><a href="#DateAdd-4571"><span class="linenos">4571</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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>
@@ -60887,6 +64254,7 @@ array<int> != array<float>.</p>
<dd id="DateAdd.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DateAdd.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="DateAdd.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="DateAdd.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="DateAdd.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="DateAdd.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DateAdd.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -60907,6 +64275,7 @@ array<int> != array<float>.</p>
<dd id="DateAdd.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DateAdd.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DateAdd.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="DateAdd.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="DateAdd.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DateAdd.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DateAdd.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -60928,6 +64297,7 @@ array<int> != array<float>.</p>
<dd id="DateAdd.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="DateAdd.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="DateAdd.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="DateAdd.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -60944,8 +64314,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#DateSub"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DateSub-4515"><a href="#DateSub-4515"><span class="linenos">4515</span></a><span class="k">class</span> <span class="nc">DateSub</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">IntervalOp</span><span class="p">):</span>
-</span><span id="DateSub-4516"><a href="#DateSub-4516"><span class="linenos">4516</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-4574"><a href="#DateSub-4574"><span class="linenos">4574</span></a><span class="k">class</span> <span class="nc">DateSub</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">IntervalOp</span><span class="p">):</span>
+</span><span id="DateSub-4575"><a href="#DateSub-4575"><span class="linenos">4575</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">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>
@@ -61018,6 +64388,7 @@ array<int> != array<float>.</p>
<dd id="DateSub.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DateSub.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="DateSub.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="DateSub.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="DateSub.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="DateSub.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DateSub.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -61038,6 +64409,7 @@ array<int> != array<float>.</p>
<dd id="DateSub.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DateSub.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DateSub.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="DateSub.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="DateSub.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DateSub.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DateSub.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -61059,6 +64431,7 @@ array<int> != array<float>.</p>
<dd id="DateSub.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="DateSub.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="DateSub.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="DateSub.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -61075,9 +64448,9 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#DateDiff"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DateDiff-4519"><a href="#DateDiff-4519"><span class="linenos">4519</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-4520"><a href="#DateDiff-4520"><span class="linenos">4520</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-4521"><a href="#DateDiff-4521"><span class="linenos">4521</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-4578"><a href="#DateDiff-4578"><span class="linenos">4578</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-4579"><a href="#DateDiff-4579"><span class="linenos">4579</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;DATEDIFF&quot;</span><span class="p">,</span> <span class="s2">&quot;DATE_DIFF&quot;</span><span class="p">]</span>
+</span><span id="DateDiff-4580"><a href="#DateDiff-4580"><span class="linenos">4580</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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>
@@ -61146,6 +64519,7 @@ array<int> != array<float>.</p>
<dd id="DateDiff.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DateDiff.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="DateDiff.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="DateDiff.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="DateDiff.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="DateDiff.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DateDiff.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -61166,6 +64540,7 @@ array<int> != array<float>.</p>
<dd id="DateDiff.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DateDiff.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DateDiff.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="DateDiff.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="DateDiff.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DateDiff.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DateDiff.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -61187,6 +64562,7 @@ array<int> != array<float>.</p>
<dd id="DateDiff.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="DateDiff.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="DateDiff.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="DateDiff.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -61203,17 +64579,54 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#DateTrunc"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DateTrunc-4524"><a href="#DateTrunc-4524"><span class="linenos">4524</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-4525"><a href="#DateTrunc-4525"><span class="linenos">4525</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="DateTrunc-4526"><a href="#DateTrunc-4526"><span class="linenos">4526</span></a>
-</span><span id="DateTrunc-4527"><a href="#DateTrunc-4527"><span class="linenos">4527</span></a> <span class="nd">@property</span>
-</span><span id="DateTrunc-4528"><a href="#DateTrunc-4528"><span class="linenos">4528</span></a> <span class="k">def</span> <span class="nf">unit</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="DateTrunc-4529"><a href="#DateTrunc-4529"><span class="linenos">4529</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;unit&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DateTrunc-4583"><a href="#DateTrunc-4583"><span class="linenos">4583</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-4584"><a href="#DateTrunc-4584"><span class="linenos">4584</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="DateTrunc-4585"><a href="#DateTrunc-4585"><span class="linenos">4585</span></a>
+</span><span id="DateTrunc-4586"><a href="#DateTrunc-4586"><span class="linenos">4586</span></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">args</span><span class="p">):</span>
+</span><span id="DateTrunc-4587"><a href="#DateTrunc-4587"><span class="linenos">4587</span></a> <span class="n">unit</span> <span class="o">=</span> <span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;unit&quot;</span><span class="p">)</span>
+</span><span id="DateTrunc-4588"><a href="#DateTrunc-4588"><span class="linenos">4588</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">unit</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="o">.</span><span class="n">VAR_LIKE</span><span class="p">):</span>
+</span><span id="DateTrunc-4589"><a href="#DateTrunc-4589"><span class="linenos">4589</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">&quot;unit&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span>
+</span><span id="DateTrunc-4590"><a href="#DateTrunc-4590"><span class="linenos">4590</span></a> <span class="p">(</span><span class="n">TimeUnit</span><span class="o">.</span><span class="n">UNABBREVIATED_UNIT_NAME</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> <span class="ow">or</span> <span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
+</span><span id="DateTrunc-4591"><a href="#DateTrunc-4591"><span class="linenos">4591</span></a> <span class="p">)</span>
+</span><span id="DateTrunc-4592"><a href="#DateTrunc-4592"><span class="linenos">4592</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">unit</span><span class="p">,</span> <span class="n">Week</span><span class="p">):</span>
+</span><span id="DateTrunc-4593"><a href="#DateTrunc-4593"><span class="linenos">4593</span></a> <span class="n">unit</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;this&quot;</span><span class="p">,</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="n">unit</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()))</span>
+</span><span id="DateTrunc-4594"><a href="#DateTrunc-4594"><span class="linenos">4594</span></a>
+</span><span id="DateTrunc-4595"><a href="#DateTrunc-4595"><span class="linenos">4595</span></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="o">**</span><span class="n">args</span><span class="p">)</span>
+</span><span id="DateTrunc-4596"><a href="#DateTrunc-4596"><span class="linenos">4596</span></a>
+</span><span id="DateTrunc-4597"><a href="#DateTrunc-4597"><span class="linenos">4597</span></a> <span class="nd">@property</span>
+</span><span id="DateTrunc-4598"><a href="#DateTrunc-4598"><span class="linenos">4598</span></a> <span class="k">def</span> <span class="nf">unit</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="DateTrunc-4599"><a href="#DateTrunc-4599"><span class="linenos">4599</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;unit&quot;</span><span class="p">]</span>
+</span></pre></div>
+
+
+
+
+ <div id="DateTrunc.__init__" class="classattr">
+ <input id="DateTrunc.__init__-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr function">
+
+ <span class="name">DateTrunc</span><span class="signature pdoc-code condensed">(<span class="param"><span class="o">**</span><span class="n">args</span></span>)</span>
+
+ <label class="view-source-button" for="DateTrunc.__init__-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#DateTrunc.__init__"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DateTrunc.__init__-4586"><a href="#DateTrunc.__init__-4586"><span class="linenos">4586</span></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">args</span><span class="p">):</span>
+</span><span id="DateTrunc.__init__-4587"><a href="#DateTrunc.__init__-4587"><span class="linenos">4587</span></a> <span class="n">unit</span> <span class="o">=</span> <span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;unit&quot;</span><span class="p">)</span>
+</span><span id="DateTrunc.__init__-4588"><a href="#DateTrunc.__init__-4588"><span class="linenos">4588</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">unit</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="o">.</span><span class="n">VAR_LIKE</span><span class="p">):</span>
+</span><span id="DateTrunc.__init__-4589"><a href="#DateTrunc.__init__-4589"><span class="linenos">4589</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">&quot;unit&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span>
+</span><span id="DateTrunc.__init__-4590"><a href="#DateTrunc.__init__-4590"><span class="linenos">4590</span></a> <span class="p">(</span><span class="n">TimeUnit</span><span class="o">.</span><span class="n">UNABBREVIATED_UNIT_NAME</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> <span class="ow">or</span> <span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
+</span><span id="DateTrunc.__init__-4591"><a href="#DateTrunc.__init__-4591"><span class="linenos">4591</span></a> <span class="p">)</span>
+</span><span id="DateTrunc.__init__-4592"><a href="#DateTrunc.__init__-4592"><span class="linenos">4592</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">unit</span><span class="p">,</span> <span class="n">Week</span><span class="p">):</span>
+</span><span id="DateTrunc.__init__-4593"><a href="#DateTrunc.__init__-4593"><span class="linenos">4593</span></a> <span class="n">unit</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;this&quot;</span><span class="p">,</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="n">unit</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()))</span>
+</span><span id="DateTrunc.__init__-4594"><a href="#DateTrunc.__init__-4594"><span class="linenos">4594</span></a>
+</span><span id="DateTrunc.__init__-4595"><a href="#DateTrunc.__init__-4595"><span class="linenos">4595</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>
+ </div>
<div id="DateTrunc.arg_types" class="classattr">
<div class="attr variable">
<span class="name">arg_types</span> =
@@ -61227,13 +64640,20 @@ array<int> != array<float>.</p>
</div>
<div id="DateTrunc.unit" class="classattr">
- <div class="attr variable">
+ <input id="DateTrunc.unit-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">unit</span><span class="annotation">: <a href="#Expression">Expression</a></span>
-
+ <label class="view-source-button" for="DateTrunc.unit-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#DateTrunc.unit"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DateTrunc.unit-4597"><a href="#DateTrunc.unit-4597"><span class="linenos">4597</span></a> <span class="nd">@property</span>
+</span><span id="DateTrunc.unit-4598"><a href="#DateTrunc.unit-4598"><span class="linenos">4598</span></a> <span class="k">def</span> <span class="nf">unit</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="DateTrunc.unit-4599"><a href="#DateTrunc.unit-4599"><span class="linenos">4599</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;unit&quot;</span><span class="p">]</span>
+</span></pre></div>
+
+
</div>
@@ -61252,9 +64672,16 @@ array<int> != array<float>.</p>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
- <div><dt><a href="#Expression">Expression</a></dt>
- <dd id="DateTrunc.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
- <dd id="DateTrunc.args" class="variable"><a href="#Expression.args">args</a></dd>
+ <div><dt><a href="#Func">Func</a></dt>
+ <dd id="DateTrunc.is_var_len_args" class="variable"><a href="#Func.is_var_len_args">is_var_len_args</a></dd>
+ <dd id="DateTrunc.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
+ <dd id="DateTrunc.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
+ <dd id="DateTrunc.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
+ <dd id="DateTrunc.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
+
+ </div>
+ <div><dt><a href="#Expression">Expression</a></dt>
+ <dd id="DateTrunc.args" class="variable"><a href="#Expression.args">args</a></dd>
<dd id="DateTrunc.parent" class="variable"><a href="#Expression.parent">parent</a></dd>
<dd id="DateTrunc.arg_key" class="variable"><a href="#Expression.arg_key">arg_key</a></dd>
<dd id="DateTrunc.comments" class="variable"><a href="#Expression.comments">comments</a></dd>
@@ -61274,6 +64701,7 @@ array<int> != array<float>.</p>
<dd id="DateTrunc.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DateTrunc.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="DateTrunc.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="DateTrunc.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="DateTrunc.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="DateTrunc.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DateTrunc.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -61294,6 +64722,7 @@ array<int> != array<float>.</p>
<dd id="DateTrunc.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DateTrunc.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DateTrunc.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="DateTrunc.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="DateTrunc.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DateTrunc.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DateTrunc.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -61315,14 +64744,7 @@ array<int> != array<float>.</p>
<dd id="DateTrunc.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="DateTrunc.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="DateTrunc.div" class="function"><a href="#Expression.div">div</a></dd>
-
- </div>
- <div><dt><a href="#Func">Func</a></dt>
- <dd id="DateTrunc.is_var_len_args" class="variable"><a href="#Func.is_var_len_args">is_var_len_args</a></dd>
- <dd id="DateTrunc.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
- <dd id="DateTrunc.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
- <dd id="DateTrunc.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
- <dd id="DateTrunc.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
+ <dd id="DateTrunc.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -61339,8 +64761,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#DatetimeAdd"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DatetimeAdd-4532"><a href="#DatetimeAdd-4532"><span class="linenos">4532</span></a><span class="k">class</span> <span class="nc">DatetimeAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">IntervalOp</span><span class="p">):</span>
-</span><span id="DatetimeAdd-4533"><a href="#DatetimeAdd-4533"><span class="linenos">4533</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-4602"><a href="#DatetimeAdd-4602"><span class="linenos">4602</span></a><span class="k">class</span> <span class="nc">DatetimeAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">IntervalOp</span><span class="p">):</span>
+</span><span id="DatetimeAdd-4603"><a href="#DatetimeAdd-4603"><span class="linenos">4603</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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>
@@ -61413,6 +64835,7 @@ array<int> != array<float>.</p>
<dd id="DatetimeAdd.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DatetimeAdd.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="DatetimeAdd.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="DatetimeAdd.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="DatetimeAdd.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="DatetimeAdd.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DatetimeAdd.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -61433,6 +64856,7 @@ array<int> != array<float>.</p>
<dd id="DatetimeAdd.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DatetimeAdd.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DatetimeAdd.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="DatetimeAdd.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="DatetimeAdd.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DatetimeAdd.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DatetimeAdd.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -61454,6 +64878,7 @@ array<int> != array<float>.</p>
<dd id="DatetimeAdd.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="DatetimeAdd.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="DatetimeAdd.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="DatetimeAdd.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -61470,8 +64895,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#DatetimeSub"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DatetimeSub-4536"><a href="#DatetimeSub-4536"><span class="linenos">4536</span></a><span class="k">class</span> <span class="nc">DatetimeSub</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">IntervalOp</span><span class="p">):</span>
-</span><span id="DatetimeSub-4537"><a href="#DatetimeSub-4537"><span class="linenos">4537</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-4606"><a href="#DatetimeSub-4606"><span class="linenos">4606</span></a><span class="k">class</span> <span class="nc">DatetimeSub</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">IntervalOp</span><span class="p">):</span>
+</span><span id="DatetimeSub-4607"><a href="#DatetimeSub-4607"><span class="linenos">4607</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">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>
@@ -61544,6 +64969,7 @@ array<int> != array<float>.</p>
<dd id="DatetimeSub.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DatetimeSub.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="DatetimeSub.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="DatetimeSub.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="DatetimeSub.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="DatetimeSub.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DatetimeSub.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -61564,6 +64990,7 @@ array<int> != array<float>.</p>
<dd id="DatetimeSub.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DatetimeSub.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DatetimeSub.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="DatetimeSub.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="DatetimeSub.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DatetimeSub.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DatetimeSub.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -61585,6 +65012,7 @@ array<int> != array<float>.</p>
<dd id="DatetimeSub.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="DatetimeSub.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="DatetimeSub.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="DatetimeSub.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -61601,8 +65029,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#DatetimeDiff"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DatetimeDiff-4540"><a href="#DatetimeDiff-4540"><span class="linenos">4540</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-4541"><a href="#DatetimeDiff-4541"><span class="linenos">4541</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span 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-4610"><a href="#DatetimeDiff-4610"><span class="linenos">4610</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-4611"><a href="#DatetimeDiff-4611"><span class="linenos">4611</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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>
@@ -61671,6 +65099,7 @@ array<int> != array<float>.</p>
<dd id="DatetimeDiff.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DatetimeDiff.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="DatetimeDiff.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="DatetimeDiff.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="DatetimeDiff.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="DatetimeDiff.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DatetimeDiff.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -61691,6 +65120,7 @@ array<int> != array<float>.</p>
<dd id="DatetimeDiff.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DatetimeDiff.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DatetimeDiff.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="DatetimeDiff.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="DatetimeDiff.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DatetimeDiff.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DatetimeDiff.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -61712,6 +65142,7 @@ array<int> != array<float>.</p>
<dd id="DatetimeDiff.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="DatetimeDiff.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="DatetimeDiff.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="DatetimeDiff.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -61728,8 +65159,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#DatetimeTrunc"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DatetimeTrunc-4544"><a href="#DatetimeTrunc-4544"><span class="linenos">4544</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-4545"><a href="#DatetimeTrunc-4545"><span class="linenos">4545</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">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-4614"><a href="#DatetimeTrunc-4614"><span class="linenos">4614</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-4615"><a href="#DatetimeTrunc-4615"><span class="linenos">4615</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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>
@@ -61798,6 +65229,7 @@ array<int> != array<float>.</p>
<dd id="DatetimeTrunc.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DatetimeTrunc.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="DatetimeTrunc.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="DatetimeTrunc.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="DatetimeTrunc.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="DatetimeTrunc.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DatetimeTrunc.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -61818,6 +65250,7 @@ array<int> != array<float>.</p>
<dd id="DatetimeTrunc.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DatetimeTrunc.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DatetimeTrunc.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="DatetimeTrunc.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="DatetimeTrunc.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DatetimeTrunc.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DatetimeTrunc.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -61839,6 +65272,7 @@ array<int> != array<float>.</p>
<dd id="DatetimeTrunc.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="DatetimeTrunc.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="DatetimeTrunc.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="DatetimeTrunc.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -61855,8 +65289,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#DayOfWeek"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DayOfWeek-4548"><a href="#DayOfWeek-4548"><span class="linenos">4548</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-4549"><a href="#DayOfWeek-4549"><span class="linenos">4549</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-4618"><a href="#DayOfWeek-4618"><span class="linenos">4618</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-4619"><a href="#DayOfWeek-4619"><span class="linenos">4619</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>
@@ -61900,6 +65334,7 @@ array<int> != array<float>.</p>
<dd id="DayOfWeek.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DayOfWeek.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="DayOfWeek.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="DayOfWeek.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="DayOfWeek.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="DayOfWeek.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DayOfWeek.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -61920,6 +65355,7 @@ array<int> != array<float>.</p>
<dd id="DayOfWeek.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DayOfWeek.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DayOfWeek.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="DayOfWeek.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="DayOfWeek.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DayOfWeek.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DayOfWeek.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -61941,6 +65377,7 @@ array<int> != array<float>.</p>
<dd id="DayOfWeek.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="DayOfWeek.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="DayOfWeek.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="DayOfWeek.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -61965,8 +65402,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#DayOfMonth"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DayOfMonth-4552"><a href="#DayOfMonth-4552"><span class="linenos">4552</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-4553"><a href="#DayOfMonth-4553"><span class="linenos">4553</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-4622"><a href="#DayOfMonth-4622"><span class="linenos">4622</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-4623"><a href="#DayOfMonth-4623"><span class="linenos">4623</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>
@@ -62010,6 +65447,7 @@ array<int> != array<float>.</p>
<dd id="DayOfMonth.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DayOfMonth.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="DayOfMonth.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="DayOfMonth.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="DayOfMonth.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="DayOfMonth.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DayOfMonth.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -62030,6 +65468,7 @@ array<int> != array<float>.</p>
<dd id="DayOfMonth.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DayOfMonth.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DayOfMonth.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="DayOfMonth.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="DayOfMonth.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DayOfMonth.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DayOfMonth.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -62051,6 +65490,7 @@ array<int> != array<float>.</p>
<dd id="DayOfMonth.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="DayOfMonth.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="DayOfMonth.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="DayOfMonth.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -62075,8 +65515,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#DayOfYear"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DayOfYear-4556"><a href="#DayOfYear-4556"><span class="linenos">4556</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-4557"><a href="#DayOfYear-4557"><span class="linenos">4557</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-4626"><a href="#DayOfYear-4626"><span class="linenos">4626</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-4627"><a href="#DayOfYear-4627"><span class="linenos">4627</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>
@@ -62120,6 +65560,7 @@ array<int> != array<float>.</p>
<dd id="DayOfYear.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DayOfYear.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="DayOfYear.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="DayOfYear.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="DayOfYear.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="DayOfYear.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DayOfYear.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -62140,6 +65581,7 @@ array<int> != array<float>.</p>
<dd id="DayOfYear.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DayOfYear.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DayOfYear.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="DayOfYear.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="DayOfYear.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DayOfYear.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DayOfYear.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -62161,6 +65603,7 @@ array<int> != array<float>.</p>
<dd id="DayOfYear.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="DayOfYear.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="DayOfYear.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="DayOfYear.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -62185,8 +65628,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#ToDays"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ToDays-4560"><a href="#ToDays-4560"><span class="linenos">4560</span></a><span class="k">class</span> <span class="nc">ToDays</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="ToDays-4561"><a href="#ToDays-4561"><span class="linenos">4561</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ToDays-4630"><a href="#ToDays-4630"><span class="linenos">4630</span></a><span class="k">class</span> <span class="nc">ToDays</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="ToDays-4631"><a href="#ToDays-4631"><span class="linenos">4631</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -62230,6 +65673,7 @@ array<int> != array<float>.</p>
<dd id="ToDays.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ToDays.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="ToDays.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="ToDays.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="ToDays.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="ToDays.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ToDays.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -62250,6 +65694,7 @@ array<int> != array<float>.</p>
<dd id="ToDays.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ToDays.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ToDays.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="ToDays.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="ToDays.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ToDays.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ToDays.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -62271,6 +65716,7 @@ array<int> != array<float>.</p>
<dd id="ToDays.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="ToDays.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="ToDays.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="ToDays.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -62295,8 +65741,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#WeekOfYear"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="WeekOfYear-4564"><a href="#WeekOfYear-4564"><span class="linenos">4564</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-4565"><a href="#WeekOfYear-4565"><span class="linenos">4565</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-4634"><a href="#WeekOfYear-4634"><span class="linenos">4634</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-4635"><a href="#WeekOfYear-4635"><span class="linenos">4635</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>
@@ -62340,6 +65786,7 @@ array<int> != array<float>.</p>
<dd id="WeekOfYear.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="WeekOfYear.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="WeekOfYear.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="WeekOfYear.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="WeekOfYear.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="WeekOfYear.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="WeekOfYear.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -62360,6 +65807,7 @@ array<int> != array<float>.</p>
<dd id="WeekOfYear.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="WeekOfYear.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="WeekOfYear.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="WeekOfYear.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="WeekOfYear.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="WeekOfYear.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="WeekOfYear.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -62381,6 +65829,7 @@ array<int> != array<float>.</p>
<dd id="WeekOfYear.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="WeekOfYear.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="WeekOfYear.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="WeekOfYear.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -62405,8 +65854,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#MonthsBetween"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="MonthsBetween-4568"><a href="#MonthsBetween-4568"><span class="linenos">4568</span></a><span class="k">class</span> <span class="nc">MonthsBetween</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="MonthsBetween-4569"><a href="#MonthsBetween-4569"><span class="linenos">4569</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;roundoff&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="MonthsBetween-4638"><a href="#MonthsBetween-4638"><span class="linenos">4638</span></a><span class="k">class</span> <span class="nc">MonthsBetween</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="MonthsBetween-4639"><a href="#MonthsBetween-4639"><span class="linenos">4639</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;roundoff&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -62461,6 +65910,7 @@ array<int> != array<float>.</p>
<dd id="MonthsBetween.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="MonthsBetween.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="MonthsBetween.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="MonthsBetween.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="MonthsBetween.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="MonthsBetween.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="MonthsBetween.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -62481,6 +65931,7 @@ array<int> != array<float>.</p>
<dd id="MonthsBetween.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="MonthsBetween.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="MonthsBetween.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="MonthsBetween.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="MonthsBetween.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="MonthsBetween.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="MonthsBetween.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -62502,6 +65953,7 @@ array<int> != array<float>.</p>
<dd id="MonthsBetween.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="MonthsBetween.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="MonthsBetween.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="MonthsBetween.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -62515,32 +65967,45 @@ array<int> != array<float>.</p>
</dl>
</div>
</section>
- <section id="LastDateOfMonth">
- <input id="LastDateOfMonth-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+ <section id="LastDay">
+ <input id="LastDay-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">LastDateOfMonth</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
+ <span class="name">LastDay</span><wbr>(<span class="base"><a href="#Func">Func</a></span>, <span class="base"><a href="#TimeUnit">TimeUnit</a></span>):
- <label class="view-source-button" for="LastDateOfMonth-view-source"><span>View Source</span></label>
+ <label class="view-source-button" for="LastDay-view-source"><span>View Source</span></label>
</div>
- <a class="headerlink" href="#LastDateOfMonth"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="LastDateOfMonth-4572"><a href="#LastDateOfMonth-4572"><span class="linenos">4572</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-4573"><a href="#LastDateOfMonth-4573"><span class="linenos">4573</span></a> <span class="k">pass</span>
+ <a class="headerlink" href="#LastDay"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="LastDay-4642"><a href="#LastDay-4642"><span class="linenos">4642</span></a><span class="k">class</span> <span class="nc">LastDay</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
+</span><span id="LastDay-4643"><a href="#LastDay-4643"><span class="linenos">4643</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;LAST_DAY&quot;</span><span class="p">,</span> <span class="s2">&quot;LAST_DAY_OF_MONTH&quot;</span><span class="p">]</span>
+</span><span id="LastDay-4644"><a href="#LastDay-4644"><span class="linenos">4644</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
- <div id="LastDateOfMonth.key" class="classattr">
+ <div id="LastDay.arg_types" class="classattr">
+ <div class="attr variable">
+ <span class="name">arg_types</span> =
+<span class="default_value">{&#39;this&#39;: True, &#39;unit&#39;: False}</span>
+
+
+ </div>
+ <a class="headerlink" href="#LastDay.arg_types"></a>
+
+
+
+ </div>
+ <div id="LastDay.key" class="classattr">
<div class="attr variable">
<span class="name">key</span> =
-<span class="default_value">&#39;lastdateofmonth&#39;</span>
+<span class="default_value">&#39;lastday&#39;</span>
</div>
- <a class="headerlink" href="#LastDateOfMonth.key"></a>
+ <a class="headerlink" href="#LastDay.key"></a>
@@ -62548,78 +66013,86 @@ array<int> != array<float>.</p>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
- <div><dt><a href="#Expression">Expression</a></dt>
- <dd id="LastDateOfMonth.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
- <dd id="LastDateOfMonth.arg_types" class="variable"><a href="#Expression.arg_types">arg_types</a></dd>
- <dd id="LastDateOfMonth.args" class="variable"><a href="#Expression.args">args</a></dd>
- <dd id="LastDateOfMonth.parent" class="variable"><a href="#Expression.parent">parent</a></dd>
- <dd id="LastDateOfMonth.arg_key" class="variable"><a href="#Expression.arg_key">arg_key</a></dd>
- <dd id="LastDateOfMonth.comments" class="variable"><a href="#Expression.comments">comments</a></dd>
- <dd id="LastDateOfMonth.hashable_args" class="variable"><a href="#Expression.hashable_args">hashable_args</a></dd>
- <dd id="LastDateOfMonth.this" class="variable"><a href="#Expression.this">this</a></dd>
- <dd id="LastDateOfMonth.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
- <dd id="LastDateOfMonth.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
- <dd id="LastDateOfMonth.text" class="function"><a href="#Expression.text">text</a></dd>
- <dd id="LastDateOfMonth.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
- <dd id="LastDateOfMonth.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
- <dd id="LastDateOfMonth.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
- <dd id="LastDateOfMonth.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
- <dd id="LastDateOfMonth.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
- <dd id="LastDateOfMonth.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
- <dd id="LastDateOfMonth.name" class="variable"><a href="#Expression.name">name</a></dd>
- <dd id="LastDateOfMonth.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
- <dd id="LastDateOfMonth.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
- <dd id="LastDateOfMonth.type" class="variable"><a href="#Expression.type">type</a></dd>
- <dd id="LastDateOfMonth.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
- <dd id="LastDateOfMonth.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
- <dd id="LastDateOfMonth.copy" class="function"><a href="#Expression.copy">copy</a></dd>
- <dd id="LastDateOfMonth.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
- <dd id="LastDateOfMonth.append" class="function"><a href="#Expression.append">append</a></dd>
- <dd id="LastDateOfMonth.set" class="function"><a href="#Expression.set">set</a></dd>
- <dd id="LastDateOfMonth.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
- <dd id="LastDateOfMonth.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
- <dd id="LastDateOfMonth.find" class="function"><a href="#Expression.find">find</a></dd>
- <dd id="LastDateOfMonth.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
- <dd id="LastDateOfMonth.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
- <dd id="LastDateOfMonth.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
- <dd id="LastDateOfMonth.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
- <dd id="LastDateOfMonth.root" class="function"><a href="#Expression.root">root</a></dd>
- <dd id="LastDateOfMonth.walk" class="function"><a href="#Expression.walk">walk</a></dd>
- <dd id="LastDateOfMonth.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
- <dd id="LastDateOfMonth.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
- <dd id="LastDateOfMonth.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
- <dd id="LastDateOfMonth.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
- <dd id="LastDateOfMonth.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
- <dd id="LastDateOfMonth.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
- <dd id="LastDateOfMonth.sql" class="function"><a href="#Expression.sql">sql</a></dd>
- <dd id="LastDateOfMonth.transform" class="function"><a href="#Expression.transform">transform</a></dd>
- <dd id="LastDateOfMonth.replace" class="function"><a href="#Expression.replace">replace</a></dd>
- <dd id="LastDateOfMonth.pop" class="function"><a href="#Expression.pop">pop</a></dd>
- <dd id="LastDateOfMonth.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
- <dd id="LastDateOfMonth.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
- <dd id="LastDateOfMonth.dump" class="function"><a href="#Expression.dump">dump</a></dd>
- <dd id="LastDateOfMonth.load" class="function"><a href="#Expression.load">load</a></dd>
- <dd id="LastDateOfMonth.and_" class="function"><a href="#Expression.and_">and_</a></dd>
- <dd id="LastDateOfMonth.or_" class="function"><a href="#Expression.or_">or_</a></dd>
- <dd id="LastDateOfMonth.not_" class="function"><a href="#Expression.not_">not_</a></dd>
- <dd id="LastDateOfMonth.as_" class="function"><a href="#Expression.as_">as_</a></dd>
- <dd id="LastDateOfMonth.isin" class="function"><a href="#Expression.isin">isin</a></dd>
- <dd id="LastDateOfMonth.between" class="function"><a href="#Expression.between">between</a></dd>
- <dd id="LastDateOfMonth.is_" class="function"><a href="#Expression.is_">is_</a></dd>
- <dd id="LastDateOfMonth.like" class="function"><a href="#Expression.like">like</a></dd>
- <dd id="LastDateOfMonth.ilike" class="function"><a href="#Expression.ilike">ilike</a></dd>
- <dd id="LastDateOfMonth.eq" class="function"><a href="#Expression.eq">eq</a></dd>
- <dd id="LastDateOfMonth.neq" class="function"><a href="#Expression.neq">neq</a></dd>
- <dd id="LastDateOfMonth.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
- <dd id="LastDateOfMonth.div" class="function"><a href="#Expression.div">div</a></dd>
+ <div><dt><a href="#TimeUnit">TimeUnit</a></dt>
+ <dd id="LastDay.__init__" class="function"><a href="#TimeUnit.__init__">TimeUnit</a></dd>
+ <dd id="LastDay.UNABBREVIATED_UNIT_NAME" class="variable"><a href="#TimeUnit.UNABBREVIATED_UNIT_NAME">UNABBREVIATED_UNIT_NAME</a></dd>
+ <dd id="LastDay.VAR_LIKE" class="variable"><a href="#TimeUnit.VAR_LIKE">VAR_LIKE</a></dd>
+ <dd id="LastDay.unit" class="variable"><a href="#TimeUnit.unit">unit</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
- <dd id="LastDateOfMonth.is_var_len_args" class="variable"><a href="#Func.is_var_len_args">is_var_len_args</a></dd>
- <dd id="LastDateOfMonth.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
- <dd id="LastDateOfMonth.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
- <dd id="LastDateOfMonth.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
- <dd id="LastDateOfMonth.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
+ <dd id="LastDay.is_var_len_args" class="variable"><a href="#Func.is_var_len_args">is_var_len_args</a></dd>
+ <dd id="LastDay.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
+ <dd id="LastDay.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
+ <dd id="LastDay.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
+ <dd id="LastDay.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
+
+ </div>
+ <div><dt><a href="#Expression">Expression</a></dt>
+ <dd id="LastDay.args" class="variable"><a href="#Expression.args">args</a></dd>
+ <dd id="LastDay.parent" class="variable"><a href="#Expression.parent">parent</a></dd>
+ <dd id="LastDay.arg_key" class="variable"><a href="#Expression.arg_key">arg_key</a></dd>
+ <dd id="LastDay.comments" class="variable"><a href="#Expression.comments">comments</a></dd>
+ <dd id="LastDay.hashable_args" class="variable"><a href="#Expression.hashable_args">hashable_args</a></dd>
+ <dd id="LastDay.this" class="variable"><a href="#Expression.this">this</a></dd>
+ <dd id="LastDay.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
+ <dd id="LastDay.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
+ <dd id="LastDay.text" class="function"><a href="#Expression.text">text</a></dd>
+ <dd id="LastDay.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
+ <dd id="LastDay.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
+ <dd id="LastDay.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
+ <dd id="LastDay.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
+ <dd id="LastDay.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="LastDay.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
+ <dd id="LastDay.name" class="variable"><a href="#Expression.name">name</a></dd>
+ <dd id="LastDay.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
+ <dd id="LastDay.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
+ <dd id="LastDay.type" class="variable"><a href="#Expression.type">type</a></dd>
+ <dd id="LastDay.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="LastDay.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
+ <dd id="LastDay.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
+ <dd id="LastDay.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="LastDay.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
+ <dd id="LastDay.append" class="function"><a href="#Expression.append">append</a></dd>
+ <dd id="LastDay.set" class="function"><a href="#Expression.set">set</a></dd>
+ <dd id="LastDay.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
+ <dd id="LastDay.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
+ <dd id="LastDay.find" class="function"><a href="#Expression.find">find</a></dd>
+ <dd id="LastDay.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
+ <dd id="LastDay.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
+ <dd id="LastDay.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
+ <dd id="LastDay.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
+ <dd id="LastDay.root" class="function"><a href="#Expression.root">root</a></dd>
+ <dd id="LastDay.walk" class="function"><a href="#Expression.walk">walk</a></dd>
+ <dd id="LastDay.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
+ <dd id="LastDay.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
+ <dd id="LastDay.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
+ <dd id="LastDay.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
+ <dd id="LastDay.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
+ <dd id="LastDay.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="LastDay.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
+ <dd id="LastDay.sql" class="function"><a href="#Expression.sql">sql</a></dd>
+ <dd id="LastDay.transform" class="function"><a href="#Expression.transform">transform</a></dd>
+ <dd id="LastDay.replace" class="function"><a href="#Expression.replace">replace</a></dd>
+ <dd id="LastDay.pop" class="function"><a href="#Expression.pop">pop</a></dd>
+ <dd id="LastDay.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
+ <dd id="LastDay.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
+ <dd id="LastDay.dump" class="function"><a href="#Expression.dump">dump</a></dd>
+ <dd id="LastDay.load" class="function"><a href="#Expression.load">load</a></dd>
+ <dd id="LastDay.and_" class="function"><a href="#Expression.and_">and_</a></dd>
+ <dd id="LastDay.or_" class="function"><a href="#Expression.or_">or_</a></dd>
+ <dd id="LastDay.not_" class="function"><a href="#Expression.not_">not_</a></dd>
+ <dd id="LastDay.as_" class="function"><a href="#Expression.as_">as_</a></dd>
+ <dd id="LastDay.isin" class="function"><a href="#Expression.isin">isin</a></dd>
+ <dd id="LastDay.between" class="function"><a href="#Expression.between">between</a></dd>
+ <dd id="LastDay.is_" class="function"><a href="#Expression.is_">is_</a></dd>
+ <dd id="LastDay.like" class="function"><a href="#Expression.like">like</a></dd>
+ <dd id="LastDay.ilike" class="function"><a href="#Expression.ilike">ilike</a></dd>
+ <dd id="LastDay.eq" class="function"><a href="#Expression.eq">eq</a></dd>
+ <dd id="LastDay.neq" class="function"><a href="#Expression.neq">neq</a></dd>
+ <dd id="LastDay.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
+ <dd id="LastDay.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="LastDay.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -62636,8 +66109,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Extract"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Extract-4576"><a href="#Extract-4576"><span class="linenos">4576</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-4577"><a href="#Extract-4577"><span class="linenos">4577</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><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-4647"><a href="#Extract-4647"><span class="linenos">4647</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-4648"><a href="#Extract-4648"><span class="linenos">4648</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -62692,6 +66165,7 @@ array<int> != array<float>.</p>
<dd id="Extract.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Extract.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Extract.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Extract.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Extract.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Extract.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Extract.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -62712,6 +66186,7 @@ array<int> != array<float>.</p>
<dd id="Extract.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Extract.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Extract.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Extract.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Extract.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Extract.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Extract.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -62733,6 +66208,7 @@ array<int> != array<float>.</p>
<dd id="Extract.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Extract.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Extract.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Extract.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -62757,8 +66233,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Timestamp"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Timestamp-4580"><a href="#Timestamp-4580"><span class="linenos">4580</span></a><span class="k">class</span> <span class="nc">Timestamp</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Timestamp-4581"><a href="#Timestamp-4581"><span class="linenos">4581</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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="Timestamp-4651"><a href="#Timestamp-4651"><span class="linenos">4651</span></a><span class="k">class</span> <span class="nc">Timestamp</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Timestamp-4652"><a href="#Timestamp-4652"><span class="linenos">4652</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -62813,6 +66289,7 @@ array<int> != array<float>.</p>
<dd id="Timestamp.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Timestamp.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Timestamp.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Timestamp.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Timestamp.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Timestamp.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Timestamp.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -62833,6 +66310,7 @@ array<int> != array<float>.</p>
<dd id="Timestamp.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Timestamp.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Timestamp.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Timestamp.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Timestamp.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Timestamp.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Timestamp.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -62854,6 +66332,7 @@ array<int> != array<float>.</p>
<dd id="Timestamp.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Timestamp.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Timestamp.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Timestamp.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -62878,8 +66357,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TimestampAdd"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimestampAdd-4584"><a href="#TimestampAdd-4584"><span class="linenos">4584</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-4585"><a href="#TimestampAdd-4585"><span class="linenos">4585</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-4655"><a href="#TimestampAdd-4655"><span class="linenos">4655</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-4656"><a href="#TimestampAdd-4656"><span class="linenos">4656</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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>
@@ -62948,6 +66427,7 @@ array<int> != array<float>.</p>
<dd id="TimestampAdd.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="TimestampAdd.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="TimestampAdd.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="TimestampAdd.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="TimestampAdd.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="TimestampAdd.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="TimestampAdd.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -62968,6 +66448,7 @@ array<int> != array<float>.</p>
<dd id="TimestampAdd.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="TimestampAdd.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="TimestampAdd.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="TimestampAdd.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="TimestampAdd.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="TimestampAdd.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="TimestampAdd.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -62989,6 +66470,7 @@ array<int> != array<float>.</p>
<dd id="TimestampAdd.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="TimestampAdd.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="TimestampAdd.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="TimestampAdd.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -63005,8 +66487,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TimestampSub"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimestampSub-4588"><a href="#TimestampSub-4588"><span class="linenos">4588</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-4589"><a href="#TimestampSub-4589"><span class="linenos">4589</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-4659"><a href="#TimestampSub-4659"><span class="linenos">4659</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-4660"><a href="#TimestampSub-4660"><span class="linenos">4660</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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>
@@ -63075,6 +66557,7 @@ array<int> != array<float>.</p>
<dd id="TimestampSub.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="TimestampSub.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="TimestampSub.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="TimestampSub.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="TimestampSub.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="TimestampSub.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="TimestampSub.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -63095,6 +66578,7 @@ array<int> != array<float>.</p>
<dd id="TimestampSub.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="TimestampSub.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="TimestampSub.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="TimestampSub.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="TimestampSub.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="TimestampSub.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="TimestampSub.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -63116,6 +66600,7 @@ array<int> != array<float>.</p>
<dd id="TimestampSub.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="TimestampSub.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="TimestampSub.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="TimestampSub.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -63132,8 +66617,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TimestampDiff"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimestampDiff-4592"><a href="#TimestampDiff-4592"><span class="linenos">4592</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-4593"><a href="#TimestampDiff-4593"><span class="linenos">4593</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-4663"><a href="#TimestampDiff-4663"><span class="linenos">4663</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-4664"><a href="#TimestampDiff-4664"><span class="linenos">4664</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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>
@@ -63202,6 +66687,7 @@ array<int> != array<float>.</p>
<dd id="TimestampDiff.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="TimestampDiff.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="TimestampDiff.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="TimestampDiff.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="TimestampDiff.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="TimestampDiff.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="TimestampDiff.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -63222,6 +66708,7 @@ array<int> != array<float>.</p>
<dd id="TimestampDiff.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="TimestampDiff.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="TimestampDiff.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="TimestampDiff.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="TimestampDiff.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="TimestampDiff.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="TimestampDiff.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -63243,6 +66730,7 @@ array<int> != array<float>.</p>
<dd id="TimestampDiff.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="TimestampDiff.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="TimestampDiff.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="TimestampDiff.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -63259,8 +66747,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TimestampTrunc"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimestampTrunc-4596"><a href="#TimestampTrunc-4596"><span class="linenos">4596</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-4597"><a href="#TimestampTrunc-4597"><span class="linenos">4597</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-4667"><a href="#TimestampTrunc-4667"><span class="linenos">4667</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-4668"><a href="#TimestampTrunc-4668"><span class="linenos">4668</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">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>
@@ -63329,6 +66817,7 @@ array<int> != array<float>.</p>
<dd id="TimestampTrunc.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="TimestampTrunc.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="TimestampTrunc.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="TimestampTrunc.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="TimestampTrunc.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="TimestampTrunc.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="TimestampTrunc.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -63349,6 +66838,7 @@ array<int> != array<float>.</p>
<dd id="TimestampTrunc.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="TimestampTrunc.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="TimestampTrunc.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="TimestampTrunc.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="TimestampTrunc.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="TimestampTrunc.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="TimestampTrunc.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -63370,6 +66860,7 @@ array<int> != array<float>.</p>
<dd id="TimestampTrunc.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="TimestampTrunc.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="TimestampTrunc.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="TimestampTrunc.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -63386,8 +66877,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TimeAdd"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeAdd-4600"><a href="#TimeAdd-4600"><span class="linenos">4600</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-4601"><a href="#TimeAdd-4601"><span class="linenos">4601</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-4671"><a href="#TimeAdd-4671"><span class="linenos">4671</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-4672"><a href="#TimeAdd-4672"><span class="linenos">4672</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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>
@@ -63456,6 +66947,7 @@ array<int> != array<float>.</p>
<dd id="TimeAdd.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="TimeAdd.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="TimeAdd.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="TimeAdd.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="TimeAdd.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="TimeAdd.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="TimeAdd.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -63476,6 +66968,7 @@ array<int> != array<float>.</p>
<dd id="TimeAdd.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="TimeAdd.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="TimeAdd.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="TimeAdd.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="TimeAdd.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="TimeAdd.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="TimeAdd.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -63497,6 +66990,7 @@ array<int> != array<float>.</p>
<dd id="TimeAdd.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="TimeAdd.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="TimeAdd.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="TimeAdd.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -63513,8 +67007,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TimeSub"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeSub-4604"><a href="#TimeSub-4604"><span class="linenos">4604</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-4605"><a href="#TimeSub-4605"><span class="linenos">4605</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-4675"><a href="#TimeSub-4675"><span class="linenos">4675</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-4676"><a href="#TimeSub-4676"><span class="linenos">4676</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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>
@@ -63583,6 +67077,7 @@ array<int> != array<float>.</p>
<dd id="TimeSub.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="TimeSub.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="TimeSub.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="TimeSub.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="TimeSub.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="TimeSub.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="TimeSub.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -63603,6 +67098,7 @@ array<int> != array<float>.</p>
<dd id="TimeSub.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="TimeSub.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="TimeSub.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="TimeSub.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="TimeSub.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="TimeSub.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="TimeSub.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -63624,6 +67120,7 @@ array<int> != array<float>.</p>
<dd id="TimeSub.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="TimeSub.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="TimeSub.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="TimeSub.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -63640,8 +67137,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TimeDiff"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeDiff-4608"><a href="#TimeDiff-4608"><span class="linenos">4608</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-4609"><a href="#TimeDiff-4609"><span class="linenos">4609</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-4679"><a href="#TimeDiff-4679"><span class="linenos">4679</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-4680"><a href="#TimeDiff-4680"><span class="linenos">4680</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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>
@@ -63710,6 +67207,7 @@ array<int> != array<float>.</p>
<dd id="TimeDiff.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="TimeDiff.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="TimeDiff.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="TimeDiff.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="TimeDiff.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="TimeDiff.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="TimeDiff.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -63730,6 +67228,7 @@ array<int> != array<float>.</p>
<dd id="TimeDiff.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="TimeDiff.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="TimeDiff.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="TimeDiff.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="TimeDiff.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="TimeDiff.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="TimeDiff.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -63751,6 +67250,7 @@ array<int> != array<float>.</p>
<dd id="TimeDiff.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="TimeDiff.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="TimeDiff.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="TimeDiff.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -63767,8 +67267,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TimeTrunc"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeTrunc-4612"><a href="#TimeTrunc-4612"><span class="linenos">4612</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-4613"><a href="#TimeTrunc-4613"><span class="linenos">4613</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4683"><a href="#TimeTrunc-4683"><span class="linenos">4683</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-4684"><a href="#TimeTrunc-4684"><span class="linenos">4684</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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>
@@ -63837,6 +67337,7 @@ array<int> != array<float>.</p>
<dd id="TimeTrunc.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="TimeTrunc.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="TimeTrunc.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="TimeTrunc.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="TimeTrunc.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="TimeTrunc.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="TimeTrunc.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -63857,6 +67358,7 @@ array<int> != array<float>.</p>
<dd id="TimeTrunc.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="TimeTrunc.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="TimeTrunc.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="TimeTrunc.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="TimeTrunc.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="TimeTrunc.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="TimeTrunc.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -63878,6 +67380,7 @@ array<int> != array<float>.</p>
<dd id="TimeTrunc.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="TimeTrunc.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="TimeTrunc.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="TimeTrunc.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -63894,9 +67397,9 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#DateFromParts"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DateFromParts-4616"><a href="#DateFromParts-4616"><span class="linenos">4616</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-4617"><a href="#DateFromParts-4617"><span class="linenos">4617</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-4618"><a href="#DateFromParts-4618"><span class="linenos">4618</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-4687"><a href="#DateFromParts-4687"><span class="linenos">4687</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-4688"><a href="#DateFromParts-4688"><span class="linenos">4688</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;DATE_FROM_PARTS&quot;</span><span class="p">,</span> <span class="s2">&quot;DATEFROMPARTS&quot;</span><span class="p">]</span>
+</span><span id="DateFromParts-4689"><a href="#DateFromParts-4689"><span class="linenos">4689</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>
@@ -63951,6 +67454,7 @@ array<int> != array<float>.</p>
<dd id="DateFromParts.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DateFromParts.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="DateFromParts.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="DateFromParts.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="DateFromParts.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="DateFromParts.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DateFromParts.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -63971,6 +67475,7 @@ array<int> != array<float>.</p>
<dd id="DateFromParts.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DateFromParts.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DateFromParts.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="DateFromParts.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="DateFromParts.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DateFromParts.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DateFromParts.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -63992,6 +67497,7 @@ array<int> != array<float>.</p>
<dd id="DateFromParts.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="DateFromParts.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="DateFromParts.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="DateFromParts.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -64005,6 +67511,138 @@ array<int> != array<float>.</p>
</dl>
</div>
</section>
+ <section id="TimeFromParts">
+ <input id="TimeFromParts-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">TimeFromParts</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
+
+ <label class="view-source-button" for="TimeFromParts-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#TimeFromParts"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TimeFromParts-4692"><a href="#TimeFromParts-4692"><span class="linenos">4692</span></a><span class="k">class</span> <span class="nc">TimeFromParts</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="TimeFromParts-4693"><a href="#TimeFromParts-4693"><span class="linenos">4693</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;TIME_FROM_PARTS&quot;</span><span class="p">,</span> <span class="s2">&quot;TIMEFROMPARTS&quot;</span><span class="p">]</span>
+</span><span id="TimeFromParts-4694"><a href="#TimeFromParts-4694"><span class="linenos">4694</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="TimeFromParts-4695"><a href="#TimeFromParts-4695"><span class="linenos">4695</span></a> <span class="s2">&quot;hour&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="TimeFromParts-4696"><a href="#TimeFromParts-4696"><span class="linenos">4696</span></a> <span class="s2">&quot;min&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="TimeFromParts-4697"><a href="#TimeFromParts-4697"><span class="linenos">4697</span></a> <span class="s2">&quot;sec&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="TimeFromParts-4698"><a href="#TimeFromParts-4698"><span class="linenos">4698</span></a> <span class="s2">&quot;nano&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="TimeFromParts-4699"><a href="#TimeFromParts-4699"><span class="linenos">4699</span></a> <span class="s2">&quot;fractions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="TimeFromParts-4700"><a href="#TimeFromParts-4700"><span class="linenos">4700</span></a> <span class="s2">&quot;precision&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="TimeFromParts-4701"><a href="#TimeFromParts-4701"><span class="linenos">4701</span></a> <span class="p">}</span>
+</span></pre></div>
+
+
+
+
+ <div id="TimeFromParts.arg_types" class="classattr">
+ <div class="attr variable">
+ <span class="name">arg_types</span> =
+<span class="default_value">{&#39;hour&#39;: True, &#39;min&#39;: True, &#39;sec&#39;: True, &#39;nano&#39;: False, &#39;fractions&#39;: False, &#39;precision&#39;: False}</span>
+
+
+ </div>
+ <a class="headerlink" href="#TimeFromParts.arg_types"></a>
+
+
+
+ </div>
+ <div id="TimeFromParts.key" class="classattr">
+ <div class="attr variable">
+ <span class="name">key</span> =
+<span class="default_value">&#39;timefromparts&#39;</span>
+
+
+ </div>
+ <a class="headerlink" href="#TimeFromParts.key"></a>
+
+
+
+ </div>
+ <div class="inherited">
+ <h5>Inherited Members</h5>
+ <dl>
+ <div><dt><a href="#Expression">Expression</a></dt>
+ <dd id="TimeFromParts.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
+ <dd id="TimeFromParts.args" class="variable"><a href="#Expression.args">args</a></dd>
+ <dd id="TimeFromParts.parent" class="variable"><a href="#Expression.parent">parent</a></dd>
+ <dd id="TimeFromParts.arg_key" class="variable"><a href="#Expression.arg_key">arg_key</a></dd>
+ <dd id="TimeFromParts.comments" class="variable"><a href="#Expression.comments">comments</a></dd>
+ <dd id="TimeFromParts.hashable_args" class="variable"><a href="#Expression.hashable_args">hashable_args</a></dd>
+ <dd id="TimeFromParts.this" class="variable"><a href="#Expression.this">this</a></dd>
+ <dd id="TimeFromParts.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
+ <dd id="TimeFromParts.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
+ <dd id="TimeFromParts.text" class="function"><a href="#Expression.text">text</a></dd>
+ <dd id="TimeFromParts.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
+ <dd id="TimeFromParts.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
+ <dd id="TimeFromParts.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
+ <dd id="TimeFromParts.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
+ <dd id="TimeFromParts.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="TimeFromParts.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
+ <dd id="TimeFromParts.name" class="variable"><a href="#Expression.name">name</a></dd>
+ <dd id="TimeFromParts.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
+ <dd id="TimeFromParts.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
+ <dd id="TimeFromParts.type" class="variable"><a href="#Expression.type">type</a></dd>
+ <dd id="TimeFromParts.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="TimeFromParts.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
+ <dd id="TimeFromParts.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
+ <dd id="TimeFromParts.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="TimeFromParts.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
+ <dd id="TimeFromParts.append" class="function"><a href="#Expression.append">append</a></dd>
+ <dd id="TimeFromParts.set" class="function"><a href="#Expression.set">set</a></dd>
+ <dd id="TimeFromParts.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
+ <dd id="TimeFromParts.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
+ <dd id="TimeFromParts.find" class="function"><a href="#Expression.find">find</a></dd>
+ <dd id="TimeFromParts.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
+ <dd id="TimeFromParts.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
+ <dd id="TimeFromParts.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
+ <dd id="TimeFromParts.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
+ <dd id="TimeFromParts.root" class="function"><a href="#Expression.root">root</a></dd>
+ <dd id="TimeFromParts.walk" class="function"><a href="#Expression.walk">walk</a></dd>
+ <dd id="TimeFromParts.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
+ <dd id="TimeFromParts.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
+ <dd id="TimeFromParts.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
+ <dd id="TimeFromParts.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
+ <dd id="TimeFromParts.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
+ <dd id="TimeFromParts.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="TimeFromParts.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
+ <dd id="TimeFromParts.sql" class="function"><a href="#Expression.sql">sql</a></dd>
+ <dd id="TimeFromParts.transform" class="function"><a href="#Expression.transform">transform</a></dd>
+ <dd id="TimeFromParts.replace" class="function"><a href="#Expression.replace">replace</a></dd>
+ <dd id="TimeFromParts.pop" class="function"><a href="#Expression.pop">pop</a></dd>
+ <dd id="TimeFromParts.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
+ <dd id="TimeFromParts.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
+ <dd id="TimeFromParts.dump" class="function"><a href="#Expression.dump">dump</a></dd>
+ <dd id="TimeFromParts.load" class="function"><a href="#Expression.load">load</a></dd>
+ <dd id="TimeFromParts.and_" class="function"><a href="#Expression.and_">and_</a></dd>
+ <dd id="TimeFromParts.or_" class="function"><a href="#Expression.or_">or_</a></dd>
+ <dd id="TimeFromParts.not_" class="function"><a href="#Expression.not_">not_</a></dd>
+ <dd id="TimeFromParts.as_" class="function"><a href="#Expression.as_">as_</a></dd>
+ <dd id="TimeFromParts.isin" class="function"><a href="#Expression.isin">isin</a></dd>
+ <dd id="TimeFromParts.between" class="function"><a href="#Expression.between">between</a></dd>
+ <dd id="TimeFromParts.is_" class="function"><a href="#Expression.is_">is_</a></dd>
+ <dd id="TimeFromParts.like" class="function"><a href="#Expression.like">like</a></dd>
+ <dd id="TimeFromParts.ilike" class="function"><a href="#Expression.ilike">ilike</a></dd>
+ <dd id="TimeFromParts.eq" class="function"><a href="#Expression.eq">eq</a></dd>
+ <dd id="TimeFromParts.neq" class="function"><a href="#Expression.neq">neq</a></dd>
+ <dd id="TimeFromParts.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
+ <dd id="TimeFromParts.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="TimeFromParts.desc" class="function"><a href="#Expression.desc">desc</a></dd>
+
+ </div>
+ <div><dt><a href="#Func">Func</a></dt>
+ <dd id="TimeFromParts.is_var_len_args" class="variable"><a href="#Func.is_var_len_args">is_var_len_args</a></dd>
+ <dd id="TimeFromParts.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
+ <dd id="TimeFromParts.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
+ <dd id="TimeFromParts.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
+ <dd id="TimeFromParts.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
+
+ </div>
+ </dl>
+ </div>
+ </section>
<section id="DateStrToDate">
<input id="DateStrToDate-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
@@ -64016,8 +67654,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#DateStrToDate"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DateStrToDate-4621"><a href="#DateStrToDate-4621"><span class="linenos">4621</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-4622"><a href="#DateStrToDate-4622"><span class="linenos">4622</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DateStrToDate-4704"><a href="#DateStrToDate-4704"><span class="linenos">4704</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-4705"><a href="#DateStrToDate-4705"><span class="linenos">4705</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -64061,6 +67699,7 @@ array<int> != array<float>.</p>
<dd id="DateStrToDate.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DateStrToDate.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="DateStrToDate.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="DateStrToDate.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="DateStrToDate.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="DateStrToDate.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DateStrToDate.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -64081,6 +67720,7 @@ array<int> != array<float>.</p>
<dd id="DateStrToDate.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DateStrToDate.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DateStrToDate.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="DateStrToDate.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="DateStrToDate.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DateStrToDate.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DateStrToDate.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -64102,6 +67742,7 @@ array<int> != array<float>.</p>
<dd id="DateStrToDate.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="DateStrToDate.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="DateStrToDate.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="DateStrToDate.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -64126,8 +67767,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#DateToDateStr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DateToDateStr-4625"><a href="#DateToDateStr-4625"><span class="linenos">4625</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-4626"><a href="#DateToDateStr-4626"><span class="linenos">4626</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DateToDateStr-4708"><a href="#DateToDateStr-4708"><span class="linenos">4708</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-4709"><a href="#DateToDateStr-4709"><span class="linenos">4709</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -64171,6 +67812,7 @@ array<int> != array<float>.</p>
<dd id="DateToDateStr.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DateToDateStr.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="DateToDateStr.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="DateToDateStr.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="DateToDateStr.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="DateToDateStr.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DateToDateStr.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -64191,6 +67833,7 @@ array<int> != array<float>.</p>
<dd id="DateToDateStr.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DateToDateStr.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DateToDateStr.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="DateToDateStr.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="DateToDateStr.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DateToDateStr.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DateToDateStr.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -64212,6 +67855,7 @@ array<int> != array<float>.</p>
<dd id="DateToDateStr.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="DateToDateStr.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="DateToDateStr.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="DateToDateStr.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -64236,8 +67880,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#DateToDi"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DateToDi-4629"><a href="#DateToDi-4629"><span class="linenos">4629</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-4630"><a href="#DateToDi-4630"><span class="linenos">4630</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DateToDi-4712"><a href="#DateToDi-4712"><span class="linenos">4712</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-4713"><a href="#DateToDi-4713"><span class="linenos">4713</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -64281,6 +67925,7 @@ array<int> != array<float>.</p>
<dd id="DateToDi.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DateToDi.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="DateToDi.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="DateToDi.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="DateToDi.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="DateToDi.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DateToDi.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -64301,6 +67946,7 @@ array<int> != array<float>.</p>
<dd id="DateToDi.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DateToDi.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DateToDi.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="DateToDi.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="DateToDi.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DateToDi.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DateToDi.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -64322,6 +67968,7 @@ array<int> != array<float>.</p>
<dd id="DateToDi.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="DateToDi.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="DateToDi.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="DateToDi.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -64346,9 +67993,9 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Date"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Date-4634"><a href="#Date-4634"><span class="linenos">4634</span></a><span class="k">class</span> <span class="nc">Date</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Date-4635"><a href="#Date-4635"><span class="linenos">4635</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="Date-4636"><a href="#Date-4636"><span class="linenos">4636</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Date-4717"><a href="#Date-4717"><span class="linenos">4717</span></a><span class="k">class</span> <span class="nc">Date</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Date-4718"><a href="#Date-4718"><span class="linenos">4718</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="Date-4719"><a href="#Date-4719"><span class="linenos">4719</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -64415,6 +68062,7 @@ array<int> != array<float>.</p>
<dd id="Date.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Date.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Date.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Date.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Date.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Date.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Date.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -64435,6 +68083,7 @@ array<int> != array<float>.</p>
<dd id="Date.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Date.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Date.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Date.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Date.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Date.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Date.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -64456,6 +68105,7 @@ array<int> != array<float>.</p>
<dd id="Date.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Date.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Date.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Date.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -64479,8 +68129,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Day"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Day-4639"><a href="#Day-4639"><span class="linenos">4639</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-4640"><a href="#Day-4640"><span class="linenos">4640</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Day-4722"><a href="#Day-4722"><span class="linenos">4722</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-4723"><a href="#Day-4723"><span class="linenos">4723</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -64524,6 +68174,7 @@ array<int> != array<float>.</p>
<dd id="Day.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Day.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Day.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Day.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Day.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Day.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Day.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -64544,6 +68195,7 @@ array<int> != array<float>.</p>
<dd id="Day.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Day.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Day.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Day.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Day.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Day.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Day.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -64565,6 +68217,7 @@ array<int> != array<float>.</p>
<dd id="Day.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Day.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Day.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Day.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -64589,8 +68242,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Decode"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Decode-4643"><a href="#Decode-4643"><span class="linenos">4643</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-4644"><a href="#Decode-4644"><span class="linenos">4644</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-4726"><a href="#Decode-4726"><span class="linenos">4726</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-4727"><a href="#Decode-4727"><span class="linenos">4727</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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>
@@ -64645,6 +68298,7 @@ array<int> != array<float>.</p>
<dd id="Decode.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Decode.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Decode.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Decode.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Decode.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Decode.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Decode.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -64665,6 +68319,7 @@ array<int> != array<float>.</p>
<dd id="Decode.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Decode.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Decode.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Decode.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Decode.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Decode.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Decode.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -64686,6 +68341,7 @@ array<int> != array<float>.</p>
<dd id="Decode.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Decode.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Decode.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Decode.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -64710,8 +68366,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#DiToDate"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DiToDate-4647"><a href="#DiToDate-4647"><span class="linenos">4647</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-4648"><a href="#DiToDate-4648"><span class="linenos">4648</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DiToDate-4730"><a href="#DiToDate-4730"><span class="linenos">4730</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-4731"><a href="#DiToDate-4731"><span class="linenos">4731</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -64755,6 +68411,7 @@ array<int> != array<float>.</p>
<dd id="DiToDate.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DiToDate.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="DiToDate.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="DiToDate.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="DiToDate.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="DiToDate.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DiToDate.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -64775,6 +68432,7 @@ array<int> != array<float>.</p>
<dd id="DiToDate.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DiToDate.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DiToDate.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="DiToDate.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="DiToDate.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DiToDate.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DiToDate.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -64796,6 +68454,7 @@ array<int> != array<float>.</p>
<dd id="DiToDate.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="DiToDate.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="DiToDate.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="DiToDate.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -64820,8 +68479,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Encode"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Encode-4651"><a href="#Encode-4651"><span class="linenos">4651</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-4652"><a href="#Encode-4652"><span class="linenos">4652</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4734"><a href="#Encode-4734"><span class="linenos">4734</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-4735"><a href="#Encode-4735"><span class="linenos">4735</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -64876,6 +68535,7 @@ array<int> != array<float>.</p>
<dd id="Encode.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Encode.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Encode.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Encode.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Encode.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Encode.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Encode.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -64896,6 +68556,7 @@ array<int> != array<float>.</p>
<dd id="Encode.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Encode.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Encode.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Encode.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Encode.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Encode.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Encode.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -64917,6 +68578,7 @@ array<int> != array<float>.</p>
<dd id="Encode.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Encode.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Encode.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Encode.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -64941,8 +68603,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Exp"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Exp-4655"><a href="#Exp-4655"><span class="linenos">4655</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-4656"><a href="#Exp-4656"><span class="linenos">4656</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Exp-4738"><a href="#Exp-4738"><span class="linenos">4738</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-4739"><a href="#Exp-4739"><span class="linenos">4739</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -64986,6 +68648,7 @@ array<int> != array<float>.</p>
<dd id="Exp.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Exp.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Exp.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Exp.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Exp.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Exp.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Exp.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -65006,6 +68669,7 @@ array<int> != array<float>.</p>
<dd id="Exp.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Exp.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Exp.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Exp.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Exp.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Exp.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Exp.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -65027,6 +68691,7 @@ array<int> != array<float>.</p>
<dd id="Exp.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Exp.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Exp.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Exp.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -65051,9 +68716,9 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Explode"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Explode-4660"><a href="#Explode-4660"><span class="linenos">4660</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-4661"><a href="#Explode-4661"><span class="linenos">4661</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="Explode-4662"><a href="#Explode-4662"><span class="linenos">4662</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Explode-4743"><a href="#Explode-4743"><span class="linenos">4743</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-4744"><a href="#Explode-4744"><span class="linenos">4744</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="Explode-4745"><a href="#Explode-4745"><span class="linenos">4745</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -65120,6 +68785,7 @@ array<int> != array<float>.</p>
<dd id="Explode.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Explode.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Explode.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Explode.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Explode.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Explode.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Explode.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -65140,6 +68806,7 @@ array<int> != array<float>.</p>
<dd id="Explode.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Explode.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Explode.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Explode.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Explode.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Explode.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Explode.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -65161,6 +68828,7 @@ array<int> != array<float>.</p>
<dd id="Explode.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Explode.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Explode.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Explode.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -65184,8 +68852,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#ExplodeOuter"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ExplodeOuter-4665"><a href="#ExplodeOuter-4665"><span class="linenos">4665</span></a><span class="k">class</span> <span class="nc">ExplodeOuter</span><span class="p">(</span><span class="n">Explode</span><span class="p">):</span>
-</span><span id="ExplodeOuter-4666"><a href="#ExplodeOuter-4666"><span class="linenos">4666</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ExplodeOuter-4748"><a href="#ExplodeOuter-4748"><span class="linenos">4748</span></a><span class="k">class</span> <span class="nc">ExplodeOuter</span><span class="p">(</span><span class="n">Explode</span><span class="p">):</span>
+</span><span id="ExplodeOuter-4749"><a href="#ExplodeOuter-4749"><span class="linenos">4749</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -65228,6 +68896,7 @@ array<int> != array<float>.</p>
<dd id="ExplodeOuter.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ExplodeOuter.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="ExplodeOuter.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="ExplodeOuter.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="ExplodeOuter.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="ExplodeOuter.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ExplodeOuter.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -65248,6 +68917,7 @@ array<int> != array<float>.</p>
<dd id="ExplodeOuter.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ExplodeOuter.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ExplodeOuter.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="ExplodeOuter.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="ExplodeOuter.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ExplodeOuter.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ExplodeOuter.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -65269,6 +68939,7 @@ array<int> != array<float>.</p>
<dd id="ExplodeOuter.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="ExplodeOuter.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="ExplodeOuter.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="ExplodeOuter.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Explode">Explode</a></dt>
@@ -65297,8 +68968,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Posexplode"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Posexplode-4669"><a href="#Posexplode-4669"><span class="linenos">4669</span></a><span class="k">class</span> <span class="nc">Posexplode</span><span class="p">(</span><span class="n">Explode</span><span class="p">):</span>
-</span><span id="Posexplode-4670"><a href="#Posexplode-4670"><span class="linenos">4670</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Posexplode-4752"><a href="#Posexplode-4752"><span class="linenos">4752</span></a><span class="k">class</span> <span class="nc">Posexplode</span><span class="p">(</span><span class="n">Explode</span><span class="p">):</span>
+</span><span id="Posexplode-4753"><a href="#Posexplode-4753"><span class="linenos">4753</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -65341,6 +69012,7 @@ array<int> != array<float>.</p>
<dd id="Posexplode.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Posexplode.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Posexplode.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Posexplode.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Posexplode.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Posexplode.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Posexplode.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -65361,6 +69033,7 @@ array<int> != array<float>.</p>
<dd id="Posexplode.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Posexplode.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Posexplode.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Posexplode.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Posexplode.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Posexplode.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Posexplode.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -65382,6 +69055,7 @@ array<int> != array<float>.</p>
<dd id="Posexplode.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Posexplode.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Posexplode.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Posexplode.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Explode">Explode</a></dt>
@@ -65410,8 +69084,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#PosexplodeOuter"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="PosexplodeOuter-4673"><a href="#PosexplodeOuter-4673"><span class="linenos">4673</span></a><span class="k">class</span> <span class="nc">PosexplodeOuter</span><span class="p">(</span><span class="n">Posexplode</span><span class="p">):</span>
-</span><span id="PosexplodeOuter-4674"><a href="#PosexplodeOuter-4674"><span class="linenos">4674</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="PosexplodeOuter-4756"><a href="#PosexplodeOuter-4756"><span class="linenos">4756</span></a><span class="k">class</span> <span class="nc">PosexplodeOuter</span><span class="p">(</span><span class="n">Posexplode</span><span class="p">):</span>
+</span><span id="PosexplodeOuter-4757"><a href="#PosexplodeOuter-4757"><span class="linenos">4757</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -65454,6 +69128,7 @@ array<int> != array<float>.</p>
<dd id="PosexplodeOuter.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="PosexplodeOuter.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="PosexplodeOuter.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="PosexplodeOuter.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="PosexplodeOuter.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="PosexplodeOuter.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="PosexplodeOuter.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -65474,6 +69149,7 @@ array<int> != array<float>.</p>
<dd id="PosexplodeOuter.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="PosexplodeOuter.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="PosexplodeOuter.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="PosexplodeOuter.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="PosexplodeOuter.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="PosexplodeOuter.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="PosexplodeOuter.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -65495,6 +69171,7 @@ array<int> != array<float>.</p>
<dd id="PosexplodeOuter.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="PosexplodeOuter.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="PosexplodeOuter.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="PosexplodeOuter.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Explode">Explode</a></dt>
@@ -65523,8 +69200,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Floor"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Floor-4677"><a href="#Floor-4677"><span class="linenos">4677</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-4678"><a href="#Floor-4678"><span class="linenos">4678</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-4760"><a href="#Floor-4760"><span class="linenos">4760</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-4761"><a href="#Floor-4761"><span class="linenos">4761</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;decimals&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -65579,6 +69256,7 @@ array<int> != array<float>.</p>
<dd id="Floor.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Floor.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Floor.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Floor.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Floor.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Floor.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Floor.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -65599,6 +69277,7 @@ array<int> != array<float>.</p>
<dd id="Floor.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Floor.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Floor.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Floor.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Floor.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Floor.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Floor.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -65620,6 +69299,7 @@ array<int> != array<float>.</p>
<dd id="Floor.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Floor.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Floor.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Floor.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -65644,8 +69324,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#FromBase64"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="FromBase64-4681"><a href="#FromBase64-4681"><span class="linenos">4681</span></a><span class="k">class</span> <span class="nc">FromBase64</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="FromBase64-4682"><a href="#FromBase64-4682"><span class="linenos">4682</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="FromBase64-4764"><a href="#FromBase64-4764"><span class="linenos">4764</span></a><span class="k">class</span> <span class="nc">FromBase64</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="FromBase64-4765"><a href="#FromBase64-4765"><span class="linenos">4765</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -65689,6 +69369,7 @@ array<int> != array<float>.</p>
<dd id="FromBase64.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="FromBase64.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="FromBase64.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="FromBase64.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="FromBase64.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="FromBase64.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="FromBase64.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -65709,6 +69390,7 @@ array<int> != array<float>.</p>
<dd id="FromBase64.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="FromBase64.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="FromBase64.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="FromBase64.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="FromBase64.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="FromBase64.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="FromBase64.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -65730,6 +69412,7 @@ array<int> != array<float>.</p>
<dd id="FromBase64.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="FromBase64.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="FromBase64.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="FromBase64.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -65754,8 +69437,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#ToBase64"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ToBase64-4685"><a href="#ToBase64-4685"><span class="linenos">4685</span></a><span class="k">class</span> <span class="nc">ToBase64</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="ToBase64-4686"><a href="#ToBase64-4686"><span class="linenos">4686</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ToBase64-4768"><a href="#ToBase64-4768"><span class="linenos">4768</span></a><span class="k">class</span> <span class="nc">ToBase64</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="ToBase64-4769"><a href="#ToBase64-4769"><span class="linenos">4769</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -65799,6 +69482,7 @@ array<int> != array<float>.</p>
<dd id="ToBase64.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ToBase64.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="ToBase64.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="ToBase64.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="ToBase64.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="ToBase64.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ToBase64.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -65819,6 +69503,7 @@ array<int> != array<float>.</p>
<dd id="ToBase64.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ToBase64.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ToBase64.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="ToBase64.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="ToBase64.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ToBase64.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ToBase64.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -65840,6 +69525,7 @@ array<int> != array<float>.</p>
<dd id="ToBase64.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="ToBase64.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="ToBase64.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="ToBase64.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -65864,9 +69550,9 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Greatest"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Greatest-4689"><a href="#Greatest-4689"><span class="linenos">4689</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-4690"><a href="#Greatest-4690"><span class="linenos">4690</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4691"><a href="#Greatest-4691"><span class="linenos">4691</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-4772"><a href="#Greatest-4772"><span class="linenos">4772</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-4773"><a href="#Greatest-4773"><span class="linenos">4773</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="Greatest-4774"><a href="#Greatest-4774"><span class="linenos">4774</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -65933,6 +69619,7 @@ array<int> != array<float>.</p>
<dd id="Greatest.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Greatest.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Greatest.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Greatest.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Greatest.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Greatest.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Greatest.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -65953,6 +69640,7 @@ array<int> != array<float>.</p>
<dd id="Greatest.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Greatest.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Greatest.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Greatest.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Greatest.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Greatest.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Greatest.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -65974,6 +69662,7 @@ array<int> != array<float>.</p>
<dd id="Greatest.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Greatest.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Greatest.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Greatest.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -65997,8 +69686,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#GroupConcat"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="GroupConcat-4694"><a href="#GroupConcat-4694"><span class="linenos">4694</span></a><span class="k">class</span> <span class="nc">GroupConcat</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="GroupConcat-4695"><a href="#GroupConcat-4695"><span class="linenos">4695</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-4777"><a href="#GroupConcat-4777"><span class="linenos">4777</span></a><span class="k">class</span> <span class="nc">GroupConcat</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="GroupConcat-4778"><a href="#GroupConcat-4778"><span class="linenos">4778</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -66053,6 +69742,7 @@ array<int> != array<float>.</p>
<dd id="GroupConcat.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="GroupConcat.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="GroupConcat.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="GroupConcat.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="GroupConcat.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="GroupConcat.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="GroupConcat.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -66073,6 +69763,7 @@ array<int> != array<float>.</p>
<dd id="GroupConcat.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="GroupConcat.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="GroupConcat.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="GroupConcat.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="GroupConcat.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="GroupConcat.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="GroupConcat.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -66094,6 +69785,7 @@ array<int> != array<float>.</p>
<dd id="GroupConcat.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="GroupConcat.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="GroupConcat.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="GroupConcat.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -66118,8 +69810,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Hex"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Hex-4698"><a href="#Hex-4698"><span class="linenos">4698</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-4699"><a href="#Hex-4699"><span class="linenos">4699</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Hex-4781"><a href="#Hex-4781"><span class="linenos">4781</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-4782"><a href="#Hex-4782"><span class="linenos">4782</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -66163,6 +69855,7 @@ array<int> != array<float>.</p>
<dd id="Hex.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Hex.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Hex.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Hex.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Hex.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Hex.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Hex.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -66183,6 +69876,7 @@ array<int> != array<float>.</p>
<dd id="Hex.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Hex.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Hex.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Hex.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Hex.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Hex.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Hex.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -66204,6 +69898,7 @@ array<int> != array<float>.</p>
<dd id="Hex.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Hex.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Hex.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Hex.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -66228,8 +69923,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Xor"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Xor-4702"><a href="#Xor-4702"><span class="linenos">4702</span></a><span class="k">class</span> <span class="nc">Xor</span><span class="p">(</span><span class="n">Connector</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
-</span><span id="Xor-4703"><a href="#Xor-4703"><span class="linenos">4703</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Xor-4785"><a href="#Xor-4785"><span class="linenos">4785</span></a><span class="k">class</span> <span class="nc">Xor</span><span class="p">(</span><span class="n">Connector</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
+</span><span id="Xor-4786"><a href="#Xor-4786"><span class="linenos">4786</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -66284,6 +69979,7 @@ array<int> != array<float>.</p>
<dd id="Xor.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Xor.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Xor.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Xor.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Xor.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Xor.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Xor.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -66304,6 +70000,7 @@ array<int> != array<float>.</p>
<dd id="Xor.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Xor.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Xor.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Xor.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Xor.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Xor.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Xor.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -66325,6 +70022,7 @@ array<int> != array<float>.</p>
<dd id="Xor.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Xor.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Xor.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Xor.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Binary">Binary</a></dt>
@@ -66354,8 +70052,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#If"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="If-4706"><a href="#If-4706"><span class="linenos">4706</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-4707"><a href="#If-4707"><span class="linenos">4707</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-4789"><a href="#If-4789"><span class="linenos">4789</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-4790"><a href="#If-4790"><span class="linenos">4790</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;true&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;false&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -66410,6 +70108,7 @@ array<int> != array<float>.</p>
<dd id="If.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="If.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="If.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="If.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="If.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="If.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="If.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -66430,6 +70129,7 @@ array<int> != array<float>.</p>
<dd id="If.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="If.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="If.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="If.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="If.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="If.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="If.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -66451,6 +70151,7 @@ array<int> != array<float>.</p>
<dd id="If.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="If.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="If.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="If.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -66475,8 +70176,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Nullif"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Nullif-4710"><a href="#Nullif-4710"><span class="linenos">4710</span></a><span class="k">class</span> <span class="nc">Nullif</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Nullif-4711"><a href="#Nullif-4711"><span class="linenos">4711</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Nullif-4793"><a href="#Nullif-4793"><span class="linenos">4793</span></a><span class="k">class</span> <span class="nc">Nullif</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Nullif-4794"><a href="#Nullif-4794"><span class="linenos">4794</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -66531,6 +70232,7 @@ array<int> != array<float>.</p>
<dd id="Nullif.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Nullif.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Nullif.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Nullif.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Nullif.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Nullif.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Nullif.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -66551,6 +70253,7 @@ array<int> != array<float>.</p>
<dd id="Nullif.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Nullif.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Nullif.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Nullif.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Nullif.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Nullif.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Nullif.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -66572,6 +70275,7 @@ array<int> != array<float>.</p>
<dd id="Nullif.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Nullif.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Nullif.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Nullif.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -66596,8 +70300,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Initcap"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Initcap-4714"><a href="#Initcap-4714"><span class="linenos">4714</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-4715"><a href="#Initcap-4715"><span class="linenos">4715</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Initcap-4797"><a href="#Initcap-4797"><span class="linenos">4797</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-4798"><a href="#Initcap-4798"><span class="linenos">4798</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -66652,6 +70356,7 @@ array<int> != array<float>.</p>
<dd id="Initcap.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Initcap.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Initcap.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Initcap.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Initcap.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Initcap.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Initcap.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -66672,6 +70377,7 @@ array<int> != array<float>.</p>
<dd id="Initcap.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Initcap.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Initcap.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Initcap.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Initcap.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Initcap.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Initcap.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -66693,6 +70399,7 @@ array<int> != array<float>.</p>
<dd id="Initcap.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Initcap.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Initcap.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Initcap.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -66717,8 +70424,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#IsNan"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="IsNan-4718"><a href="#IsNan-4718"><span class="linenos">4718</span></a><span class="k">class</span> <span class="nc">IsNan</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="IsNan-4719"><a href="#IsNan-4719"><span class="linenos">4719</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;IS_NAN&quot;</span><span class="p">,</span> <span class="s2">&quot;ISNAN&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="IsNan-4801"><a href="#IsNan-4801"><span class="linenos">4801</span></a><span class="k">class</span> <span class="nc">IsNan</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="IsNan-4802"><a href="#IsNan-4802"><span class="linenos">4802</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;IS_NAN&quot;</span><span class="p">,</span> <span class="s2">&quot;ISNAN&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -66762,6 +70469,7 @@ array<int> != array<float>.</p>
<dd id="IsNan.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="IsNan.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="IsNan.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="IsNan.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="IsNan.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="IsNan.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="IsNan.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -66782,6 +70490,7 @@ array<int> != array<float>.</p>
<dd id="IsNan.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="IsNan.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="IsNan.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="IsNan.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="IsNan.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="IsNan.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="IsNan.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -66803,6 +70512,7 @@ array<int> != array<float>.</p>
<dd id="IsNan.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="IsNan.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="IsNan.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="IsNan.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -66827,8 +70537,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#IsInf"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="IsInf-4722"><a href="#IsInf-4722"><span class="linenos">4722</span></a><span class="k">class</span> <span class="nc">IsInf</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="IsInf-4723"><a href="#IsInf-4723"><span class="linenos">4723</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;IS_INF&quot;</span><span class="p">,</span> <span class="s2">&quot;ISINF&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="IsInf-4805"><a href="#IsInf-4805"><span class="linenos">4805</span></a><span class="k">class</span> <span class="nc">IsInf</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="IsInf-4806"><a href="#IsInf-4806"><span class="linenos">4806</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;IS_INF&quot;</span><span class="p">,</span> <span class="s2">&quot;ISINF&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -66872,6 +70582,7 @@ array<int> != array<float>.</p>
<dd id="IsInf.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="IsInf.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="IsInf.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="IsInf.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="IsInf.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="IsInf.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="IsInf.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -66892,6 +70603,7 @@ array<int> != array<float>.</p>
<dd id="IsInf.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="IsInf.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="IsInf.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="IsInf.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="IsInf.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="IsInf.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="IsInf.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -66913,6 +70625,7 @@ array<int> != array<float>.</p>
<dd id="IsInf.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="IsInf.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="IsInf.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="IsInf.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -66937,8 +70650,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#FormatJson"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="FormatJson-4726"><a href="#FormatJson-4726"><span class="linenos">4726</span></a><span class="k">class</span> <span class="nc">FormatJson</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="FormatJson-4727"><a href="#FormatJson-4727"><span class="linenos">4727</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="FormatJson-4809"><a href="#FormatJson-4809"><span class="linenos">4809</span></a><span class="k">class</span> <span class="nc">FormatJson</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="FormatJson-4810"><a href="#FormatJson-4810"><span class="linenos">4810</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -66982,6 +70695,7 @@ array<int> != array<float>.</p>
<dd id="FormatJson.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="FormatJson.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="FormatJson.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="FormatJson.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="FormatJson.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="FormatJson.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="FormatJson.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -67002,6 +70716,7 @@ array<int> != array<float>.</p>
<dd id="FormatJson.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="FormatJson.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="FormatJson.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="FormatJson.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="FormatJson.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="FormatJson.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="FormatJson.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -67023,6 +70738,7 @@ array<int> != array<float>.</p>
<dd id="FormatJson.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="FormatJson.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="FormatJson.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="FormatJson.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -67039,8 +70755,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONKeyValue"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONKeyValue-4730"><a href="#JSONKeyValue-4730"><span class="linenos">4730</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-4731"><a href="#JSONKeyValue-4731"><span class="linenos">4731</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><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-4813"><a href="#JSONKeyValue-4813"><span class="linenos">4813</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-4814"><a href="#JSONKeyValue-4814"><span class="linenos">4814</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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>
@@ -67095,6 +70811,7 @@ array<int> != array<float>.</p>
<dd id="JSONKeyValue.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="JSONKeyValue.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="JSONKeyValue.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="JSONKeyValue.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="JSONKeyValue.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="JSONKeyValue.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="JSONKeyValue.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -67115,6 +70832,7 @@ array<int> != array<float>.</p>
<dd id="JSONKeyValue.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="JSONKeyValue.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="JSONKeyValue.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="JSONKeyValue.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="JSONKeyValue.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="JSONKeyValue.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="JSONKeyValue.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -67136,6 +70854,7 @@ array<int> != array<float>.</p>
<dd id="JSONKeyValue.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="JSONKeyValue.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="JSONKeyValue.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="JSONKeyValue.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -67152,14 +70871,14 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONObject"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONObject-4734"><a href="#JSONObject-4734"><span class="linenos">4734</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-4735"><a href="#JSONObject-4735"><span class="linenos">4735</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="JSONObject-4736"><a href="#JSONObject-4736"><span class="linenos">4736</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-4737"><a href="#JSONObject-4737"><span class="linenos">4737</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-4738"><a href="#JSONObject-4738"><span class="linenos">4738</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-4739"><a href="#JSONObject-4739"><span class="linenos">4739</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-4740"><a href="#JSONObject-4740"><span class="linenos">4740</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-4741"><a href="#JSONObject-4741"><span class="linenos">4741</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="JSONObject-4817"><a href="#JSONObject-4817"><span class="linenos">4817</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-4818"><a href="#JSONObject-4818"><span class="linenos">4818</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="JSONObject-4819"><a href="#JSONObject-4819"><span class="linenos">4819</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-4820"><a href="#JSONObject-4820"><span class="linenos">4820</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-4821"><a href="#JSONObject-4821"><span class="linenos">4821</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-4822"><a href="#JSONObject-4822"><span class="linenos">4822</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-4823"><a href="#JSONObject-4823"><span class="linenos">4823</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-4824"><a href="#JSONObject-4824"><span class="linenos">4824</span></a> <span class="p">}</span>
</span></pre></div>
@@ -67215,6 +70934,7 @@ array<int> != array<float>.</p>
<dd id="JSONObject.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="JSONObject.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="JSONObject.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="JSONObject.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="JSONObject.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="JSONObject.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="JSONObject.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -67235,6 +70955,7 @@ array<int> != array<float>.</p>
<dd id="JSONObject.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="JSONObject.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="JSONObject.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="JSONObject.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="JSONObject.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="JSONObject.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="JSONObject.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -67256,6 +70977,7 @@ array<int> != array<float>.</p>
<dd id="JSONObject.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="JSONObject.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="JSONObject.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="JSONObject.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -67280,13 +71002,13 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONArray"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONArray-4745"><a href="#JSONArray-4745"><span class="linenos">4745</span></a><span class="k">class</span> <span class="nc">JSONArray</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="JSONArray-4746"><a href="#JSONArray-4746"><span class="linenos">4746</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="JSONArray-4747"><a href="#JSONArray-4747"><span class="linenos">4747</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="JSONArray-4748"><a href="#JSONArray-4748"><span class="linenos">4748</span></a> <span class="s2">&quot;null_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JSONArray-4749"><a href="#JSONArray-4749"><span class="linenos">4749</span></a> <span class="s2">&quot;return_type&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JSONArray-4750"><a href="#JSONArray-4750"><span class="linenos">4750</span></a> <span class="s2">&quot;strict&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JSONArray-4751"><a href="#JSONArray-4751"><span class="linenos">4751</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="JSONArray-4828"><a href="#JSONArray-4828"><span class="linenos">4828</span></a><span class="k">class</span> <span class="nc">JSONArray</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="JSONArray-4829"><a href="#JSONArray-4829"><span class="linenos">4829</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="JSONArray-4830"><a href="#JSONArray-4830"><span class="linenos">4830</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="JSONArray-4831"><a href="#JSONArray-4831"><span class="linenos">4831</span></a> <span class="s2">&quot;null_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JSONArray-4832"><a href="#JSONArray-4832"><span class="linenos">4832</span></a> <span class="s2">&quot;return_type&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JSONArray-4833"><a href="#JSONArray-4833"><span class="linenos">4833</span></a> <span class="s2">&quot;strict&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JSONArray-4834"><a href="#JSONArray-4834"><span class="linenos">4834</span></a> <span class="p">}</span>
</span></pre></div>
@@ -67341,6 +71063,7 @@ array<int> != array<float>.</p>
<dd id="JSONArray.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="JSONArray.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="JSONArray.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="JSONArray.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="JSONArray.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="JSONArray.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="JSONArray.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -67361,6 +71084,7 @@ array<int> != array<float>.</p>
<dd id="JSONArray.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="JSONArray.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="JSONArray.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="JSONArray.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="JSONArray.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="JSONArray.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="JSONArray.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -67382,6 +71106,7 @@ array<int> != array<float>.</p>
<dd id="JSONArray.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="JSONArray.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="JSONArray.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="JSONArray.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -67406,14 +71131,14 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONArrayAgg"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONArrayAgg-4755"><a href="#JSONArrayAgg-4755"><span class="linenos">4755</span></a><span class="k">class</span> <span class="nc">JSONArrayAgg</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="JSONArrayAgg-4756"><a href="#JSONArrayAgg-4756"><span class="linenos">4756</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="JSONArrayAgg-4757"><a href="#JSONArrayAgg-4757"><span class="linenos">4757</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="JSONArrayAgg-4758"><a href="#JSONArrayAgg-4758"><span class="linenos">4758</span></a> <span class="s2">&quot;order&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JSONArrayAgg-4759"><a href="#JSONArrayAgg-4759"><span class="linenos">4759</span></a> <span class="s2">&quot;null_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JSONArrayAgg-4760"><a href="#JSONArrayAgg-4760"><span class="linenos">4760</span></a> <span class="s2">&quot;return_type&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JSONArrayAgg-4761"><a href="#JSONArrayAgg-4761"><span class="linenos">4761</span></a> <span class="s2">&quot;strict&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JSONArrayAgg-4762"><a href="#JSONArrayAgg-4762"><span class="linenos">4762</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="JSONArrayAgg-4838"><a href="#JSONArrayAgg-4838"><span class="linenos">4838</span></a><span class="k">class</span> <span class="nc">JSONArrayAgg</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="JSONArrayAgg-4839"><a href="#JSONArrayAgg-4839"><span class="linenos">4839</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="JSONArrayAgg-4840"><a href="#JSONArrayAgg-4840"><span class="linenos">4840</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="JSONArrayAgg-4841"><a href="#JSONArrayAgg-4841"><span class="linenos">4841</span></a> <span class="s2">&quot;order&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JSONArrayAgg-4842"><a href="#JSONArrayAgg-4842"><span class="linenos">4842</span></a> <span class="s2">&quot;null_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JSONArrayAgg-4843"><a href="#JSONArrayAgg-4843"><span class="linenos">4843</span></a> <span class="s2">&quot;return_type&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JSONArrayAgg-4844"><a href="#JSONArrayAgg-4844"><span class="linenos">4844</span></a> <span class="s2">&quot;strict&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JSONArrayAgg-4845"><a href="#JSONArrayAgg-4845"><span class="linenos">4845</span></a> <span class="p">}</span>
</span></pre></div>
@@ -67468,6 +71193,7 @@ array<int> != array<float>.</p>
<dd id="JSONArrayAgg.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="JSONArrayAgg.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="JSONArrayAgg.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="JSONArrayAgg.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="JSONArrayAgg.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="JSONArrayAgg.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="JSONArrayAgg.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -67488,6 +71214,7 @@ array<int> != array<float>.</p>
<dd id="JSONArrayAgg.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="JSONArrayAgg.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="JSONArrayAgg.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="JSONArrayAgg.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="JSONArrayAgg.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="JSONArrayAgg.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="JSONArrayAgg.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -67509,6 +71236,7 @@ array<int> != array<float>.</p>
<dd id="JSONArrayAgg.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="JSONArrayAgg.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="JSONArrayAgg.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="JSONArrayAgg.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -67533,8 +71261,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONColumnDef"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONColumnDef-4767"><a href="#JSONColumnDef-4767"><span class="linenos">4767</span></a><span class="k">class</span> <span class="nc">JSONColumnDef</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="JSONColumnDef-4768"><a href="#JSONColumnDef-4768"><span class="linenos">4768</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;path&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;nested_schema&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="JSONColumnDef-4850"><a href="#JSONColumnDef-4850"><span class="linenos">4850</span></a><span class="k">class</span> <span class="nc">JSONColumnDef</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="JSONColumnDef-4851"><a href="#JSONColumnDef-4851"><span class="linenos">4851</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;path&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;nested_schema&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -67589,6 +71317,7 @@ array<int> != array<float>.</p>
<dd id="JSONColumnDef.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="JSONColumnDef.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="JSONColumnDef.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="JSONColumnDef.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="JSONColumnDef.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="JSONColumnDef.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="JSONColumnDef.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -67609,6 +71338,7 @@ array<int> != array<float>.</p>
<dd id="JSONColumnDef.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="JSONColumnDef.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="JSONColumnDef.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="JSONColumnDef.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="JSONColumnDef.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="JSONColumnDef.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="JSONColumnDef.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -67630,6 +71360,7 @@ array<int> != array<float>.</p>
<dd id="JSONColumnDef.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="JSONColumnDef.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="JSONColumnDef.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="JSONColumnDef.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -67646,8 +71377,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONSchema"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONSchema-4771"><a href="#JSONSchema-4771"><span class="linenos">4771</span></a><span class="k">class</span> <span class="nc">JSONSchema</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="JSONSchema-4772"><a href="#JSONSchema-4772"><span class="linenos">4772</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="JSONSchema-4854"><a href="#JSONSchema-4854"><span class="linenos">4854</span></a><span class="k">class</span> <span class="nc">JSONSchema</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="JSONSchema-4855"><a href="#JSONSchema-4855"><span class="linenos">4855</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>
@@ -67702,6 +71433,7 @@ array<int> != array<float>.</p>
<dd id="JSONSchema.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="JSONSchema.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="JSONSchema.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="JSONSchema.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="JSONSchema.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="JSONSchema.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="JSONSchema.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -67722,6 +71454,7 @@ array<int> != array<float>.</p>
<dd id="JSONSchema.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="JSONSchema.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="JSONSchema.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="JSONSchema.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="JSONSchema.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="JSONSchema.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="JSONSchema.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -67743,6 +71476,7 @@ array<int> != array<float>.</p>
<dd id="JSONSchema.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="JSONSchema.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="JSONSchema.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="JSONSchema.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -67759,14 +71493,14 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONTable"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONTable-4776"><a href="#JSONTable-4776"><span class="linenos">4776</span></a><span class="k">class</span> <span class="nc">JSONTable</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="JSONTable-4777"><a href="#JSONTable-4777"><span class="linenos">4777</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="JSONTable-4778"><a href="#JSONTable-4778"><span class="linenos">4778</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="JSONTable-4779"><a href="#JSONTable-4779"><span class="linenos">4779</span></a> <span class="s2">&quot;schema&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="JSONTable-4780"><a href="#JSONTable-4780"><span class="linenos">4780</span></a> <span class="s2">&quot;path&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JSONTable-4781"><a href="#JSONTable-4781"><span class="linenos">4781</span></a> <span class="s2">&quot;error_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JSONTable-4782"><a href="#JSONTable-4782"><span class="linenos">4782</span></a> <span class="s2">&quot;empty_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JSONTable-4783"><a href="#JSONTable-4783"><span class="linenos">4783</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="JSONTable-4859"><a href="#JSONTable-4859"><span class="linenos">4859</span></a><span class="k">class</span> <span class="nc">JSONTable</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="JSONTable-4860"><a href="#JSONTable-4860"><span class="linenos">4860</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="JSONTable-4861"><a href="#JSONTable-4861"><span class="linenos">4861</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="JSONTable-4862"><a href="#JSONTable-4862"><span class="linenos">4862</span></a> <span class="s2">&quot;schema&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="JSONTable-4863"><a href="#JSONTable-4863"><span class="linenos">4863</span></a> <span class="s2">&quot;path&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JSONTable-4864"><a href="#JSONTable-4864"><span class="linenos">4864</span></a> <span class="s2">&quot;error_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JSONTable-4865"><a href="#JSONTable-4865"><span class="linenos">4865</span></a> <span class="s2">&quot;empty_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JSONTable-4866"><a href="#JSONTable-4866"><span class="linenos">4866</span></a> <span class="p">}</span>
</span></pre></div>
@@ -67821,6 +71555,7 @@ array<int> != array<float>.</p>
<dd id="JSONTable.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="JSONTable.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="JSONTable.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="JSONTable.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="JSONTable.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="JSONTable.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="JSONTable.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -67841,6 +71576,7 @@ array<int> != array<float>.</p>
<dd id="JSONTable.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="JSONTable.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="JSONTable.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="JSONTable.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="JSONTable.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="JSONTable.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="JSONTable.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -67862,6 +71598,7 @@ array<int> != array<float>.</p>
<dd id="JSONTable.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="JSONTable.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="JSONTable.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="JSONTable.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -67886,8 +71623,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#OpenJSONColumnDef"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="OpenJSONColumnDef-4786"><a href="#OpenJSONColumnDef-4786"><span class="linenos">4786</span></a><span class="k">class</span> <span class="nc">OpenJSONColumnDef</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="OpenJSONColumnDef-4787"><a href="#OpenJSONColumnDef-4787"><span class="linenos">4787</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;path&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;as_json&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="OpenJSONColumnDef-4869"><a href="#OpenJSONColumnDef-4869"><span class="linenos">4869</span></a><span class="k">class</span> <span class="nc">OpenJSONColumnDef</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="OpenJSONColumnDef-4870"><a href="#OpenJSONColumnDef-4870"><span class="linenos">4870</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;path&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;as_json&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -67942,6 +71679,7 @@ array<int> != array<float>.</p>
<dd id="OpenJSONColumnDef.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="OpenJSONColumnDef.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="OpenJSONColumnDef.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="OpenJSONColumnDef.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="OpenJSONColumnDef.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="OpenJSONColumnDef.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="OpenJSONColumnDef.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -67962,6 +71700,7 @@ array<int> != array<float>.</p>
<dd id="OpenJSONColumnDef.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="OpenJSONColumnDef.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="OpenJSONColumnDef.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="OpenJSONColumnDef.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="OpenJSONColumnDef.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="OpenJSONColumnDef.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="OpenJSONColumnDef.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -67983,6 +71722,7 @@ array<int> != array<float>.</p>
<dd id="OpenJSONColumnDef.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="OpenJSONColumnDef.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="OpenJSONColumnDef.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="OpenJSONColumnDef.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -67999,8 +71739,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#OpenJSON"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="OpenJSON-4790"><a href="#OpenJSON-4790"><span class="linenos">4790</span></a><span class="k">class</span> <span class="nc">OpenJSON</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="OpenJSON-4791"><a href="#OpenJSON-4791"><span class="linenos">4791</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;path&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="OpenJSON-4873"><a href="#OpenJSON-4873"><span class="linenos">4873</span></a><span class="k">class</span> <span class="nc">OpenJSON</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="OpenJSON-4874"><a href="#OpenJSON-4874"><span class="linenos">4874</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;path&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -68055,6 +71795,7 @@ array<int> != array<float>.</p>
<dd id="OpenJSON.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="OpenJSON.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="OpenJSON.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="OpenJSON.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="OpenJSON.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="OpenJSON.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="OpenJSON.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -68075,6 +71816,7 @@ array<int> != array<float>.</p>
<dd id="OpenJSON.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="OpenJSON.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="OpenJSON.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="OpenJSON.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="OpenJSON.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="OpenJSON.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="OpenJSON.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -68096,6 +71838,7 @@ array<int> != array<float>.</p>
<dd id="OpenJSON.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="OpenJSON.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="OpenJSON.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="OpenJSON.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -68120,8 +71863,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONBContains"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONBContains-4794"><a href="#JSONBContains-4794"><span class="linenos">4794</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-4795"><a href="#JSONBContains-4795"><span class="linenos">4795</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-4877"><a href="#JSONBContains-4877"><span class="linenos">4877</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-4878"><a href="#JSONBContains-4878"><span class="linenos">4878</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>
@@ -68164,6 +71907,7 @@ array<int> != array<float>.</p>
<dd id="JSONBContains.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="JSONBContains.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="JSONBContains.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="JSONBContains.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="JSONBContains.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="JSONBContains.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="JSONBContains.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -68184,6 +71928,7 @@ array<int> != array<float>.</p>
<dd id="JSONBContains.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="JSONBContains.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="JSONBContains.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="JSONBContains.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="JSONBContains.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="JSONBContains.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="JSONBContains.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -68205,6 +71950,7 @@ array<int> != array<float>.</p>
<dd id="JSONBContains.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="JSONBContains.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="JSONBContains.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="JSONBContains.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Binary">Binary</a></dt>
@@ -68227,8 +71973,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONExtract"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONExtract-4798"><a href="#JSONExtract-4798"><span class="linenos">4798</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-4799"><a href="#JSONExtract-4799"><span class="linenos">4799</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-4881"><a href="#JSONExtract-4881"><span class="linenos">4881</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-4882"><a href="#JSONExtract-4882"><span class="linenos">4882</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSON_EXTRACT&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -68271,6 +72017,7 @@ array<int> != array<float>.</p>
<dd id="JSONExtract.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="JSONExtract.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="JSONExtract.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="JSONExtract.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="JSONExtract.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="JSONExtract.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="JSONExtract.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -68291,6 +72038,7 @@ array<int> != array<float>.</p>
<dd id="JSONExtract.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="JSONExtract.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="JSONExtract.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="JSONExtract.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="JSONExtract.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="JSONExtract.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="JSONExtract.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -68312,6 +72060,7 @@ array<int> != array<float>.</p>
<dd id="JSONExtract.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="JSONExtract.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="JSONExtract.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="JSONExtract.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Binary">Binary</a></dt>
@@ -68342,8 +72091,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONExtractScalar"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONExtractScalar-4802"><a href="#JSONExtractScalar-4802"><span class="linenos">4802</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-4803"><a href="#JSONExtractScalar-4803"><span class="linenos">4803</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSON_EXTRACT_SCALAR&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="JSONExtractScalar-4885"><a href="#JSONExtractScalar-4885"><span class="linenos">4885</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-4886"><a href="#JSONExtractScalar-4886"><span class="linenos">4886</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>
@@ -68386,6 +72135,7 @@ array<int> != array<float>.</p>
<dd id="JSONExtractScalar.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="JSONExtractScalar.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="JSONExtractScalar.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="JSONExtractScalar.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="JSONExtractScalar.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="JSONExtractScalar.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="JSONExtractScalar.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -68406,6 +72156,7 @@ array<int> != array<float>.</p>
<dd id="JSONExtractScalar.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="JSONExtractScalar.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="JSONExtractScalar.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="JSONExtractScalar.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="JSONExtractScalar.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="JSONExtractScalar.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="JSONExtractScalar.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -68427,6 +72178,7 @@ array<int> != array<float>.</p>
<dd id="JSONExtractScalar.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="JSONExtractScalar.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="JSONExtractScalar.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="JSONExtractScalar.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Binary">Binary</a></dt>
@@ -68457,8 +72209,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONBExtract"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONBExtract-4806"><a href="#JSONBExtract-4806"><span class="linenos">4806</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-4807"><a href="#JSONBExtract-4807"><span class="linenos">4807</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-4889"><a href="#JSONBExtract-4889"><span class="linenos">4889</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-4890"><a href="#JSONBExtract-4890"><span class="linenos">4890</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>
@@ -68501,6 +72253,7 @@ array<int> != array<float>.</p>
<dd id="JSONBExtract.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="JSONBExtract.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="JSONBExtract.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="JSONBExtract.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="JSONBExtract.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="JSONBExtract.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="JSONBExtract.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -68521,6 +72274,7 @@ array<int> != array<float>.</p>
<dd id="JSONBExtract.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="JSONBExtract.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="JSONBExtract.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="JSONBExtract.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="JSONBExtract.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="JSONBExtract.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="JSONBExtract.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -68542,6 +72296,7 @@ array<int> != array<float>.</p>
<dd id="JSONBExtract.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="JSONBExtract.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="JSONBExtract.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="JSONBExtract.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Binary">Binary</a></dt>
@@ -68572,8 +72327,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONBExtractScalar"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONBExtractScalar-4810"><a href="#JSONBExtractScalar-4810"><span class="linenos">4810</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-4811"><a href="#JSONBExtractScalar-4811"><span class="linenos">4811</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-4893"><a href="#JSONBExtractScalar-4893"><span class="linenos">4893</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-4894"><a href="#JSONBExtractScalar-4894"><span class="linenos">4894</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSONB_EXTRACT_SCALAR&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -68616,6 +72371,7 @@ array<int> != array<float>.</p>
<dd id="JSONBExtractScalar.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="JSONBExtractScalar.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="JSONBExtractScalar.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="JSONBExtractScalar.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="JSONBExtractScalar.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="JSONBExtractScalar.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="JSONBExtractScalar.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -68636,6 +72392,7 @@ array<int> != array<float>.</p>
<dd id="JSONBExtractScalar.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="JSONBExtractScalar.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="JSONBExtractScalar.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="JSONBExtractScalar.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="JSONBExtractScalar.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="JSONBExtractScalar.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="JSONBExtractScalar.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -68657,6 +72414,7 @@ array<int> != array<float>.</p>
<dd id="JSONBExtractScalar.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="JSONBExtractScalar.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="JSONBExtractScalar.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="JSONBExtractScalar.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Binary">Binary</a></dt>
@@ -68687,9 +72445,9 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONFormat"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONFormat-4814"><a href="#JSONFormat-4814"><span class="linenos">4814</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-4815"><a href="#JSONFormat-4815"><span class="linenos">4815</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">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-4816"><a href="#JSONFormat-4816"><span class="linenos">4816</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSON_FORMAT&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="JSONFormat-4897"><a href="#JSONFormat-4897"><span class="linenos">4897</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-4898"><a href="#JSONFormat-4898"><span class="linenos">4898</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">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-4899"><a href="#JSONFormat-4899"><span class="linenos">4899</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSON_FORMAT&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -68744,6 +72502,7 @@ array<int> != array<float>.</p>
<dd id="JSONFormat.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="JSONFormat.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="JSONFormat.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="JSONFormat.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="JSONFormat.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="JSONFormat.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="JSONFormat.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -68764,6 +72523,7 @@ array<int> != array<float>.</p>
<dd id="JSONFormat.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="JSONFormat.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="JSONFormat.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="JSONFormat.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="JSONFormat.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="JSONFormat.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="JSONFormat.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -68785,6 +72545,7 @@ array<int> != array<float>.</p>
<dd id="JSONFormat.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="JSONFormat.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="JSONFormat.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="JSONFormat.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -68809,8 +72570,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONArrayContains"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONArrayContains-4820"><a href="#JSONArrayContains-4820"><span class="linenos">4820</span></a><span class="k">class</span> <span class="nc">JSONArrayContains</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
-</span><span id="JSONArrayContains-4821"><a href="#JSONArrayContains-4821"><span class="linenos">4821</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSON_ARRAY_CONTAINS&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="JSONArrayContains-4903"><a href="#JSONArrayContains-4903"><span class="linenos">4903</span></a><span class="k">class</span> <span class="nc">JSONArrayContains</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
+</span><span id="JSONArrayContains-4904"><a href="#JSONArrayContains-4904"><span class="linenos">4904</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSON_ARRAY_CONTAINS&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -68853,6 +72614,7 @@ array<int> != array<float>.</p>
<dd id="JSONArrayContains.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="JSONArrayContains.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="JSONArrayContains.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="JSONArrayContains.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="JSONArrayContains.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="JSONArrayContains.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="JSONArrayContains.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -68873,6 +72635,7 @@ array<int> != array<float>.</p>
<dd id="JSONArrayContains.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="JSONArrayContains.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="JSONArrayContains.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="JSONArrayContains.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="JSONArrayContains.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="JSONArrayContains.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="JSONArrayContains.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -68894,6 +72657,7 @@ array<int> != array<float>.</p>
<dd id="JSONArrayContains.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="JSONArrayContains.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="JSONArrayContains.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="JSONArrayContains.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Binary">Binary</a></dt>
@@ -68924,11 +72688,11 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#ParseJSON"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ParseJSON-4824"><a href="#ParseJSON-4824"><span class="linenos">4824</span></a><span class="k">class</span> <span class="nc">ParseJSON</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="ParseJSON-4825"><a href="#ParseJSON-4825"><span class="linenos">4825</span></a> <span class="c1"># BigQuery, Snowflake have PARSE_JSON, Presto has JSON_PARSE</span>
-</span><span id="ParseJSON-4826"><a href="#ParseJSON-4826"><span class="linenos">4826</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;PARSE_JSON&quot;</span><span class="p">,</span> <span class="s2">&quot;JSON_PARSE&quot;</span><span class="p">]</span>
-</span><span id="ParseJSON-4827"><a href="#ParseJSON-4827"><span class="linenos">4827</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="ParseJSON-4828"><a href="#ParseJSON-4828"><span class="linenos">4828</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ParseJSON-4907"><a href="#ParseJSON-4907"><span class="linenos">4907</span></a><span class="k">class</span> <span class="nc">ParseJSON</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="ParseJSON-4908"><a href="#ParseJSON-4908"><span class="linenos">4908</span></a> <span class="c1"># BigQuery, Snowflake have PARSE_JSON, Presto has JSON_PARSE</span>
+</span><span id="ParseJSON-4909"><a href="#ParseJSON-4909"><span class="linenos">4909</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;PARSE_JSON&quot;</span><span class="p">,</span> <span class="s2">&quot;JSON_PARSE&quot;</span><span class="p">]</span>
+</span><span id="ParseJSON-4910"><a href="#ParseJSON-4910"><span class="linenos">4910</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="ParseJSON-4911"><a href="#ParseJSON-4911"><span class="linenos">4911</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -68995,6 +72759,7 @@ array<int> != array<float>.</p>
<dd id="ParseJSON.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ParseJSON.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="ParseJSON.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="ParseJSON.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="ParseJSON.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="ParseJSON.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ParseJSON.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -69015,6 +72780,7 @@ array<int> != array<float>.</p>
<dd id="ParseJSON.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ParseJSON.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ParseJSON.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="ParseJSON.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="ParseJSON.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ParseJSON.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ParseJSON.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -69036,6 +72802,7 @@ array<int> != array<float>.</p>
<dd id="ParseJSON.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="ParseJSON.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="ParseJSON.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="ParseJSON.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -69048,6 +72815,170 @@ array<int> != array<float>.</p>
</dl>
</div>
</section>
+ <section id="GetPath">
+ <input id="GetPath-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">GetPath</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
+
+ <label class="view-source-button" for="GetPath-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#GetPath"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="GetPath-4915"><a href="#GetPath-4915"><span class="linenos">4915</span></a><span class="k">class</span> <span class="nc">GetPath</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="GetPath-4916"><a href="#GetPath-4916"><span class="linenos">4916</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="GetPath-4917"><a href="#GetPath-4917"><span class="linenos">4917</span></a>
+</span><span id="GetPath-4918"><a href="#GetPath-4918"><span class="linenos">4918</span></a> <span class="nd">@property</span>
+</span><span id="GetPath-4919"><a href="#GetPath-4919"><span class="linenos">4919</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="GetPath-4920"><a href="#GetPath-4920"><span class="linenos">4920</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">output_name</span>
+</span></pre></div>
+
+
+
+
+ <div id="GetPath.arg_types" class="classattr">
+ <div class="attr variable">
+ <span class="name">arg_types</span> =
+<span class="default_value">{&#39;this&#39;: True, &#39;expression&#39;: True}</span>
+
+
+ </div>
+ <a class="headerlink" href="#GetPath.arg_types"></a>
+
+
+
+ </div>
+ <div id="GetPath.output_name" class="classattr">
+ <input id="GetPath.output_name-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
+ <span class="name">output_name</span><span class="annotation">: str</span>
+
+ <label class="view-source-button" for="GetPath.output_name-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#GetPath.output_name"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="GetPath.output_name-4918"><a href="#GetPath.output_name-4918"><span class="linenos">4918</span></a> <span class="nd">@property</span>
+</span><span id="GetPath.output_name-4919"><a href="#GetPath.output_name-4919"><span class="linenos">4919</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="GetPath.output_name-4920"><a href="#GetPath.output_name-4920"><span class="linenos">4920</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">output_name</span>
+</span></pre></div>
+
+
+ <div class="docstring"><p>Name of the output column if this expression is a selection.</p>
+
+<p>If the Expression has no output name, an empty string is returned.</p>
+
+<h6 id="example">Example:</h6>
+
+<blockquote>
+ <div class="pdoc-code codehilite">
+<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sqlglot</span> <span class="kn">import</span> <span class="n">parse_one</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">parse_one</span><span class="p">(</span><span class="s2">&quot;SELECT a&quot;</span><span class="p">)<a href="">sqlglot.expressions</a></span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">output_name</span>
+<span class="go">&#39;a&#39;</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">parse_one</span><span class="p">(</span><span class="s2">&quot;SELECT b AS c&quot;</span><span class="p">)<a href="">sqlglot.expressions</a></span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">output_name</span>
+<span class="go">&#39;c&#39;</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">parse_one</span><span class="p">(</span><span class="s2">&quot;SELECT 1 + 2&quot;</span><span class="p">)<a href="">sqlglot.expressions</a></span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">output_name</span>
+<span class="go">&#39;&#39;</span>
+</code></pre>
+ </div>
+</blockquote>
+</div>
+
+
+ </div>
+ <div id="GetPath.key" class="classattr">
+ <div class="attr variable">
+ <span class="name">key</span> =
+<span class="default_value">&#39;getpath&#39;</span>
+
+
+ </div>
+ <a class="headerlink" href="#GetPath.key"></a>
+
+
+
+ </div>
+ <div class="inherited">
+ <h5>Inherited Members</h5>
+ <dl>
+ <div><dt><a href="#Expression">Expression</a></dt>
+ <dd id="GetPath.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
+ <dd id="GetPath.args" class="variable"><a href="#Expression.args">args</a></dd>
+ <dd id="GetPath.parent" class="variable"><a href="#Expression.parent">parent</a></dd>
+ <dd id="GetPath.arg_key" class="variable"><a href="#Expression.arg_key">arg_key</a></dd>
+ <dd id="GetPath.comments" class="variable"><a href="#Expression.comments">comments</a></dd>
+ <dd id="GetPath.hashable_args" class="variable"><a href="#Expression.hashable_args">hashable_args</a></dd>
+ <dd id="GetPath.this" class="variable"><a href="#Expression.this">this</a></dd>
+ <dd id="GetPath.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
+ <dd id="GetPath.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
+ <dd id="GetPath.text" class="function"><a href="#Expression.text">text</a></dd>
+ <dd id="GetPath.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
+ <dd id="GetPath.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
+ <dd id="GetPath.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
+ <dd id="GetPath.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
+ <dd id="GetPath.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="GetPath.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
+ <dd id="GetPath.name" class="variable"><a href="#Expression.name">name</a></dd>
+ <dd id="GetPath.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
+ <dd id="GetPath.type" class="variable"><a href="#Expression.type">type</a></dd>
+ <dd id="GetPath.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="GetPath.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
+ <dd id="GetPath.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
+ <dd id="GetPath.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="GetPath.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
+ <dd id="GetPath.append" class="function"><a href="#Expression.append">append</a></dd>
+ <dd id="GetPath.set" class="function"><a href="#Expression.set">set</a></dd>
+ <dd id="GetPath.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
+ <dd id="GetPath.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
+ <dd id="GetPath.find" class="function"><a href="#Expression.find">find</a></dd>
+ <dd id="GetPath.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
+ <dd id="GetPath.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
+ <dd id="GetPath.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
+ <dd id="GetPath.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
+ <dd id="GetPath.root" class="function"><a href="#Expression.root">root</a></dd>
+ <dd id="GetPath.walk" class="function"><a href="#Expression.walk">walk</a></dd>
+ <dd id="GetPath.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
+ <dd id="GetPath.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
+ <dd id="GetPath.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
+ <dd id="GetPath.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
+ <dd id="GetPath.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
+ <dd id="GetPath.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="GetPath.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
+ <dd id="GetPath.sql" class="function"><a href="#Expression.sql">sql</a></dd>
+ <dd id="GetPath.transform" class="function"><a href="#Expression.transform">transform</a></dd>
+ <dd id="GetPath.replace" class="function"><a href="#Expression.replace">replace</a></dd>
+ <dd id="GetPath.pop" class="function"><a href="#Expression.pop">pop</a></dd>
+ <dd id="GetPath.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
+ <dd id="GetPath.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
+ <dd id="GetPath.dump" class="function"><a href="#Expression.dump">dump</a></dd>
+ <dd id="GetPath.load" class="function"><a href="#Expression.load">load</a></dd>
+ <dd id="GetPath.and_" class="function"><a href="#Expression.and_">and_</a></dd>
+ <dd id="GetPath.or_" class="function"><a href="#Expression.or_">or_</a></dd>
+ <dd id="GetPath.not_" class="function"><a href="#Expression.not_">not_</a></dd>
+ <dd id="GetPath.as_" class="function"><a href="#Expression.as_">as_</a></dd>
+ <dd id="GetPath.isin" class="function"><a href="#Expression.isin">isin</a></dd>
+ <dd id="GetPath.between" class="function"><a href="#Expression.between">between</a></dd>
+ <dd id="GetPath.is_" class="function"><a href="#Expression.is_">is_</a></dd>
+ <dd id="GetPath.like" class="function"><a href="#Expression.like">like</a></dd>
+ <dd id="GetPath.ilike" class="function"><a href="#Expression.ilike">ilike</a></dd>
+ <dd id="GetPath.eq" class="function"><a href="#Expression.eq">eq</a></dd>
+ <dd id="GetPath.neq" class="function"><a href="#Expression.neq">neq</a></dd>
+ <dd id="GetPath.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
+ <dd id="GetPath.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="GetPath.desc" class="function"><a href="#Expression.desc">desc</a></dd>
+
+ </div>
+ <div><dt><a href="#Func">Func</a></dt>
+ <dd id="GetPath.is_var_len_args" class="variable"><a href="#Func.is_var_len_args">is_var_len_args</a></dd>
+ <dd id="GetPath.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
+ <dd id="GetPath.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
+ <dd id="GetPath.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
+ <dd id="GetPath.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
+
+ </div>
+ </dl>
+ </div>
+ </section>
<section id="Least">
<input id="Least-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
@@ -69059,9 +72990,9 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Least"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Least-4831"><a href="#Least-4831"><span class="linenos">4831</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-4832"><a href="#Least-4832"><span class="linenos">4832</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="Least-4833"><a href="#Least-4833"><span class="linenos">4833</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-4923"><a href="#Least-4923"><span class="linenos">4923</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-4924"><a href="#Least-4924"><span class="linenos">4924</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="Least-4925"><a href="#Least-4925"><span class="linenos">4925</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -69128,6 +73059,7 @@ array<int> != array<float>.</p>
<dd id="Least.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Least.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Least.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Least.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Least.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Least.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Least.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -69148,6 +73080,7 @@ array<int> != array<float>.</p>
<dd id="Least.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Least.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Least.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Least.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Least.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Least.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Least.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -69169,6 +73102,7 @@ array<int> != array<float>.</p>
<dd id="Least.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Least.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Least.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Least.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -69192,8 +73126,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Left"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Left-4836"><a href="#Left-4836"><span class="linenos">4836</span></a><span class="k">class</span> <span class="nc">Left</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Left-4837"><a href="#Left-4837"><span class="linenos">4837</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Left-4928"><a href="#Left-4928"><span class="linenos">4928</span></a><span class="k">class</span> <span class="nc">Left</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Left-4929"><a href="#Left-4929"><span class="linenos">4929</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -69248,6 +73182,7 @@ array<int> != array<float>.</p>
<dd id="Left.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Left.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Left.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Left.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Left.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Left.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Left.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -69268,6 +73203,7 @@ array<int> != array<float>.</p>
<dd id="Left.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Left.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Left.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Left.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Left.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Left.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Left.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -69289,6 +73225,7 @@ array<int> != array<float>.</p>
<dd id="Left.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Left.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Left.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Left.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -69313,8 +73250,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Right"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Right-4840"><a href="#Right-4840"><span class="linenos">4840</span></a><span class="k">class</span> <span class="nc">Right</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Right-4841"><a href="#Right-4841"><span class="linenos">4841</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Right-4932"><a href="#Right-4932"><span class="linenos">4932</span></a><span class="k">class</span> <span class="nc">Right</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Right-4933"><a href="#Right-4933"><span class="linenos">4933</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -69369,6 +73306,7 @@ array<int> != array<float>.</p>
<dd id="Right.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Right.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Right.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Right.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Right.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Right.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Right.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -69389,6 +73327,7 @@ array<int> != array<float>.</p>
<dd id="Right.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Right.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Right.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Right.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Right.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Right.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Right.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -69410,6 +73349,7 @@ array<int> != array<float>.</p>
<dd id="Right.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Right.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Right.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Right.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -69434,8 +73374,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Length"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Length-4844"><a href="#Length-4844"><span class="linenos">4844</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-4845"><a href="#Length-4845"><span class="linenos">4845</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;LENGTH&quot;</span><span class="p">,</span> <span class="s2">&quot;LEN&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Length-4936"><a href="#Length-4936"><span class="linenos">4936</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-4937"><a href="#Length-4937"><span class="linenos">4937</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;LENGTH&quot;</span><span class="p">,</span> <span class="s2">&quot;LEN&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -69479,6 +73419,7 @@ array<int> != array<float>.</p>
<dd id="Length.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Length.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Length.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Length.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Length.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Length.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Length.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -69499,6 +73440,7 @@ array<int> != array<float>.</p>
<dd id="Length.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Length.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Length.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Length.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Length.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Length.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Length.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -69520,6 +73462,7 @@ array<int> != array<float>.</p>
<dd id="Length.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Length.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Length.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Length.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -69544,14 +73487,14 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Levenshtein"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Levenshtein-4848"><a href="#Levenshtein-4848"><span class="linenos">4848</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-4849"><a href="#Levenshtein-4849"><span class="linenos">4849</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Levenshtein-4850"><a href="#Levenshtein-4850"><span class="linenos">4850</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Levenshtein-4851"><a href="#Levenshtein-4851"><span class="linenos">4851</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-4852"><a href="#Levenshtein-4852"><span class="linenos">4852</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-4853"><a href="#Levenshtein-4853"><span class="linenos">4853</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-4854"><a href="#Levenshtein-4854"><span class="linenos">4854</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-4855"><a href="#Levenshtein-4855"><span class="linenos">4855</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Levenshtein-4940"><a href="#Levenshtein-4940"><span class="linenos">4940</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-4941"><a href="#Levenshtein-4941"><span class="linenos">4941</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Levenshtein-4942"><a href="#Levenshtein-4942"><span class="linenos">4942</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-4943"><a href="#Levenshtein-4943"><span class="linenos">4943</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-4944"><a href="#Levenshtein-4944"><span class="linenos">4944</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-4945"><a href="#Levenshtein-4945"><span class="linenos">4945</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-4946"><a href="#Levenshtein-4946"><span class="linenos">4946</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-4947"><a href="#Levenshtein-4947"><span class="linenos">4947</span></a> <span class="p">}</span>
</span></pre></div>
@@ -69606,6 +73549,7 @@ array<int> != array<float>.</p>
<dd id="Levenshtein.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Levenshtein.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Levenshtein.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Levenshtein.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Levenshtein.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Levenshtein.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Levenshtein.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -69626,6 +73570,7 @@ array<int> != array<float>.</p>
<dd id="Levenshtein.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Levenshtein.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Levenshtein.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Levenshtein.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Levenshtein.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Levenshtein.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Levenshtein.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -69647,6 +73592,7 @@ array<int> != array<float>.</p>
<dd id="Levenshtein.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Levenshtein.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Levenshtein.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Levenshtein.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -69671,8 +73617,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Ln"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Ln-4858"><a href="#Ln-4858"><span class="linenos">4858</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-4859"><a href="#Ln-4859"><span class="linenos">4859</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Ln-4950"><a href="#Ln-4950"><span class="linenos">4950</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-4951"><a href="#Ln-4951"><span class="linenos">4951</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -69716,6 +73662,7 @@ array<int> != array<float>.</p>
<dd id="Ln.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Ln.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Ln.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Ln.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Ln.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Ln.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Ln.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -69736,6 +73683,7 @@ array<int> != array<float>.</p>
<dd id="Ln.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Ln.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Ln.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Ln.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Ln.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Ln.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Ln.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -69757,6 +73705,7 @@ array<int> != array<float>.</p>
<dd id="Ln.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Ln.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Ln.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Ln.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -69781,8 +73730,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Log"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Log-4862"><a href="#Log-4862"><span class="linenos">4862</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-4863"><a href="#Log-4863"><span class="linenos">4863</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Log-4954"><a href="#Log-4954"><span class="linenos">4954</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-4955"><a href="#Log-4955"><span class="linenos">4955</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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>
@@ -69837,6 +73786,7 @@ array<int> != array<float>.</p>
<dd id="Log.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Log.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Log.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Log.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Log.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Log.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Log.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -69857,6 +73807,7 @@ array<int> != array<float>.</p>
<dd id="Log.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Log.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Log.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Log.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Log.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Log.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Log.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -69878,6 +73829,7 @@ array<int> != array<float>.</p>
<dd id="Log.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Log.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Log.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Log.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -69902,8 +73854,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Log2"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Log2-4866"><a href="#Log2-4866"><span class="linenos">4866</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-4867"><a href="#Log2-4867"><span class="linenos">4867</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Log2-4958"><a href="#Log2-4958"><span class="linenos">4958</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-4959"><a href="#Log2-4959"><span class="linenos">4959</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -69947,6 +73899,7 @@ array<int> != array<float>.</p>
<dd id="Log2.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Log2.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Log2.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Log2.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Log2.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Log2.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Log2.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -69967,6 +73920,7 @@ array<int> != array<float>.</p>
<dd id="Log2.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Log2.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Log2.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Log2.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Log2.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Log2.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Log2.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -69988,6 +73942,7 @@ array<int> != array<float>.</p>
<dd id="Log2.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Log2.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Log2.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Log2.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -70012,8 +73967,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Log10"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Log10-4870"><a href="#Log10-4870"><span class="linenos">4870</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-4871"><a href="#Log10-4871"><span class="linenos">4871</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Log10-4962"><a href="#Log10-4962"><span class="linenos">4962</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-4963"><a href="#Log10-4963"><span class="linenos">4963</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -70057,6 +74012,7 @@ array<int> != array<float>.</p>
<dd id="Log10.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Log10.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Log10.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Log10.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Log10.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Log10.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Log10.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -70077,6 +74033,7 @@ array<int> != array<float>.</p>
<dd id="Log10.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Log10.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Log10.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Log10.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Log10.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Log10.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Log10.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -70098,6 +74055,7 @@ array<int> != array<float>.</p>
<dd id="Log10.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Log10.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Log10.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Log10.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -70122,8 +74080,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#LogicalOr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="LogicalOr-4874"><a href="#LogicalOr-4874"><span class="linenos">4874</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-4875"><a href="#LogicalOr-4875"><span class="linenos">4875</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-4966"><a href="#LogicalOr-4966"><span class="linenos">4966</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-4967"><a href="#LogicalOr-4967"><span class="linenos">4967</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>
@@ -70167,6 +74125,7 @@ array<int> != array<float>.</p>
<dd id="LogicalOr.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="LogicalOr.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="LogicalOr.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="LogicalOr.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="LogicalOr.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="LogicalOr.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="LogicalOr.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -70187,6 +74146,7 @@ array<int> != array<float>.</p>
<dd id="LogicalOr.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="LogicalOr.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="LogicalOr.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="LogicalOr.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="LogicalOr.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="LogicalOr.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="LogicalOr.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -70208,6 +74168,7 @@ array<int> != array<float>.</p>
<dd id="LogicalOr.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="LogicalOr.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="LogicalOr.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="LogicalOr.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -70232,8 +74193,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#LogicalAnd"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="LogicalAnd-4878"><a href="#LogicalAnd-4878"><span class="linenos">4878</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-4879"><a href="#LogicalAnd-4879"><span class="linenos">4879</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-4970"><a href="#LogicalAnd-4970"><span class="linenos">4970</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-4971"><a href="#LogicalAnd-4971"><span class="linenos">4971</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>
@@ -70277,6 +74238,7 @@ array<int> != array<float>.</p>
<dd id="LogicalAnd.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="LogicalAnd.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="LogicalAnd.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="LogicalAnd.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="LogicalAnd.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="LogicalAnd.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="LogicalAnd.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -70297,6 +74259,7 @@ array<int> != array<float>.</p>
<dd id="LogicalAnd.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="LogicalAnd.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="LogicalAnd.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="LogicalAnd.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="LogicalAnd.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="LogicalAnd.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="LogicalAnd.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -70318,6 +74281,7 @@ array<int> != array<float>.</p>
<dd id="LogicalAnd.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="LogicalAnd.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="LogicalAnd.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="LogicalAnd.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -70342,8 +74306,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Lower"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Lower-4882"><a href="#Lower-4882"><span class="linenos">4882</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-4883"><a href="#Lower-4883"><span class="linenos">4883</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-4974"><a href="#Lower-4974"><span class="linenos">4974</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-4975"><a href="#Lower-4975"><span class="linenos">4975</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>
@@ -70387,6 +74351,7 @@ array<int> != array<float>.</p>
<dd id="Lower.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Lower.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Lower.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Lower.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Lower.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Lower.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Lower.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -70407,6 +74372,7 @@ array<int> != array<float>.</p>
<dd id="Lower.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Lower.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Lower.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Lower.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Lower.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Lower.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Lower.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -70428,6 +74394,7 @@ array<int> != array<float>.</p>
<dd id="Lower.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Lower.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Lower.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Lower.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -70452,18 +74419,18 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Map"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Map-4886"><a href="#Map-4886"><span class="linenos">4886</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-4887"><a href="#Map-4887"><span class="linenos">4887</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;keys&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;values&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="Map-4888"><a href="#Map-4888"><span class="linenos">4888</span></a>
-</span><span id="Map-4889"><a href="#Map-4889"><span class="linenos">4889</span></a> <span class="nd">@property</span>
-</span><span id="Map-4890"><a href="#Map-4890"><span class="linenos">4890</span></a> <span class="k">def</span> <span class="nf">keys</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
-</span><span id="Map-4891"><a href="#Map-4891"><span class="linenos">4891</span></a> <span class="n">keys</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;keys&quot;</span><span class="p">)</span>
-</span><span id="Map-4892"><a href="#Map-4892"><span class="linenos">4892</span></a> <span class="k">return</span> <span class="n">keys</span><span class="o">.</span><span class="n">expressions</span> <span class="k">if</span> <span class="n">keys</span> <span class="k">else</span> <span class="p">[]</span>
-</span><span id="Map-4893"><a href="#Map-4893"><span class="linenos">4893</span></a>
-</span><span id="Map-4894"><a href="#Map-4894"><span class="linenos">4894</span></a> <span class="nd">@property</span>
-</span><span id="Map-4895"><a href="#Map-4895"><span class="linenos">4895</span></a> <span class="k">def</span> <span class="nf">values</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
-</span><span id="Map-4896"><a href="#Map-4896"><span class="linenos">4896</span></a> <span class="n">values</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;values&quot;</span><span class="p">)</span>
-</span><span id="Map-4897"><a href="#Map-4897"><span class="linenos">4897</span></a> <span class="k">return</span> <span class="n">values</span><span class="o">.</span><span class="n">expressions</span> <span class="k">if</span> <span class="n">values</span> <span class="k">else</span> <span class="p">[]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Map-4978"><a href="#Map-4978"><span class="linenos">4978</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-4979"><a href="#Map-4979"><span class="linenos">4979</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;keys&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;values&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="Map-4980"><a href="#Map-4980"><span class="linenos">4980</span></a>
+</span><span id="Map-4981"><a href="#Map-4981"><span class="linenos">4981</span></a> <span class="nd">@property</span>
+</span><span id="Map-4982"><a href="#Map-4982"><span class="linenos">4982</span></a> <span class="k">def</span> <span class="nf">keys</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="Map-4983"><a href="#Map-4983"><span class="linenos">4983</span></a> <span class="n">keys</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;keys&quot;</span><span class="p">)</span>
+</span><span id="Map-4984"><a href="#Map-4984"><span class="linenos">4984</span></a> <span class="k">return</span> <span class="n">keys</span><span class="o">.</span><span class="n">expressions</span> <span class="k">if</span> <span class="n">keys</span> <span class="k">else</span> <span class="p">[]</span>
+</span><span id="Map-4985"><a href="#Map-4985"><span class="linenos">4985</span></a>
+</span><span id="Map-4986"><a href="#Map-4986"><span class="linenos">4986</span></a> <span class="nd">@property</span>
+</span><span id="Map-4987"><a href="#Map-4987"><span class="linenos">4987</span></a> <span class="k">def</span> <span class="nf">values</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="Map-4988"><a href="#Map-4988"><span class="linenos">4988</span></a> <span class="n">values</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;values&quot;</span><span class="p">)</span>
+</span><span id="Map-4989"><a href="#Map-4989"><span class="linenos">4989</span></a> <span class="k">return</span> <span class="n">values</span><span class="o">.</span><span class="n">expressions</span> <span class="k">if</span> <span class="n">values</span> <span class="k">else</span> <span class="p">[]</span>
</span></pre></div>
@@ -70482,24 +74449,40 @@ array<int> != array<float>.</p>
</div>
<div id="Map.keys" class="classattr">
- <div class="attr variable">
+ <input id="Map.keys-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">keys</span><span class="annotation">: List[<a href="#Expression">Expression</a>]</span>
-
+ <label class="view-source-button" for="Map.keys-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Map.keys"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Map.keys-4981"><a href="#Map.keys-4981"><span class="linenos">4981</span></a> <span class="nd">@property</span>
+</span><span id="Map.keys-4982"><a href="#Map.keys-4982"><span class="linenos">4982</span></a> <span class="k">def</span> <span class="nf">keys</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="Map.keys-4983"><a href="#Map.keys-4983"><span class="linenos">4983</span></a> <span class="n">keys</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;keys&quot;</span><span class="p">)</span>
+</span><span id="Map.keys-4984"><a href="#Map.keys-4984"><span class="linenos">4984</span></a> <span class="k">return</span> <span class="n">keys</span><span class="o">.</span><span class="n">expressions</span> <span class="k">if</span> <span class="n">keys</span> <span class="k">else</span> <span class="p">[]</span>
+</span></pre></div>
+
+
</div>
<div id="Map.values" class="classattr">
- <div class="attr variable">
+ <input id="Map.values-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">values</span><span class="annotation">: List[<a href="#Expression">Expression</a>]</span>
-
+ <label class="view-source-button" for="Map.values-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#Map.values"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Map.values-4986"><a href="#Map.values-4986"><span class="linenos">4986</span></a> <span class="nd">@property</span>
+</span><span id="Map.values-4987"><a href="#Map.values-4987"><span class="linenos">4987</span></a> <span class="k">def</span> <span class="nf">values</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="Map.values-4988"><a href="#Map.values-4988"><span class="linenos">4988</span></a> <span class="n">values</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;values&quot;</span><span class="p">)</span>
+</span><span id="Map.values-4989"><a href="#Map.values-4989"><span class="linenos">4989</span></a> <span class="k">return</span> <span class="n">values</span><span class="o">.</span><span class="n">expressions</span> <span class="k">if</span> <span class="n">values</span> <span class="k">else</span> <span class="p">[]</span>
+</span></pre></div>
+
+
</div>
@@ -70540,6 +74523,7 @@ array<int> != array<float>.</p>
<dd id="Map.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Map.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Map.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Map.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Map.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Map.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Map.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -70560,6 +74544,7 @@ array<int> != array<float>.</p>
<dd id="Map.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Map.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Map.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Map.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Map.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Map.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Map.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -70581,6 +74566,7 @@ array<int> != array<float>.</p>
<dd id="Map.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Map.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Map.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Map.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -70605,8 +74591,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#MapFromEntries"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="MapFromEntries-4900"><a href="#MapFromEntries-4900"><span class="linenos">4900</span></a><span class="k">class</span> <span class="nc">MapFromEntries</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="MapFromEntries-4901"><a href="#MapFromEntries-4901"><span class="linenos">4901</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="MapFromEntries-4992"><a href="#MapFromEntries-4992"><span class="linenos">4992</span></a><span class="k">class</span> <span class="nc">MapFromEntries</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="MapFromEntries-4993"><a href="#MapFromEntries-4993"><span class="linenos">4993</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -70650,6 +74636,7 @@ array<int> != array<float>.</p>
<dd id="MapFromEntries.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="MapFromEntries.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="MapFromEntries.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="MapFromEntries.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="MapFromEntries.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="MapFromEntries.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="MapFromEntries.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -70670,6 +74657,7 @@ array<int> != array<float>.</p>
<dd id="MapFromEntries.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="MapFromEntries.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="MapFromEntries.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="MapFromEntries.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="MapFromEntries.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="MapFromEntries.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="MapFromEntries.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -70691,6 +74679,7 @@ array<int> != array<float>.</p>
<dd id="MapFromEntries.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="MapFromEntries.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="MapFromEntries.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="MapFromEntries.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -70715,8 +74704,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#StarMap"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StarMap-4904"><a href="#StarMap-4904"><span class="linenos">4904</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-4905"><a href="#StarMap-4905"><span class="linenos">4905</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="StarMap-4996"><a href="#StarMap-4996"><span class="linenos">4996</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-4997"><a href="#StarMap-4997"><span class="linenos">4997</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -70760,6 +74749,7 @@ array<int> != array<float>.</p>
<dd id="StarMap.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="StarMap.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="StarMap.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="StarMap.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="StarMap.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="StarMap.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="StarMap.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -70780,6 +74770,7 @@ array<int> != array<float>.</p>
<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.to_s" class="function"><a href="#Expression.to_s">to_s</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>
@@ -70801,6 +74792,7 @@ array<int> != array<float>.</p>
<dd id="StarMap.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="StarMap.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="StarMap.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="StarMap.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -70825,17 +74817,17 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#VarMap"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="VarMap-4908"><a href="#VarMap-4908"><span class="linenos">4908</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-4909"><a href="#VarMap-4909"><span class="linenos">4909</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-4910"><a href="#VarMap-4910"><span class="linenos">4910</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="VarMap-4911"><a href="#VarMap-4911"><span class="linenos">4911</span></a>
-</span><span id="VarMap-4912"><a href="#VarMap-4912"><span class="linenos">4912</span></a> <span class="nd">@property</span>
-</span><span id="VarMap-4913"><a href="#VarMap-4913"><span class="linenos">4913</span></a> <span class="k">def</span> <span class="nf">keys</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
-</span><span id="VarMap-4914"><a href="#VarMap-4914"><span class="linenos">4914</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;keys&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">expressions</span>
-</span><span id="VarMap-4915"><a href="#VarMap-4915"><span class="linenos">4915</span></a>
-</span><span id="VarMap-4916"><a href="#VarMap-4916"><span class="linenos">4916</span></a> <span class="nd">@property</span>
-</span><span id="VarMap-4917"><a href="#VarMap-4917"><span class="linenos">4917</span></a> <span class="k">def</span> <span class="nf">values</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
-</span><span id="VarMap-4918"><a href="#VarMap-4918"><span class="linenos">4918</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;values&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">expressions</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="VarMap-5000"><a href="#VarMap-5000"><span class="linenos">5000</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-5001"><a href="#VarMap-5001"><span class="linenos">5001</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-5002"><a href="#VarMap-5002"><span class="linenos">5002</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="VarMap-5003"><a href="#VarMap-5003"><span class="linenos">5003</span></a>
+</span><span id="VarMap-5004"><a href="#VarMap-5004"><span class="linenos">5004</span></a> <span class="nd">@property</span>
+</span><span id="VarMap-5005"><a href="#VarMap-5005"><span class="linenos">5005</span></a> <span class="k">def</span> <span class="nf">keys</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="VarMap-5006"><a href="#VarMap-5006"><span class="linenos">5006</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;keys&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">expressions</span>
+</span><span id="VarMap-5007"><a href="#VarMap-5007"><span class="linenos">5007</span></a>
+</span><span id="VarMap-5008"><a href="#VarMap-5008"><span class="linenos">5008</span></a> <span class="nd">@property</span>
+</span><span id="VarMap-5009"><a href="#VarMap-5009"><span class="linenos">5009</span></a> <span class="k">def</span> <span class="nf">values</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="VarMap-5010"><a href="#VarMap-5010"><span class="linenos">5010</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;values&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">expressions</span>
</span></pre></div>
@@ -70866,24 +74858,38 @@ array<int> != array<float>.</p>
</div>
<div id="VarMap.keys" class="classattr">
- <div class="attr variable">
+ <input id="VarMap.keys-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">keys</span><span class="annotation">: List[<a href="#Expression">Expression</a>]</span>
-
+ <label class="view-source-button" for="VarMap.keys-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#VarMap.keys"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="VarMap.keys-5004"><a href="#VarMap.keys-5004"><span class="linenos">5004</span></a> <span class="nd">@property</span>
+</span><span id="VarMap.keys-5005"><a href="#VarMap.keys-5005"><span class="linenos">5005</span></a> <span class="k">def</span> <span class="nf">keys</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="VarMap.keys-5006"><a href="#VarMap.keys-5006"><span class="linenos">5006</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;keys&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">expressions</span>
+</span></pre></div>
+
+
</div>
<div id="VarMap.values" class="classattr">
- <div class="attr variable">
+ <input id="VarMap.values-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">values</span><span class="annotation">: List[<a href="#Expression">Expression</a>]</span>
-
+ <label class="view-source-button" for="VarMap.values-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#VarMap.values"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="VarMap.values-5008"><a href="#VarMap.values-5008"><span class="linenos">5008</span></a> <span class="nd">@property</span>
+</span><span id="VarMap.values-5009"><a href="#VarMap.values-5009"><span class="linenos">5009</span></a> <span class="k">def</span> <span class="nf">values</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="VarMap.values-5010"><a href="#VarMap.values-5010"><span class="linenos">5010</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;values&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">expressions</span>
+</span></pre></div>
+
+
</div>
@@ -70924,6 +74930,7 @@ array<int> != array<float>.</p>
<dd id="VarMap.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="VarMap.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="VarMap.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="VarMap.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="VarMap.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="VarMap.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="VarMap.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -70944,6 +74951,7 @@ array<int> != array<float>.</p>
<dd id="VarMap.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="VarMap.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="VarMap.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="VarMap.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="VarMap.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="VarMap.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="VarMap.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -70965,6 +74973,7 @@ array<int> != array<float>.</p>
<dd id="VarMap.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="VarMap.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="VarMap.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="VarMap.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -70988,8 +74997,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#MatchAgainst"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="MatchAgainst-4922"><a href="#MatchAgainst-4922"><span class="linenos">4922</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-4923"><a href="#MatchAgainst-4923"><span class="linenos">4923</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">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-5014"><a href="#MatchAgainst-5014"><span class="linenos">5014</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-5015"><a href="#MatchAgainst-5015"><span class="linenos">5015</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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>
@@ -71044,6 +75053,7 @@ array<int> != array<float>.</p>
<dd id="MatchAgainst.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="MatchAgainst.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="MatchAgainst.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="MatchAgainst.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="MatchAgainst.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="MatchAgainst.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="MatchAgainst.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -71064,6 +75074,7 @@ array<int> != array<float>.</p>
<dd id="MatchAgainst.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="MatchAgainst.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="MatchAgainst.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="MatchAgainst.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="MatchAgainst.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="MatchAgainst.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="MatchAgainst.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -71085,6 +75096,7 @@ array<int> != array<float>.</p>
<dd id="MatchAgainst.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="MatchAgainst.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="MatchAgainst.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="MatchAgainst.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -71109,9 +75121,9 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Max"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Max-4926"><a href="#Max-4926"><span class="linenos">4926</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-4927"><a href="#Max-4927"><span class="linenos">4927</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4928"><a href="#Max-4928"><span class="linenos">4928</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-5018"><a href="#Max-5018"><span class="linenos">5018</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-5019"><a href="#Max-5019"><span class="linenos">5019</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="Max-5020"><a href="#Max-5020"><span class="linenos">5020</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -71178,6 +75190,7 @@ array<int> != array<float>.</p>
<dd id="Max.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Max.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Max.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Max.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Max.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Max.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Max.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -71198,6 +75211,7 @@ array<int> != array<float>.</p>
<dd id="Max.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Max.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Max.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Max.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Max.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Max.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Max.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -71219,6 +75233,7 @@ array<int> != array<float>.</p>
<dd id="Max.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Max.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Max.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Max.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -71242,8 +75257,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#MD5"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="MD5-4931"><a href="#MD5-4931"><span class="linenos">4931</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-4932"><a href="#MD5-4932"><span class="linenos">4932</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;MD5&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="MD5-5023"><a href="#MD5-5023"><span class="linenos">5023</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-5024"><a href="#MD5-5024"><span class="linenos">5024</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>
@@ -71287,6 +75302,7 @@ array<int> != array<float>.</p>
<dd id="MD5.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="MD5.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="MD5.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="MD5.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="MD5.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="MD5.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="MD5.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -71307,6 +75323,7 @@ array<int> != array<float>.</p>
<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.to_s" class="function"><a href="#Expression.to_s">to_s</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>
@@ -71328,6 +75345,7 @@ array<int> != array<float>.</p>
<dd id="MD5.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="MD5.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="MD5.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="MD5.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -71352,8 +75370,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#MD5Digest"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="MD5Digest-4936"><a href="#MD5Digest-4936"><span class="linenos">4936</span></a><span class="k">class</span> <span class="nc">MD5Digest</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="MD5Digest-4937"><a href="#MD5Digest-4937"><span class="linenos">4937</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;MD5_DIGEST&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="MD5Digest-5028"><a href="#MD5Digest-5028"><span class="linenos">5028</span></a><span class="k">class</span> <span class="nc">MD5Digest</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="MD5Digest-5029"><a href="#MD5Digest-5029"><span class="linenos">5029</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;MD5_DIGEST&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -71397,6 +75415,7 @@ array<int> != array<float>.</p>
<dd id="MD5Digest.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="MD5Digest.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="MD5Digest.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="MD5Digest.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="MD5Digest.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="MD5Digest.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="MD5Digest.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -71417,6 +75436,7 @@ array<int> != array<float>.</p>
<dd id="MD5Digest.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="MD5Digest.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="MD5Digest.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="MD5Digest.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="MD5Digest.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="MD5Digest.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="MD5Digest.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -71438,6 +75458,7 @@ array<int> != array<float>.</p>
<dd id="MD5Digest.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="MD5Digest.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="MD5Digest.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="MD5Digest.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -71462,9 +75483,9 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Min"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Min-4940"><a href="#Min-4940"><span class="linenos">4940</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-4941"><a href="#Min-4941"><span class="linenos">4941</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">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-4942"><a href="#Min-4942"><span class="linenos">4942</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-5032"><a href="#Min-5032"><span class="linenos">5032</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-5033"><a href="#Min-5033"><span class="linenos">5033</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="Min-5034"><a href="#Min-5034"><span class="linenos">5034</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -71531,6 +75552,7 @@ array<int> != array<float>.</p>
<dd id="Min.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Min.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Min.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Min.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Min.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Min.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Min.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -71551,6 +75573,7 @@ array<int> != array<float>.</p>
<dd id="Min.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Min.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Min.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Min.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Min.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Min.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Min.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -71572,6 +75595,7 @@ array<int> != array<float>.</p>
<dd id="Min.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Min.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Min.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Min.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -71595,8 +75619,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Month"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Month-4945"><a href="#Month-4945"><span class="linenos">4945</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-4946"><a href="#Month-4946"><span class="linenos">4946</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Month-5037"><a href="#Month-5037"><span class="linenos">5037</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-5038"><a href="#Month-5038"><span class="linenos">5038</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -71640,6 +75664,7 @@ array<int> != array<float>.</p>
<dd id="Month.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Month.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Month.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Month.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Month.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Month.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Month.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -71660,6 +75685,7 @@ array<int> != array<float>.</p>
<dd id="Month.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Month.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Month.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Month.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Month.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Month.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Month.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -71681,6 +75707,7 @@ array<int> != array<float>.</p>
<dd id="Month.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Month.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Month.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Month.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -71705,8 +75732,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Nvl2"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Nvl2-4949"><a href="#Nvl2-4949"><span class="linenos">4949</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-4950"><a href="#Nvl2-4950"><span class="linenos">4950</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-5041"><a href="#Nvl2-5041"><span class="linenos">5041</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-5042"><a href="#Nvl2-5042"><span class="linenos">5042</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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>
@@ -71761,6 +75788,7 @@ array<int> != array<float>.</p>
<dd id="Nvl2.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Nvl2.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Nvl2.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Nvl2.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Nvl2.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Nvl2.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Nvl2.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -71781,6 +75809,7 @@ array<int> != array<float>.</p>
<dd id="Nvl2.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Nvl2.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Nvl2.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Nvl2.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Nvl2.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Nvl2.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Nvl2.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -71802,6 +75831,7 @@ array<int> != array<float>.</p>
<dd id="Nvl2.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Nvl2.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Nvl2.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Nvl2.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -71826,8 +75856,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Predict"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Predict-4954"><a href="#Predict-4954"><span class="linenos">4954</span></a><span class="k">class</span> <span class="nc">Predict</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Predict-4955"><a href="#Predict-4955"><span class="linenos">4955</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;params_struct&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Predict-5046"><a href="#Predict-5046"><span class="linenos">5046</span></a><span class="k">class</span> <span class="nc">Predict</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Predict-5047"><a href="#Predict-5047"><span class="linenos">5047</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;params_struct&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -71882,6 +75912,7 @@ array<int> != array<float>.</p>
<dd id="Predict.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Predict.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Predict.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Predict.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Predict.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Predict.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Predict.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -71902,6 +75933,7 @@ array<int> != array<float>.</p>
<dd id="Predict.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Predict.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Predict.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Predict.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Predict.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Predict.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Predict.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -71923,6 +75955,7 @@ array<int> != array<float>.</p>
<dd id="Predict.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Predict.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Predict.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Predict.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -71947,8 +75980,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Pow"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Pow-4958"><a href="#Pow-4958"><span class="linenos">4958</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-4959"><a href="#Pow-4959"><span class="linenos">4959</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-5050"><a href="#Pow-5050"><span class="linenos">5050</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-5051"><a href="#Pow-5051"><span class="linenos">5051</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>
@@ -71991,6 +76024,7 @@ array<int> != array<float>.</p>
<dd id="Pow.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Pow.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Pow.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Pow.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Pow.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Pow.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Pow.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -72011,6 +76045,7 @@ array<int> != array<float>.</p>
<dd id="Pow.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Pow.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Pow.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Pow.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Pow.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Pow.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Pow.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -72032,6 +76067,7 @@ array<int> != array<float>.</p>
<dd id="Pow.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Pow.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Pow.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Pow.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Binary">Binary</a></dt>
@@ -72062,8 +76098,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#PercentileCont"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="PercentileCont-4962"><a href="#PercentileCont-4962"><span class="linenos">4962</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-4963"><a href="#PercentileCont-4963"><span class="linenos">4963</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="PercentileCont-5054"><a href="#PercentileCont-5054"><span class="linenos">5054</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-5055"><a href="#PercentileCont-5055"><span class="linenos">5055</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -72118,6 +76154,7 @@ array<int> != array<float>.</p>
<dd id="PercentileCont.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="PercentileCont.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="PercentileCont.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="PercentileCont.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="PercentileCont.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="PercentileCont.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="PercentileCont.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -72138,6 +76175,7 @@ array<int> != array<float>.</p>
<dd id="PercentileCont.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="PercentileCont.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="PercentileCont.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="PercentileCont.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="PercentileCont.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="PercentileCont.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="PercentileCont.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -72159,6 +76197,7 @@ array<int> != array<float>.</p>
<dd id="PercentileCont.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="PercentileCont.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="PercentileCont.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="PercentileCont.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -72183,8 +76222,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#PercentileDisc"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="PercentileDisc-4966"><a href="#PercentileDisc-4966"><span class="linenos">4966</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-4967"><a href="#PercentileDisc-4967"><span class="linenos">4967</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="PercentileDisc-5058"><a href="#PercentileDisc-5058"><span class="linenos">5058</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-5059"><a href="#PercentileDisc-5059"><span class="linenos">5059</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -72239,6 +76278,7 @@ array<int> != array<float>.</p>
<dd id="PercentileDisc.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="PercentileDisc.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="PercentileDisc.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="PercentileDisc.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="PercentileDisc.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="PercentileDisc.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="PercentileDisc.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -72259,6 +76299,7 @@ array<int> != array<float>.</p>
<dd id="PercentileDisc.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="PercentileDisc.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="PercentileDisc.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="PercentileDisc.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="PercentileDisc.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="PercentileDisc.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="PercentileDisc.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -72280,6 +76321,7 @@ array<int> != array<float>.</p>
<dd id="PercentileDisc.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="PercentileDisc.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="PercentileDisc.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="PercentileDisc.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -72304,8 +76346,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Quantile"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Quantile-4970"><a href="#Quantile-4970"><span class="linenos">4970</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-4971"><a href="#Quantile-4971"><span class="linenos">4971</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-5062"><a href="#Quantile-5062"><span class="linenos">5062</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-5063"><a href="#Quantile-5063"><span class="linenos">5063</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;quantile&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -72360,6 +76402,7 @@ array<int> != array<float>.</p>
<dd id="Quantile.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Quantile.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Quantile.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Quantile.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Quantile.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Quantile.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Quantile.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -72380,6 +76423,7 @@ array<int> != array<float>.</p>
<dd id="Quantile.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Quantile.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Quantile.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Quantile.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Quantile.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Quantile.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Quantile.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -72401,6 +76445,7 @@ array<int> != array<float>.</p>
<dd id="Quantile.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Quantile.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Quantile.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Quantile.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -72425,8 +76470,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#ApproxQuantile"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ApproxQuantile-4974"><a href="#ApproxQuantile-4974"><span class="linenos">4974</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-4975"><a href="#ApproxQuantile-4975"><span class="linenos">4975</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-5066"><a href="#ApproxQuantile-5066"><span class="linenos">5066</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-5067"><a href="#ApproxQuantile-5067"><span class="linenos">5067</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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>
@@ -72481,6 +76526,7 @@ array<int> != array<float>.</p>
<dd id="ApproxQuantile.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ApproxQuantile.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="ApproxQuantile.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="ApproxQuantile.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="ApproxQuantile.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="ApproxQuantile.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ApproxQuantile.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -72501,6 +76547,7 @@ array<int> != array<float>.</p>
<dd id="ApproxQuantile.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ApproxQuantile.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ApproxQuantile.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="ApproxQuantile.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="ApproxQuantile.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ApproxQuantile.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ApproxQuantile.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -72522,6 +76569,7 @@ array<int> != array<float>.</p>
<dd id="ApproxQuantile.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="ApproxQuantile.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="ApproxQuantile.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="ApproxQuantile.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -72535,6 +76583,255 @@ array<int> != array<float>.</p>
</dl>
</div>
</section>
+ <section id="Rand">
+ <input id="Rand-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">Rand</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
+
+ <label class="view-source-button" for="Rand-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#Rand"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Rand-5070"><a href="#Rand-5070"><span class="linenos">5070</span></a><span class="k">class</span> <span class="nc">Rand</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Rand-5071"><a href="#Rand-5071"><span class="linenos">5071</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;RAND&quot;</span><span class="p">,</span> <span class="s2">&quot;RANDOM&quot;</span><span class="p">]</span>
+</span><span id="Rand-5072"><a href="#Rand-5072"><span class="linenos">5072</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span></pre></div>
+
+
+
+
+ <div id="Rand.arg_types" class="classattr">
+ <div class="attr variable">
+ <span class="name">arg_types</span> =
+<span class="default_value">{&#39;this&#39;: False}</span>
+
+
+ </div>
+ <a class="headerlink" href="#Rand.arg_types"></a>
+
+
+
+ </div>
+ <div id="Rand.key" class="classattr">
+ <div class="attr variable">
+ <span class="name">key</span> =
+<span class="default_value">&#39;rand&#39;</span>
+
+
+ </div>
+ <a class="headerlink" href="#Rand.key"></a>
+
+
+
+ </div>
+ <div class="inherited">
+ <h5>Inherited Members</h5>
+ <dl>
+ <div><dt><a href="#Expression">Expression</a></dt>
+ <dd id="Rand.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
+ <dd id="Rand.args" class="variable"><a href="#Expression.args">args</a></dd>
+ <dd id="Rand.parent" class="variable"><a href="#Expression.parent">parent</a></dd>
+ <dd id="Rand.arg_key" class="variable"><a href="#Expression.arg_key">arg_key</a></dd>
+ <dd id="Rand.comments" class="variable"><a href="#Expression.comments">comments</a></dd>
+ <dd id="Rand.hashable_args" class="variable"><a href="#Expression.hashable_args">hashable_args</a></dd>
+ <dd id="Rand.this" class="variable"><a href="#Expression.this">this</a></dd>
+ <dd id="Rand.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
+ <dd id="Rand.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
+ <dd id="Rand.text" class="function"><a href="#Expression.text">text</a></dd>
+ <dd id="Rand.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
+ <dd id="Rand.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
+ <dd id="Rand.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
+ <dd id="Rand.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
+ <dd id="Rand.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Rand.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
+ <dd id="Rand.name" class="variable"><a href="#Expression.name">name</a></dd>
+ <dd id="Rand.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
+ <dd id="Rand.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
+ <dd id="Rand.type" class="variable"><a href="#Expression.type">type</a></dd>
+ <dd id="Rand.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Rand.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
+ <dd id="Rand.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
+ <dd id="Rand.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="Rand.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
+ <dd id="Rand.append" class="function"><a href="#Expression.append">append</a></dd>
+ <dd id="Rand.set" class="function"><a href="#Expression.set">set</a></dd>
+ <dd id="Rand.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
+ <dd id="Rand.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
+ <dd id="Rand.find" class="function"><a href="#Expression.find">find</a></dd>
+ <dd id="Rand.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
+ <dd id="Rand.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
+ <dd id="Rand.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
+ <dd id="Rand.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
+ <dd id="Rand.root" class="function"><a href="#Expression.root">root</a></dd>
+ <dd id="Rand.walk" class="function"><a href="#Expression.walk">walk</a></dd>
+ <dd id="Rand.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
+ <dd id="Rand.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
+ <dd id="Rand.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
+ <dd id="Rand.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
+ <dd id="Rand.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
+ <dd id="Rand.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Rand.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
+ <dd id="Rand.sql" class="function"><a href="#Expression.sql">sql</a></dd>
+ <dd id="Rand.transform" class="function"><a href="#Expression.transform">transform</a></dd>
+ <dd id="Rand.replace" class="function"><a href="#Expression.replace">replace</a></dd>
+ <dd id="Rand.pop" class="function"><a href="#Expression.pop">pop</a></dd>
+ <dd id="Rand.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
+ <dd id="Rand.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
+ <dd id="Rand.dump" class="function"><a href="#Expression.dump">dump</a></dd>
+ <dd id="Rand.load" class="function"><a href="#Expression.load">load</a></dd>
+ <dd id="Rand.and_" class="function"><a href="#Expression.and_">and_</a></dd>
+ <dd id="Rand.or_" class="function"><a href="#Expression.or_">or_</a></dd>
+ <dd id="Rand.not_" class="function"><a href="#Expression.not_">not_</a></dd>
+ <dd id="Rand.as_" class="function"><a href="#Expression.as_">as_</a></dd>
+ <dd id="Rand.isin" class="function"><a href="#Expression.isin">isin</a></dd>
+ <dd id="Rand.between" class="function"><a href="#Expression.between">between</a></dd>
+ <dd id="Rand.is_" class="function"><a href="#Expression.is_">is_</a></dd>
+ <dd id="Rand.like" class="function"><a href="#Expression.like">like</a></dd>
+ <dd id="Rand.ilike" class="function"><a href="#Expression.ilike">ilike</a></dd>
+ <dd id="Rand.eq" class="function"><a href="#Expression.eq">eq</a></dd>
+ <dd id="Rand.neq" class="function"><a href="#Expression.neq">neq</a></dd>
+ <dd id="Rand.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
+ <dd id="Rand.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Rand.desc" class="function"><a href="#Expression.desc">desc</a></dd>
+
+ </div>
+ <div><dt><a href="#Func">Func</a></dt>
+ <dd id="Rand.is_var_len_args" class="variable"><a href="#Func.is_var_len_args">is_var_len_args</a></dd>
+ <dd id="Rand.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
+ <dd id="Rand.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
+ <dd id="Rand.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
+ <dd id="Rand.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
+
+ </div>
+ </dl>
+ </div>
+ </section>
+ <section id="Randn">
+ <input id="Randn-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">Randn</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
+
+ <label class="view-source-button" for="Randn-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#Randn"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Randn-5075"><a href="#Randn-5075"><span class="linenos">5075</span></a><span class="k">class</span> <span class="nc">Randn</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Randn-5076"><a href="#Randn-5076"><span class="linenos">5076</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span></pre></div>
+
+
+
+
+ <div id="Randn.arg_types" class="classattr">
+ <div class="attr variable">
+ <span class="name">arg_types</span> =
+<span class="default_value">{&#39;this&#39;: False}</span>
+
+
+ </div>
+ <a class="headerlink" href="#Randn.arg_types"></a>
+
+
+
+ </div>
+ <div id="Randn.key" class="classattr">
+ <div class="attr variable">
+ <span class="name">key</span> =
+<span class="default_value">&#39;randn&#39;</span>
+
+
+ </div>
+ <a class="headerlink" href="#Randn.key"></a>
+
+
+
+ </div>
+ <div class="inherited">
+ <h5>Inherited Members</h5>
+ <dl>
+ <div><dt><a href="#Expression">Expression</a></dt>
+ <dd id="Randn.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
+ <dd id="Randn.args" class="variable"><a href="#Expression.args">args</a></dd>
+ <dd id="Randn.parent" class="variable"><a href="#Expression.parent">parent</a></dd>
+ <dd id="Randn.arg_key" class="variable"><a href="#Expression.arg_key">arg_key</a></dd>
+ <dd id="Randn.comments" class="variable"><a href="#Expression.comments">comments</a></dd>
+ <dd id="Randn.hashable_args" class="variable"><a href="#Expression.hashable_args">hashable_args</a></dd>
+ <dd id="Randn.this" class="variable"><a href="#Expression.this">this</a></dd>
+ <dd id="Randn.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
+ <dd id="Randn.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
+ <dd id="Randn.text" class="function"><a href="#Expression.text">text</a></dd>
+ <dd id="Randn.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
+ <dd id="Randn.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
+ <dd id="Randn.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
+ <dd id="Randn.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
+ <dd id="Randn.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Randn.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
+ <dd id="Randn.name" class="variable"><a href="#Expression.name">name</a></dd>
+ <dd id="Randn.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
+ <dd id="Randn.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
+ <dd id="Randn.type" class="variable"><a href="#Expression.type">type</a></dd>
+ <dd id="Randn.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Randn.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
+ <dd id="Randn.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
+ <dd id="Randn.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="Randn.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
+ <dd id="Randn.append" class="function"><a href="#Expression.append">append</a></dd>
+ <dd id="Randn.set" class="function"><a href="#Expression.set">set</a></dd>
+ <dd id="Randn.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
+ <dd id="Randn.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
+ <dd id="Randn.find" class="function"><a href="#Expression.find">find</a></dd>
+ <dd id="Randn.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
+ <dd id="Randn.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
+ <dd id="Randn.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
+ <dd id="Randn.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
+ <dd id="Randn.root" class="function"><a href="#Expression.root">root</a></dd>
+ <dd id="Randn.walk" class="function"><a href="#Expression.walk">walk</a></dd>
+ <dd id="Randn.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
+ <dd id="Randn.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
+ <dd id="Randn.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
+ <dd id="Randn.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
+ <dd id="Randn.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
+ <dd id="Randn.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Randn.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
+ <dd id="Randn.sql" class="function"><a href="#Expression.sql">sql</a></dd>
+ <dd id="Randn.transform" class="function"><a href="#Expression.transform">transform</a></dd>
+ <dd id="Randn.replace" class="function"><a href="#Expression.replace">replace</a></dd>
+ <dd id="Randn.pop" class="function"><a href="#Expression.pop">pop</a></dd>
+ <dd id="Randn.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
+ <dd id="Randn.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
+ <dd id="Randn.dump" class="function"><a href="#Expression.dump">dump</a></dd>
+ <dd id="Randn.load" class="function"><a href="#Expression.load">load</a></dd>
+ <dd id="Randn.and_" class="function"><a href="#Expression.and_">and_</a></dd>
+ <dd id="Randn.or_" class="function"><a href="#Expression.or_">or_</a></dd>
+ <dd id="Randn.not_" class="function"><a href="#Expression.not_">not_</a></dd>
+ <dd id="Randn.as_" class="function"><a href="#Expression.as_">as_</a></dd>
+ <dd id="Randn.isin" class="function"><a href="#Expression.isin">isin</a></dd>
+ <dd id="Randn.between" class="function"><a href="#Expression.between">between</a></dd>
+ <dd id="Randn.is_" class="function"><a href="#Expression.is_">is_</a></dd>
+ <dd id="Randn.like" class="function"><a href="#Expression.like">like</a></dd>
+ <dd id="Randn.ilike" class="function"><a href="#Expression.ilike">ilike</a></dd>
+ <dd id="Randn.eq" class="function"><a href="#Expression.eq">eq</a></dd>
+ <dd id="Randn.neq" class="function"><a href="#Expression.neq">neq</a></dd>
+ <dd id="Randn.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
+ <dd id="Randn.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Randn.desc" class="function"><a href="#Expression.desc">desc</a></dd>
+
+ </div>
+ <div><dt><a href="#Func">Func</a></dt>
+ <dd id="Randn.is_var_len_args" class="variable"><a href="#Func.is_var_len_args">is_var_len_args</a></dd>
+ <dd id="Randn.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
+ <dd id="Randn.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
+ <dd id="Randn.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
+ <dd id="Randn.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
+
+ </div>
+ </dl>
+ </div>
+ </section>
<section id="RangeN">
<input id="RangeN-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
@@ -72546,8 +76843,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#RangeN"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="RangeN-4978"><a href="#RangeN-4978"><span class="linenos">4978</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-4979"><a href="#RangeN-4979"><span class="linenos">4979</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-5079"><a href="#RangeN-5079"><span class="linenos">5079</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-5080"><a href="#RangeN-5080"><span class="linenos">5080</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -72602,6 +76899,7 @@ array<int> != array<float>.</p>
<dd id="RangeN.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="RangeN.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="RangeN.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="RangeN.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="RangeN.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="RangeN.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="RangeN.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -72622,6 +76920,7 @@ array<int> != array<float>.</p>
<dd id="RangeN.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="RangeN.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="RangeN.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="RangeN.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="RangeN.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="RangeN.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="RangeN.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -72643,6 +76942,7 @@ array<int> != array<float>.</p>
<dd id="RangeN.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="RangeN.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="RangeN.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="RangeN.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -72667,10 +76967,10 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#ReadCSV"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ReadCSV-4982"><a href="#ReadCSV-4982"><span class="linenos">4982</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-4983"><a href="#ReadCSV-4983"><span class="linenos">4983</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-4984"><a href="#ReadCSV-4984"><span class="linenos">4984</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="ReadCSV-4985"><a href="#ReadCSV-4985"><span class="linenos">4985</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-5083"><a href="#ReadCSV-5083"><span class="linenos">5083</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-5084"><a href="#ReadCSV-5084"><span class="linenos">5084</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-5085"><a href="#ReadCSV-5085"><span class="linenos">5085</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="ReadCSV-5086"><a href="#ReadCSV-5086"><span class="linenos">5086</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -72737,6 +77037,7 @@ array<int> != array<float>.</p>
<dd id="ReadCSV.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ReadCSV.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="ReadCSV.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="ReadCSV.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="ReadCSV.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="ReadCSV.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ReadCSV.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -72757,6 +77058,7 @@ array<int> != array<float>.</p>
<dd id="ReadCSV.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ReadCSV.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ReadCSV.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="ReadCSV.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="ReadCSV.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ReadCSV.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ReadCSV.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -72778,6 +77080,7 @@ array<int> != array<float>.</p>
<dd id="ReadCSV.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="ReadCSV.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="ReadCSV.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="ReadCSV.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -72801,8 +77104,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Reduce"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Reduce-4988"><a href="#Reduce-4988"><span class="linenos">4988</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-4989"><a href="#Reduce-4989"><span class="linenos">4989</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-5089"><a href="#Reduce-5089"><span class="linenos">5089</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-5090"><a href="#Reduce-5090"><span class="linenos">5090</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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>
@@ -72857,6 +77160,7 @@ array<int> != array<float>.</p>
<dd id="Reduce.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Reduce.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Reduce.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Reduce.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Reduce.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Reduce.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Reduce.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -72877,6 +77181,7 @@ array<int> != array<float>.</p>
<dd id="Reduce.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Reduce.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Reduce.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Reduce.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Reduce.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Reduce.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Reduce.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -72898,6 +77203,7 @@ array<int> != array<float>.</p>
<dd id="Reduce.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Reduce.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Reduce.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Reduce.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -72922,15 +77228,15 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#RegexpExtract"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="RegexpExtract-4992"><a href="#RegexpExtract-4992"><span class="linenos">4992</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-4993"><a href="#RegexpExtract-4993"><span class="linenos">4993</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="RegexpExtract-4994"><a href="#RegexpExtract-4994"><span class="linenos">4994</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-4995"><a href="#RegexpExtract-4995"><span class="linenos">4995</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-4996"><a href="#RegexpExtract-4996"><span class="linenos">4996</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-4997"><a href="#RegexpExtract-4997"><span class="linenos">4997</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-4998"><a href="#RegexpExtract-4998"><span class="linenos">4998</span></a> <span class="s2">&quot;parameters&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="RegexpExtract-4999"><a href="#RegexpExtract-4999"><span class="linenos">4999</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-5000"><a href="#RegexpExtract-5000"><span class="linenos">5000</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="RegexpExtract-5093"><a href="#RegexpExtract-5093"><span class="linenos">5093</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-5094"><a href="#RegexpExtract-5094"><span class="linenos">5094</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="RegexpExtract-5095"><a href="#RegexpExtract-5095"><span class="linenos">5095</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-5096"><a href="#RegexpExtract-5096"><span class="linenos">5096</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-5097"><a href="#RegexpExtract-5097"><span class="linenos">5097</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-5098"><a href="#RegexpExtract-5098"><span class="linenos">5098</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-5099"><a href="#RegexpExtract-5099"><span class="linenos">5099</span></a> <span class="s2">&quot;parameters&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="RegexpExtract-5100"><a href="#RegexpExtract-5100"><span class="linenos">5100</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-5101"><a href="#RegexpExtract-5101"><span class="linenos">5101</span></a> <span class="p">}</span>
</span></pre></div>
@@ -72986,6 +77292,7 @@ array<int> != array<float>.</p>
<dd id="RegexpExtract.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="RegexpExtract.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="RegexpExtract.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="RegexpExtract.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="RegexpExtract.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="RegexpExtract.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="RegexpExtract.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -73006,6 +77313,7 @@ array<int> != array<float>.</p>
<dd id="RegexpExtract.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="RegexpExtract.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="RegexpExtract.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="RegexpExtract.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="RegexpExtract.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="RegexpExtract.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="RegexpExtract.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -73027,6 +77335,7 @@ array<int> != array<float>.</p>
<dd id="RegexpExtract.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="RegexpExtract.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="RegexpExtract.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="RegexpExtract.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -73051,16 +77360,16 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#RegexpReplace"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="RegexpReplace-5003"><a href="#RegexpReplace-5003"><span class="linenos">5003</span></a><span class="k">class</span> <span class="nc">RegexpReplace</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="RegexpReplace-5004"><a href="#RegexpReplace-5004"><span class="linenos">5004</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="RegexpReplace-5005"><a href="#RegexpReplace-5005"><span class="linenos">5005</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="RegexpReplace-5006"><a href="#RegexpReplace-5006"><span class="linenos">5006</span></a> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="RegexpReplace-5007"><a href="#RegexpReplace-5007"><span class="linenos">5007</span></a> <span class="s2">&quot;replacement&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="RegexpReplace-5008"><a href="#RegexpReplace-5008"><span class="linenos">5008</span></a> <span class="s2">&quot;position&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="RegexpReplace-5009"><a href="#RegexpReplace-5009"><span class="linenos">5009</span></a> <span class="s2">&quot;occurrence&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="RegexpReplace-5010"><a href="#RegexpReplace-5010"><span class="linenos">5010</span></a> <span class="s2">&quot;parameters&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="RegexpReplace-5011"><a href="#RegexpReplace-5011"><span class="linenos">5011</span></a> <span class="s2">&quot;modifiers&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="RegexpReplace-5012"><a href="#RegexpReplace-5012"><span class="linenos">5012</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="RegexpReplace-5104"><a href="#RegexpReplace-5104"><span class="linenos">5104</span></a><span class="k">class</span> <span class="nc">RegexpReplace</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="RegexpReplace-5105"><a href="#RegexpReplace-5105"><span class="linenos">5105</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="RegexpReplace-5106"><a href="#RegexpReplace-5106"><span class="linenos">5106</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="RegexpReplace-5107"><a href="#RegexpReplace-5107"><span class="linenos">5107</span></a> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="RegexpReplace-5108"><a href="#RegexpReplace-5108"><span class="linenos">5108</span></a> <span class="s2">&quot;replacement&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="RegexpReplace-5109"><a href="#RegexpReplace-5109"><span class="linenos">5109</span></a> <span class="s2">&quot;position&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="RegexpReplace-5110"><a href="#RegexpReplace-5110"><span class="linenos">5110</span></a> <span class="s2">&quot;occurrence&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="RegexpReplace-5111"><a href="#RegexpReplace-5111"><span class="linenos">5111</span></a> <span class="s2">&quot;parameters&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="RegexpReplace-5112"><a href="#RegexpReplace-5112"><span class="linenos">5112</span></a> <span class="s2">&quot;modifiers&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="RegexpReplace-5113"><a href="#RegexpReplace-5113"><span class="linenos">5113</span></a> <span class="p">}</span>
</span></pre></div>
@@ -73116,6 +77425,7 @@ array<int> != array<float>.</p>
<dd id="RegexpReplace.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="RegexpReplace.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="RegexpReplace.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="RegexpReplace.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="RegexpReplace.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="RegexpReplace.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="RegexpReplace.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -73136,6 +77446,7 @@ array<int> != array<float>.</p>
<dd id="RegexpReplace.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="RegexpReplace.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="RegexpReplace.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="RegexpReplace.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="RegexpReplace.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="RegexpReplace.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="RegexpReplace.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -73157,6 +77468,7 @@ array<int> != array<float>.</p>
<dd id="RegexpReplace.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="RegexpReplace.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="RegexpReplace.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="RegexpReplace.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -73181,8 +77493,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#RegexpLike"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="RegexpLike-5015"><a href="#RegexpLike-5015"><span class="linenos">5015</span></a><span class="k">class</span> <span class="nc">RegexpLike</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
-</span><span id="RegexpLike-5016"><a href="#RegexpLike-5016"><span class="linenos">5016</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-5116"><a href="#RegexpLike-5116"><span class="linenos">5116</span></a><span class="k">class</span> <span class="nc">RegexpLike</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
+</span><span id="RegexpLike-5117"><a href="#RegexpLike-5117"><span class="linenos">5117</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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>
@@ -73237,6 +77549,7 @@ array<int> != array<float>.</p>
<dd id="RegexpLike.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="RegexpLike.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="RegexpLike.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="RegexpLike.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="RegexpLike.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="RegexpLike.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="RegexpLike.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -73257,6 +77570,7 @@ array<int> != array<float>.</p>
<dd id="RegexpLike.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="RegexpLike.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="RegexpLike.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="RegexpLike.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="RegexpLike.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="RegexpLike.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="RegexpLike.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -73278,6 +77592,7 @@ array<int> != array<float>.</p>
<dd id="RegexpLike.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="RegexpLike.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="RegexpLike.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="RegexpLike.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Binary">Binary</a></dt>
@@ -73307,8 +77622,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#RegexpILike"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="RegexpILike-5019"><a href="#RegexpILike-5019"><span class="linenos">5019</span></a><span class="k">class</span> <span class="nc">RegexpILike</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
-</span><span id="RegexpILike-5020"><a href="#RegexpILike-5020"><span class="linenos">5020</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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-5120"><a href="#RegexpILike-5120"><span class="linenos">5120</span></a><span class="k">class</span> <span class="nc">RegexpILike</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
+</span><span id="RegexpILike-5121"><a href="#RegexpILike-5121"><span class="linenos">5121</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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>
@@ -73363,6 +77678,7 @@ array<int> != array<float>.</p>
<dd id="RegexpILike.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="RegexpILike.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="RegexpILike.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="RegexpILike.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="RegexpILike.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="RegexpILike.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="RegexpILike.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -73383,6 +77699,7 @@ array<int> != array<float>.</p>
<dd id="RegexpILike.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="RegexpILike.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="RegexpILike.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="RegexpILike.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="RegexpILike.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="RegexpILike.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="RegexpILike.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -73404,6 +77721,7 @@ array<int> != array<float>.</p>
<dd id="RegexpILike.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="RegexpILike.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="RegexpILike.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="RegexpILike.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Binary">Binary</a></dt>
@@ -73433,8 +77751,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#RegexpSplit"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="RegexpSplit-5025"><a href="#RegexpSplit-5025"><span class="linenos">5025</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-5026"><a href="#RegexpSplit-5026"><span class="linenos">5026</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-5126"><a href="#RegexpSplit-5126"><span class="linenos">5126</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-5127"><a href="#RegexpSplit-5127"><span class="linenos">5127</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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>
@@ -73489,6 +77807,7 @@ array<int> != array<float>.</p>
<dd id="RegexpSplit.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="RegexpSplit.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="RegexpSplit.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="RegexpSplit.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="RegexpSplit.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="RegexpSplit.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="RegexpSplit.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -73509,6 +77828,7 @@ array<int> != array<float>.</p>
<dd id="RegexpSplit.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="RegexpSplit.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="RegexpSplit.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="RegexpSplit.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="RegexpSplit.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="RegexpSplit.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="RegexpSplit.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -73530,6 +77850,7 @@ array<int> != array<float>.</p>
<dd id="RegexpSplit.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="RegexpSplit.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="RegexpSplit.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="RegexpSplit.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -73554,8 +77875,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Repeat"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Repeat-5029"><a href="#Repeat-5029"><span class="linenos">5029</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-5030"><a href="#Repeat-5030"><span class="linenos">5030</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-5130"><a href="#Repeat-5130"><span class="linenos">5130</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-5131"><a href="#Repeat-5131"><span class="linenos">5131</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;times&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -73610,6 +77931,7 @@ array<int> != array<float>.</p>
<dd id="Repeat.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Repeat.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Repeat.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Repeat.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Repeat.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Repeat.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Repeat.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -73630,6 +77952,7 @@ array<int> != array<float>.</p>
<dd id="Repeat.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Repeat.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Repeat.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Repeat.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Repeat.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Repeat.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Repeat.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -73651,6 +77974,7 @@ array<int> != array<float>.</p>
<dd id="Repeat.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Repeat.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Repeat.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Repeat.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -73675,8 +77999,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Round"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Round-5033"><a href="#Round-5033"><span class="linenos">5033</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-5034"><a href="#Round-5034"><span class="linenos">5034</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-5136"><a href="#Round-5136"><span class="linenos">5136</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-5137"><a href="#Round-5137"><span class="linenos">5137</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;decimals&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;truncate&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -73685,7 +78009,7 @@ array<int> != array<float>.</p>
<div id="Round.arg_types" class="classattr">
<div class="attr variable">
<span class="name">arg_types</span> =
-<span class="default_value">{&#39;this&#39;: True, &#39;decimals&#39;: False}</span>
+<span class="default_value">{&#39;this&#39;: True, &#39;decimals&#39;: False, &#39;truncate&#39;: False}</span>
</div>
@@ -73731,6 +78055,7 @@ array<int> != array<float>.</p>
<dd id="Round.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Round.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Round.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Round.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Round.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Round.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Round.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -73751,6 +78076,7 @@ array<int> != array<float>.</p>
<dd id="Round.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Round.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Round.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Round.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Round.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Round.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Round.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -73772,6 +78098,7 @@ array<int> != array<float>.</p>
<dd id="Round.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Round.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Round.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Round.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -73796,8 +78123,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#RowNumber"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="RowNumber-5037"><a href="#RowNumber-5037"><span class="linenos">5037</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-5038"><a href="#RowNumber-5038"><span class="linenos">5038</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-5140"><a href="#RowNumber-5140"><span class="linenos">5140</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-5141"><a href="#RowNumber-5141"><span class="linenos">5141</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>
@@ -73852,6 +78179,7 @@ array<int> != array<float>.</p>
<dd id="RowNumber.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="RowNumber.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="RowNumber.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="RowNumber.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="RowNumber.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="RowNumber.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="RowNumber.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -73872,6 +78200,7 @@ array<int> != array<float>.</p>
<dd id="RowNumber.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="RowNumber.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="RowNumber.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="RowNumber.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="RowNumber.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="RowNumber.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="RowNumber.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -73893,6 +78222,7 @@ array<int> != array<float>.</p>
<dd id="RowNumber.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="RowNumber.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="RowNumber.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="RowNumber.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -73917,8 +78247,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#SafeDivide"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SafeDivide-5041"><a href="#SafeDivide-5041"><span class="linenos">5041</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-5042"><a href="#SafeDivide-5042"><span class="linenos">5042</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="SafeDivide-5144"><a href="#SafeDivide-5144"><span class="linenos">5144</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-5145"><a href="#SafeDivide-5145"><span class="linenos">5145</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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>
@@ -73973,6 +78303,7 @@ array<int> != array<float>.</p>
<dd id="SafeDivide.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="SafeDivide.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="SafeDivide.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="SafeDivide.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="SafeDivide.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="SafeDivide.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="SafeDivide.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -73993,6 +78324,7 @@ array<int> != array<float>.</p>
<dd id="SafeDivide.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="SafeDivide.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="SafeDivide.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="SafeDivide.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="SafeDivide.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="SafeDivide.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="SafeDivide.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -74014,6 +78346,7 @@ array<int> != array<float>.</p>
<dd id="SafeDivide.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="SafeDivide.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="SafeDivide.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="SafeDivide.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -74038,8 +78371,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#SHA"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SHA-5045"><a href="#SHA-5045"><span class="linenos">5045</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-5046"><a href="#SHA-5046"><span class="linenos">5046</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;SHA&quot;</span><span class="p">,</span> <span class="s2">&quot;SHA1&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="SHA-5148"><a href="#SHA-5148"><span class="linenos">5148</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-5149"><a href="#SHA-5149"><span class="linenos">5149</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;SHA&quot;</span><span class="p">,</span> <span class="s2">&quot;SHA1&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -74083,6 +78416,7 @@ array<int> != array<float>.</p>
<dd id="SHA.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="SHA.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="SHA.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="SHA.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="SHA.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="SHA.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="SHA.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -74103,6 +78437,7 @@ array<int> != array<float>.</p>
<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.to_s" class="function"><a href="#Expression.to_s">to_s</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>
@@ -74124,6 +78459,7 @@ array<int> != array<float>.</p>
<dd id="SHA.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="SHA.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="SHA.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="SHA.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -74148,9 +78484,9 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#SHA2"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SHA2-5049"><a href="#SHA2-5049"><span class="linenos">5049</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-5050"><a href="#SHA2-5050"><span class="linenos">5050</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;SHA2&quot;</span><span class="p">]</span>
-</span><span id="SHA2-5051"><a href="#SHA2-5051"><span class="linenos">5051</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;length&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="SHA2-5152"><a href="#SHA2-5152"><span class="linenos">5152</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-5153"><a href="#SHA2-5153"><span class="linenos">5153</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-5154"><a href="#SHA2-5154"><span class="linenos">5154</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;length&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -74205,6 +78541,7 @@ array<int> != array<float>.</p>
<dd id="SHA2.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="SHA2.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="SHA2.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="SHA2.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="SHA2.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="SHA2.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="SHA2.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -74225,6 +78562,7 @@ array<int> != array<float>.</p>
<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.to_s" class="function"><a href="#Expression.to_s">to_s</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>
@@ -74246,6 +78584,7 @@ array<int> != array<float>.</p>
<dd id="SHA2.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="SHA2.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="SHA2.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="SHA2.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -74270,8 +78609,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#SortArray"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SortArray-5054"><a href="#SortArray-5054"><span class="linenos">5054</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-5055"><a href="#SortArray-5055"><span class="linenos">5055</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-5157"><a href="#SortArray-5157"><span class="linenos">5157</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-5158"><a href="#SortArray-5158"><span class="linenos">5158</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;asc&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -74326,6 +78665,7 @@ array<int> != array<float>.</p>
<dd id="SortArray.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="SortArray.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="SortArray.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="SortArray.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="SortArray.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="SortArray.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="SortArray.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -74346,6 +78686,7 @@ array<int> != array<float>.</p>
<dd id="SortArray.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="SortArray.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="SortArray.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="SortArray.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="SortArray.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="SortArray.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="SortArray.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -74367,6 +78708,7 @@ array<int> != array<float>.</p>
<dd id="SortArray.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="SortArray.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="SortArray.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="SortArray.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -74391,8 +78733,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Split"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Split-5058"><a href="#Split-5058"><span class="linenos">5058</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-5059"><a href="#Split-5059"><span class="linenos">5059</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-5161"><a href="#Split-5161"><span class="linenos">5161</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-5162"><a href="#Split-5162"><span class="linenos">5162</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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>
@@ -74447,6 +78789,7 @@ array<int> != array<float>.</p>
<dd id="Split.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Split.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Split.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Split.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Split.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Split.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Split.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -74467,6 +78810,7 @@ array<int> != array<float>.</p>
<dd id="Split.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Split.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Split.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Split.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Split.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Split.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Split.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -74488,6 +78832,7 @@ array<int> != array<float>.</p>
<dd id="Split.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Split.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Split.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Split.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -74512,8 +78857,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Substring"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Substring-5064"><a href="#Substring-5064"><span class="linenos">5064</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-5065"><a href="#Substring-5065"><span class="linenos">5065</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5167"><a href="#Substring-5167"><span class="linenos">5167</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-5168"><a href="#Substring-5168"><span class="linenos">5168</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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>
@@ -74568,6 +78913,7 @@ array<int> != array<float>.</p>
<dd id="Substring.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Substring.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Substring.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Substring.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Substring.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Substring.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Substring.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -74588,6 +78934,7 @@ array<int> != array<float>.</p>
<dd id="Substring.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Substring.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Substring.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Substring.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Substring.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Substring.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Substring.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -74609,6 +78956,7 @@ array<int> != array<float>.</p>
<dd id="Substring.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Substring.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Substring.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Substring.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -74633,8 +78981,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#StandardHash"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StandardHash-5068"><a href="#StandardHash-5068"><span class="linenos">5068</span></a><span class="k">class</span> <span class="nc">StandardHash</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="StandardHash-5069"><a href="#StandardHash-5069"><span class="linenos">5069</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="StandardHash-5171"><a href="#StandardHash-5171"><span class="linenos">5171</span></a><span class="k">class</span> <span class="nc">StandardHash</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="StandardHash-5172"><a href="#StandardHash-5172"><span class="linenos">5172</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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>
@@ -74689,6 +79037,7 @@ array<int> != array<float>.</p>
<dd id="StandardHash.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="StandardHash.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="StandardHash.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="StandardHash.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="StandardHash.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="StandardHash.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="StandardHash.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -74709,6 +79058,7 @@ array<int> != array<float>.</p>
<dd id="StandardHash.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="StandardHash.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="StandardHash.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="StandardHash.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="StandardHash.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="StandardHash.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="StandardHash.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -74730,6 +79080,7 @@ array<int> != array<float>.</p>
<dd id="StandardHash.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="StandardHash.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="StandardHash.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="StandardHash.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -74754,9 +79105,9 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#StartsWith"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StartsWith-5072"><a href="#StartsWith-5072"><span class="linenos">5072</span></a><span class="k">class</span> <span class="nc">StartsWith</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="StartsWith-5073"><a href="#StartsWith-5073"><span class="linenos">5073</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;STARTS_WITH&quot;</span><span class="p">,</span> <span class="s2">&quot;STARTSWITH&quot;</span><span class="p">]</span>
-</span><span id="StartsWith-5074"><a href="#StartsWith-5074"><span class="linenos">5074</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="StartsWith-5175"><a href="#StartsWith-5175"><span class="linenos">5175</span></a><span class="k">class</span> <span class="nc">StartsWith</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="StartsWith-5176"><a href="#StartsWith-5176"><span class="linenos">5176</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;STARTS_WITH&quot;</span><span class="p">,</span> <span class="s2">&quot;STARTSWITH&quot;</span><span class="p">]</span>
+</span><span id="StartsWith-5177"><a href="#StartsWith-5177"><span class="linenos">5177</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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>
@@ -74811,6 +79162,7 @@ array<int> != array<float>.</p>
<dd id="StartsWith.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="StartsWith.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="StartsWith.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="StartsWith.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="StartsWith.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="StartsWith.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="StartsWith.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -74831,6 +79183,7 @@ array<int> != array<float>.</p>
<dd id="StartsWith.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="StartsWith.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="StartsWith.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="StartsWith.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="StartsWith.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="StartsWith.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="StartsWith.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -74852,6 +79205,7 @@ array<int> != array<float>.</p>
<dd id="StartsWith.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="StartsWith.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="StartsWith.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="StartsWith.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -74876,13 +79230,13 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#StrPosition"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StrPosition-5077"><a href="#StrPosition-5077"><span class="linenos">5077</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-5078"><a href="#StrPosition-5078"><span class="linenos">5078</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="StrPosition-5079"><a href="#StrPosition-5079"><span class="linenos">5079</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-5080"><a href="#StrPosition-5080"><span class="linenos">5080</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-5081"><a href="#StrPosition-5081"><span class="linenos">5081</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-5082"><a href="#StrPosition-5082"><span class="linenos">5082</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-5083"><a href="#StrPosition-5083"><span class="linenos">5083</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="StrPosition-5180"><a href="#StrPosition-5180"><span class="linenos">5180</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-5181"><a href="#StrPosition-5181"><span class="linenos">5181</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="StrPosition-5182"><a href="#StrPosition-5182"><span class="linenos">5182</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-5183"><a href="#StrPosition-5183"><span class="linenos">5183</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-5184"><a href="#StrPosition-5184"><span class="linenos">5184</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-5185"><a href="#StrPosition-5185"><span class="linenos">5185</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-5186"><a href="#StrPosition-5186"><span class="linenos">5186</span></a> <span class="p">}</span>
</span></pre></div>
@@ -74937,6 +79291,7 @@ array<int> != array<float>.</p>
<dd id="StrPosition.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="StrPosition.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="StrPosition.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="StrPosition.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="StrPosition.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="StrPosition.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="StrPosition.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -74957,6 +79312,7 @@ array<int> != array<float>.</p>
<dd id="StrPosition.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="StrPosition.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="StrPosition.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="StrPosition.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="StrPosition.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="StrPosition.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="StrPosition.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -74978,6 +79334,7 @@ array<int> != array<float>.</p>
<dd id="StrPosition.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="StrPosition.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="StrPosition.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="StrPosition.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -75002,8 +79359,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#StrToDate"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StrToDate-5086"><a href="#StrToDate-5086"><span class="linenos">5086</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-5087"><a href="#StrToDate-5087"><span class="linenos">5087</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-5189"><a href="#StrToDate-5189"><span class="linenos">5189</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-5190"><a href="#StrToDate-5190"><span class="linenos">5190</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -75058,6 +79415,7 @@ array<int> != array<float>.</p>
<dd id="StrToDate.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="StrToDate.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="StrToDate.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="StrToDate.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="StrToDate.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="StrToDate.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="StrToDate.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -75078,6 +79436,7 @@ array<int> != array<float>.</p>
<dd id="StrToDate.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="StrToDate.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="StrToDate.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="StrToDate.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="StrToDate.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="StrToDate.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="StrToDate.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -75099,6 +79458,7 @@ array<int> != array<float>.</p>
<dd id="StrToDate.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="StrToDate.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="StrToDate.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="StrToDate.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -75123,8 +79483,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#StrToTime"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StrToTime-5090"><a href="#StrToTime-5090"><span class="linenos">5090</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-5091"><a href="#StrToTime-5091"><span class="linenos">5091</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="StrToTime-5193"><a href="#StrToTime-5193"><span class="linenos">5193</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-5194"><a href="#StrToTime-5194"><span class="linenos">5194</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -75179,6 +79539,7 @@ array<int> != array<float>.</p>
<dd id="StrToTime.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="StrToTime.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="StrToTime.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="StrToTime.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="StrToTime.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="StrToTime.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="StrToTime.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -75199,6 +79560,7 @@ array<int> != array<float>.</p>
<dd id="StrToTime.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="StrToTime.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="StrToTime.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="StrToTime.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="StrToTime.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="StrToTime.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="StrToTime.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -75220,6 +79582,7 @@ array<int> != array<float>.</p>
<dd id="StrToTime.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="StrToTime.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="StrToTime.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="StrToTime.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -75244,8 +79607,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#StrToUnix"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StrToUnix-5096"><a href="#StrToUnix-5096"><span class="linenos">5096</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-5097"><a href="#StrToUnix-5097"><span class="linenos">5097</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-5199"><a href="#StrToUnix-5199"><span class="linenos">5199</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-5200"><a href="#StrToUnix-5200"><span class="linenos">5200</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -75300,6 +79663,7 @@ array<int> != array<float>.</p>
<dd id="StrToUnix.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="StrToUnix.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="StrToUnix.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="StrToUnix.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="StrToUnix.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="StrToUnix.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="StrToUnix.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -75320,6 +79684,7 @@ array<int> != array<float>.</p>
<dd id="StrToUnix.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="StrToUnix.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="StrToUnix.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="StrToUnix.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="StrToUnix.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="StrToUnix.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="StrToUnix.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -75341,6 +79706,7 @@ array<int> != array<float>.</p>
<dd id="StrToUnix.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="StrToUnix.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="StrToUnix.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="StrToUnix.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -75365,13 +79731,13 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#StrToMap"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StrToMap-5102"><a href="#StrToMap-5102"><span class="linenos">5102</span></a><span class="k">class</span> <span class="nc">StrToMap</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="StrToMap-5103"><a href="#StrToMap-5103"><span class="linenos">5103</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="StrToMap-5104"><a href="#StrToMap-5104"><span class="linenos">5104</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="StrToMap-5105"><a href="#StrToMap-5105"><span class="linenos">5105</span></a> <span class="s2">&quot;pair_delim&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="StrToMap-5106"><a href="#StrToMap-5106"><span class="linenos">5106</span></a> <span class="s2">&quot;key_value_delim&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="StrToMap-5107"><a href="#StrToMap-5107"><span class="linenos">5107</span></a> <span class="s2">&quot;duplicate_resolution_callback&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="StrToMap-5108"><a href="#StrToMap-5108"><span class="linenos">5108</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="StrToMap-5205"><a href="#StrToMap-5205"><span class="linenos">5205</span></a><span class="k">class</span> <span class="nc">StrToMap</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="StrToMap-5206"><a href="#StrToMap-5206"><span class="linenos">5206</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="StrToMap-5207"><a href="#StrToMap-5207"><span class="linenos">5207</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="StrToMap-5208"><a href="#StrToMap-5208"><span class="linenos">5208</span></a> <span class="s2">&quot;pair_delim&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="StrToMap-5209"><a href="#StrToMap-5209"><span class="linenos">5209</span></a> <span class="s2">&quot;key_value_delim&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="StrToMap-5210"><a href="#StrToMap-5210"><span class="linenos">5210</span></a> <span class="s2">&quot;duplicate_resolution_callback&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="StrToMap-5211"><a href="#StrToMap-5211"><span class="linenos">5211</span></a> <span class="p">}</span>
</span></pre></div>
@@ -75427,6 +79793,7 @@ array<int> != array<float>.</p>
<dd id="StrToMap.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="StrToMap.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="StrToMap.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="StrToMap.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="StrToMap.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="StrToMap.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="StrToMap.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -75447,6 +79814,7 @@ array<int> != array<float>.</p>
<dd id="StrToMap.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="StrToMap.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="StrToMap.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="StrToMap.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="StrToMap.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="StrToMap.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="StrToMap.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -75468,6 +79836,7 @@ array<int> != array<float>.</p>
<dd id="StrToMap.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="StrToMap.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="StrToMap.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="StrToMap.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -75492,8 +79861,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#NumberToStr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="NumberToStr-5111"><a href="#NumberToStr-5111"><span class="linenos">5111</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-5112"><a href="#NumberToStr-5112"><span class="linenos">5112</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;culture&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="NumberToStr-5214"><a href="#NumberToStr-5214"><span class="linenos">5214</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-5215"><a href="#NumberToStr-5215"><span class="linenos">5215</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;culture&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -75548,6 +79917,7 @@ array<int> != array<float>.</p>
<dd id="NumberToStr.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="NumberToStr.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="NumberToStr.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="NumberToStr.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="NumberToStr.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="NumberToStr.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="NumberToStr.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -75568,6 +79938,7 @@ array<int> != array<float>.</p>
<dd id="NumberToStr.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="NumberToStr.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="NumberToStr.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="NumberToStr.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="NumberToStr.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="NumberToStr.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="NumberToStr.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -75589,6 +79960,7 @@ array<int> != array<float>.</p>
<dd id="NumberToStr.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="NumberToStr.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="NumberToStr.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="NumberToStr.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -75613,8 +79985,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#FromBase"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="FromBase-5115"><a href="#FromBase-5115"><span class="linenos">5115</span></a><span class="k">class</span> <span class="nc">FromBase</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="FromBase-5116"><a href="#FromBase-5116"><span class="linenos">5116</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="FromBase-5218"><a href="#FromBase-5218"><span class="linenos">5218</span></a><span class="k">class</span> <span class="nc">FromBase</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="FromBase-5219"><a href="#FromBase-5219"><span class="linenos">5219</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -75669,6 +80041,7 @@ array<int> != array<float>.</p>
<dd id="FromBase.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="FromBase.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="FromBase.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="FromBase.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="FromBase.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="FromBase.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="FromBase.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -75689,6 +80062,7 @@ array<int> != array<float>.</p>
<dd id="FromBase.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="FromBase.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="FromBase.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="FromBase.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="FromBase.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="FromBase.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="FromBase.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -75710,6 +80084,7 @@ array<int> != array<float>.</p>
<dd id="FromBase.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="FromBase.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="FromBase.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="FromBase.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -75734,9 +80109,9 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Struct"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Struct-5119"><a href="#Struct-5119"><span class="linenos">5119</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-5120"><a href="#Struct-5120"><span class="linenos">5120</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="Struct-5121"><a href="#Struct-5121"><span class="linenos">5121</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-5222"><a href="#Struct-5222"><span class="linenos">5222</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-5223"><a href="#Struct-5223"><span class="linenos">5223</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="Struct-5224"><a href="#Struct-5224"><span class="linenos">5224</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -75803,6 +80178,7 @@ array<int> != array<float>.</p>
<dd id="Struct.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Struct.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Struct.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Struct.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Struct.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Struct.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Struct.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -75823,6 +80199,7 @@ array<int> != array<float>.</p>
<dd id="Struct.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Struct.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Struct.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Struct.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Struct.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Struct.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Struct.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -75844,6 +80221,7 @@ array<int> != array<float>.</p>
<dd id="Struct.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Struct.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Struct.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Struct.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -75867,8 +80245,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#StructExtract"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StructExtract-5124"><a href="#StructExtract-5124"><span class="linenos">5124</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-5125"><a href="#StructExtract-5125"><span class="linenos">5125</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-5227"><a href="#StructExtract-5227"><span class="linenos">5227</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-5228"><a href="#StructExtract-5228"><span class="linenos">5228</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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>
@@ -75923,6 +80301,7 @@ array<int> != array<float>.</p>
<dd id="StructExtract.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="StructExtract.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="StructExtract.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="StructExtract.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="StructExtract.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="StructExtract.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="StructExtract.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -75943,6 +80322,7 @@ array<int> != array<float>.</p>
<dd id="StructExtract.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="StructExtract.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="StructExtract.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="StructExtract.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="StructExtract.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="StructExtract.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="StructExtract.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -75964,6 +80344,7 @@ array<int> != array<float>.</p>
<dd id="StructExtract.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="StructExtract.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="StructExtract.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="StructExtract.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -75988,9 +80369,9 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Stuff"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Stuff-5130"><a href="#Stuff-5130"><span class="linenos">5130</span></a><span class="k">class</span> <span class="nc">Stuff</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Stuff-5131"><a href="#Stuff-5131"><span class="linenos">5131</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;STUFF&quot;</span><span class="p">,</span> <span class="s2">&quot;INSERT&quot;</span><span class="p">]</span>
-</span><span id="Stuff-5132"><a href="#Stuff-5132"><span class="linenos">5132</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;start&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;length&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Stuff-5233"><a href="#Stuff-5233"><span class="linenos">5233</span></a><span class="k">class</span> <span class="nc">Stuff</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Stuff-5234"><a href="#Stuff-5234"><span class="linenos">5234</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;STUFF&quot;</span><span class="p">,</span> <span class="s2">&quot;INSERT&quot;</span><span class="p">]</span>
+</span><span id="Stuff-5235"><a href="#Stuff-5235"><span class="linenos">5235</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;start&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;length&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -76045,6 +80426,7 @@ array<int> != array<float>.</p>
<dd id="Stuff.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Stuff.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Stuff.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Stuff.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Stuff.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Stuff.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Stuff.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -76065,6 +80447,7 @@ array<int> != array<float>.</p>
<dd id="Stuff.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Stuff.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Stuff.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Stuff.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Stuff.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Stuff.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Stuff.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -76086,6 +80469,7 @@ array<int> != array<float>.</p>
<dd id="Stuff.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Stuff.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Stuff.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Stuff.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -76110,8 +80494,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Sum"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Sum-5135"><a href="#Sum-5135"><span class="linenos">5135</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-5136"><a href="#Sum-5136"><span class="linenos">5136</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Sum-5238"><a href="#Sum-5238"><span class="linenos">5238</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-5239"><a href="#Sum-5239"><span class="linenos">5239</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -76155,6 +80539,7 @@ array<int> != array<float>.</p>
<dd id="Sum.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Sum.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Sum.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Sum.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Sum.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Sum.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Sum.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -76175,6 +80560,7 @@ array<int> != array<float>.</p>
<dd id="Sum.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Sum.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Sum.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Sum.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Sum.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Sum.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Sum.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -76196,6 +80582,7 @@ array<int> != array<float>.</p>
<dd id="Sum.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Sum.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Sum.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Sum.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -76220,8 +80607,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Sqrt"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Sqrt-5139"><a href="#Sqrt-5139"><span class="linenos">5139</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-5140"><a href="#Sqrt-5140"><span class="linenos">5140</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Sqrt-5242"><a href="#Sqrt-5242"><span class="linenos">5242</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-5243"><a href="#Sqrt-5243"><span class="linenos">5243</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -76265,6 +80652,7 @@ array<int> != array<float>.</p>
<dd id="Sqrt.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Sqrt.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Sqrt.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Sqrt.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Sqrt.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Sqrt.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Sqrt.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -76285,6 +80673,7 @@ array<int> != array<float>.</p>
<dd id="Sqrt.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Sqrt.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Sqrt.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Sqrt.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Sqrt.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Sqrt.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Sqrt.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -76306,6 +80695,7 @@ array<int> != array<float>.</p>
<dd id="Sqrt.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Sqrt.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Sqrt.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Sqrt.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -76330,8 +80720,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Stddev"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Stddev-5143"><a href="#Stddev-5143"><span class="linenos">5143</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-5144"><a href="#Stddev-5144"><span class="linenos">5144</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Stddev-5246"><a href="#Stddev-5246"><span class="linenos">5246</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-5247"><a href="#Stddev-5247"><span class="linenos">5247</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -76375,6 +80765,7 @@ array<int> != array<float>.</p>
<dd id="Stddev.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Stddev.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Stddev.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Stddev.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Stddev.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Stddev.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Stddev.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -76395,6 +80786,7 @@ array<int> != array<float>.</p>
<dd id="Stddev.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Stddev.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Stddev.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Stddev.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Stddev.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Stddev.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Stddev.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -76416,6 +80808,7 @@ array<int> != array<float>.</p>
<dd id="Stddev.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Stddev.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Stddev.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Stddev.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -76440,8 +80833,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#StddevPop"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StddevPop-5147"><a href="#StddevPop-5147"><span class="linenos">5147</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-5148"><a href="#StddevPop-5148"><span class="linenos">5148</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="StddevPop-5250"><a href="#StddevPop-5250"><span class="linenos">5250</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-5251"><a href="#StddevPop-5251"><span class="linenos">5251</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -76485,6 +80878,7 @@ array<int> != array<float>.</p>
<dd id="StddevPop.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="StddevPop.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="StddevPop.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="StddevPop.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="StddevPop.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="StddevPop.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="StddevPop.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -76505,6 +80899,7 @@ array<int> != array<float>.</p>
<dd id="StddevPop.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="StddevPop.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="StddevPop.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="StddevPop.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="StddevPop.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="StddevPop.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="StddevPop.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -76526,6 +80921,7 @@ array<int> != array<float>.</p>
<dd id="StddevPop.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="StddevPop.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="StddevPop.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="StddevPop.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -76550,8 +80946,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#StddevSamp"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StddevSamp-5151"><a href="#StddevSamp-5151"><span class="linenos">5151</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-5152"><a href="#StddevSamp-5152"><span class="linenos">5152</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="StddevSamp-5254"><a href="#StddevSamp-5254"><span class="linenos">5254</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-5255"><a href="#StddevSamp-5255"><span class="linenos">5255</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -76595,6 +80991,7 @@ array<int> != array<float>.</p>
<dd id="StddevSamp.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="StddevSamp.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="StddevSamp.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="StddevSamp.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="StddevSamp.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="StddevSamp.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="StddevSamp.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -76615,6 +81012,7 @@ array<int> != array<float>.</p>
<dd id="StddevSamp.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="StddevSamp.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="StddevSamp.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="StddevSamp.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="StddevSamp.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="StddevSamp.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="StddevSamp.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -76636,6 +81034,7 @@ array<int> != array<float>.</p>
<dd id="StddevSamp.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="StddevSamp.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="StddevSamp.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="StddevSamp.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -76660,8 +81059,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TimeToStr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeToStr-5155"><a href="#TimeToStr-5155"><span class="linenos">5155</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-5156"><a href="#TimeToStr-5156"><span class="linenos">5156</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;culture&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TimeToStr-5258"><a href="#TimeToStr-5258"><span class="linenos">5258</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-5259"><a href="#TimeToStr-5259"><span class="linenos">5259</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;culture&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -76716,6 +81115,7 @@ array<int> != array<float>.</p>
<dd id="TimeToStr.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="TimeToStr.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="TimeToStr.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="TimeToStr.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="TimeToStr.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="TimeToStr.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="TimeToStr.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -76736,6 +81136,7 @@ array<int> != array<float>.</p>
<dd id="TimeToStr.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="TimeToStr.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="TimeToStr.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="TimeToStr.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="TimeToStr.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="TimeToStr.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="TimeToStr.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -76757,6 +81158,7 @@ array<int> != array<float>.</p>
<dd id="TimeToStr.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="TimeToStr.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="TimeToStr.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="TimeToStr.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -76781,8 +81183,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TimeToTimeStr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeToTimeStr-5159"><a href="#TimeToTimeStr-5159"><span class="linenos">5159</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-5160"><a href="#TimeToTimeStr-5160"><span class="linenos">5160</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TimeToTimeStr-5262"><a href="#TimeToTimeStr-5262"><span class="linenos">5262</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-5263"><a href="#TimeToTimeStr-5263"><span class="linenos">5263</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -76826,6 +81228,7 @@ array<int> != array<float>.</p>
<dd id="TimeToTimeStr.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="TimeToTimeStr.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="TimeToTimeStr.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="TimeToTimeStr.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="TimeToTimeStr.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="TimeToTimeStr.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="TimeToTimeStr.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -76846,6 +81249,7 @@ array<int> != array<float>.</p>
<dd id="TimeToTimeStr.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="TimeToTimeStr.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="TimeToTimeStr.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="TimeToTimeStr.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="TimeToTimeStr.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="TimeToTimeStr.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="TimeToTimeStr.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -76867,6 +81271,7 @@ array<int> != array<float>.</p>
<dd id="TimeToTimeStr.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="TimeToTimeStr.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="TimeToTimeStr.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="TimeToTimeStr.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -76891,8 +81296,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TimeToUnix"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeToUnix-5163"><a href="#TimeToUnix-5163"><span class="linenos">5163</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-5164"><a href="#TimeToUnix-5164"><span class="linenos">5164</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TimeToUnix-5266"><a href="#TimeToUnix-5266"><span class="linenos">5266</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-5267"><a href="#TimeToUnix-5267"><span class="linenos">5267</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -76936,6 +81341,7 @@ array<int> != array<float>.</p>
<dd id="TimeToUnix.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="TimeToUnix.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="TimeToUnix.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="TimeToUnix.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="TimeToUnix.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="TimeToUnix.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="TimeToUnix.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -76956,6 +81362,7 @@ array<int> != array<float>.</p>
<dd id="TimeToUnix.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="TimeToUnix.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="TimeToUnix.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="TimeToUnix.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="TimeToUnix.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="TimeToUnix.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="TimeToUnix.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -76977,6 +81384,7 @@ array<int> != array<float>.</p>
<dd id="TimeToUnix.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="TimeToUnix.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="TimeToUnix.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="TimeToUnix.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -77001,8 +81409,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TimeStrToDate"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeStrToDate-5167"><a href="#TimeStrToDate-5167"><span class="linenos">5167</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-5168"><a href="#TimeStrToDate-5168"><span class="linenos">5168</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TimeStrToDate-5270"><a href="#TimeStrToDate-5270"><span class="linenos">5270</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-5271"><a href="#TimeStrToDate-5271"><span class="linenos">5271</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -77046,6 +81454,7 @@ array<int> != array<float>.</p>
<dd id="TimeStrToDate.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="TimeStrToDate.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="TimeStrToDate.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="TimeStrToDate.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="TimeStrToDate.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="TimeStrToDate.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="TimeStrToDate.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -77066,6 +81475,7 @@ array<int> != array<float>.</p>
<dd id="TimeStrToDate.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="TimeStrToDate.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="TimeStrToDate.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="TimeStrToDate.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="TimeStrToDate.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="TimeStrToDate.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="TimeStrToDate.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -77087,6 +81497,7 @@ array<int> != array<float>.</p>
<dd id="TimeStrToDate.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="TimeStrToDate.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="TimeStrToDate.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="TimeStrToDate.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -77111,8 +81522,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TimeStrToTime"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeStrToTime-5171"><a href="#TimeStrToTime-5171"><span class="linenos">5171</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-5172"><a href="#TimeStrToTime-5172"><span class="linenos">5172</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TimeStrToTime-5274"><a href="#TimeStrToTime-5274"><span class="linenos">5274</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-5275"><a href="#TimeStrToTime-5275"><span class="linenos">5275</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -77156,6 +81567,7 @@ array<int> != array<float>.</p>
<dd id="TimeStrToTime.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="TimeStrToTime.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="TimeStrToTime.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="TimeStrToTime.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="TimeStrToTime.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="TimeStrToTime.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="TimeStrToTime.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -77176,6 +81588,7 @@ array<int> != array<float>.</p>
<dd id="TimeStrToTime.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="TimeStrToTime.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="TimeStrToTime.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="TimeStrToTime.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="TimeStrToTime.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="TimeStrToTime.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="TimeStrToTime.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -77197,6 +81610,7 @@ array<int> != array<float>.</p>
<dd id="TimeStrToTime.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="TimeStrToTime.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="TimeStrToTime.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="TimeStrToTime.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -77221,8 +81635,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TimeStrToUnix"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeStrToUnix-5175"><a href="#TimeStrToUnix-5175"><span class="linenos">5175</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-5176"><a href="#TimeStrToUnix-5176"><span class="linenos">5176</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TimeStrToUnix-5278"><a href="#TimeStrToUnix-5278"><span class="linenos">5278</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-5279"><a href="#TimeStrToUnix-5279"><span class="linenos">5279</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -77266,6 +81680,7 @@ array<int> != array<float>.</p>
<dd id="TimeStrToUnix.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="TimeStrToUnix.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="TimeStrToUnix.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="TimeStrToUnix.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="TimeStrToUnix.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="TimeStrToUnix.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="TimeStrToUnix.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -77286,6 +81701,7 @@ array<int> != array<float>.</p>
<dd id="TimeStrToUnix.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="TimeStrToUnix.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="TimeStrToUnix.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="TimeStrToUnix.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="TimeStrToUnix.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="TimeStrToUnix.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="TimeStrToUnix.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -77307,6 +81723,7 @@ array<int> != array<float>.</p>
<dd id="TimeStrToUnix.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="TimeStrToUnix.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="TimeStrToUnix.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="TimeStrToUnix.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -77331,13 +81748,13 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Trim"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Trim-5179"><a href="#Trim-5179"><span class="linenos">5179</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-5180"><a href="#Trim-5180"><span class="linenos">5180</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Trim-5181"><a href="#Trim-5181"><span class="linenos">5181</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-5182"><a href="#Trim-5182"><span class="linenos">5182</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-5183"><a href="#Trim-5183"><span class="linenos">5183</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-5184"><a href="#Trim-5184"><span class="linenos">5184</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-5185"><a href="#Trim-5185"><span class="linenos">5185</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Trim-5282"><a href="#Trim-5282"><span class="linenos">5282</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-5283"><a href="#Trim-5283"><span class="linenos">5283</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Trim-5284"><a href="#Trim-5284"><span class="linenos">5284</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Trim-5285"><a href="#Trim-5285"><span class="linenos">5285</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-5286"><a href="#Trim-5286"><span class="linenos">5286</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-5287"><a href="#Trim-5287"><span class="linenos">5287</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-5288"><a href="#Trim-5288"><span class="linenos">5288</span></a> <span class="p">}</span>
</span></pre></div>
@@ -77392,6 +81809,7 @@ array<int> != array<float>.</p>
<dd id="Trim.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Trim.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Trim.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Trim.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Trim.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Trim.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Trim.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -77412,6 +81830,7 @@ array<int> != array<float>.</p>
<dd id="Trim.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Trim.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Trim.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Trim.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Trim.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Trim.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Trim.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -77433,6 +81852,7 @@ array<int> != array<float>.</p>
<dd id="Trim.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Trim.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Trim.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Trim.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -77457,13 +81877,13 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TsOrDsAdd"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDsAdd-5188"><a href="#TsOrDsAdd-5188"><span class="linenos">5188</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-5189"><a href="#TsOrDsAdd-5189"><span class="linenos">5189</span></a> <span class="c1"># return_type is used to correctly cast the arguments of this expression when transpiling it</span>
-</span><span id="TsOrDsAdd-5190"><a href="#TsOrDsAdd-5190"><span class="linenos">5190</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;return_type&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="TsOrDsAdd-5191"><a href="#TsOrDsAdd-5191"><span class="linenos">5191</span></a>
-</span><span id="TsOrDsAdd-5192"><a href="#TsOrDsAdd-5192"><span class="linenos">5192</span></a> <span class="nd">@property</span>
-</span><span id="TsOrDsAdd-5193"><a href="#TsOrDsAdd-5193"><span class="linenos">5193</span></a> <span class="k">def</span> <span class="nf">return_type</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DataType</span><span class="p">:</span>
-</span><span id="TsOrDsAdd-5194"><a href="#TsOrDsAdd-5194"><span class="linenos">5194</span></a> <span class="k">return</span> <span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;return_type&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">DATE</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDsAdd-5291"><a href="#TsOrDsAdd-5291"><span class="linenos">5291</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-5292"><a href="#TsOrDsAdd-5292"><span class="linenos">5292</span></a> <span class="c1"># return_type is used to correctly cast the arguments of this expression when transpiling it</span>
+</span><span id="TsOrDsAdd-5293"><a href="#TsOrDsAdd-5293"><span class="linenos">5293</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;return_type&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="TsOrDsAdd-5294"><a href="#TsOrDsAdd-5294"><span class="linenos">5294</span></a>
+</span><span id="TsOrDsAdd-5295"><a href="#TsOrDsAdd-5295"><span class="linenos">5295</span></a> <span class="nd">@property</span>
+</span><span id="TsOrDsAdd-5296"><a href="#TsOrDsAdd-5296"><span class="linenos">5296</span></a> <span class="k">def</span> <span class="nf">return_type</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DataType</span><span class="p">:</span>
+</span><span id="TsOrDsAdd-5297"><a href="#TsOrDsAdd-5297"><span class="linenos">5297</span></a> <span class="k">return</span> <span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;return_type&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">DATE</span><span class="p">)</span>
</span></pre></div>
@@ -77482,13 +81902,20 @@ array<int> != array<float>.</p>
</div>
<div id="TsOrDsAdd.return_type" class="classattr">
- <div class="attr variable">
+ <input id="TsOrDsAdd.return_type-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr variable">
<span class="name">return_type</span><span class="annotation">: <a href="#DataType">DataType</a></span>
-
+ <label class="view-source-button" for="TsOrDsAdd.return_type-view-source"><span>View Source</span></label>
+
</div>
<a class="headerlink" href="#TsOrDsAdd.return_type"></a>
-
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDsAdd.return_type-5295"><a href="#TsOrDsAdd.return_type-5295"><span class="linenos">5295</span></a> <span class="nd">@property</span>
+</span><span id="TsOrDsAdd.return_type-5296"><a href="#TsOrDsAdd.return_type-5296"><span class="linenos">5296</span></a> <span class="k">def</span> <span class="nf">return_type</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DataType</span><span class="p">:</span>
+</span><span id="TsOrDsAdd.return_type-5297"><a href="#TsOrDsAdd.return_type-5297"><span class="linenos">5297</span></a> <span class="k">return</span> <span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;return_type&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">DATE</span><span class="p">)</span>
+</span></pre></div>
+
+
</div>
@@ -77543,6 +81970,7 @@ array<int> != array<float>.</p>
<dd id="TsOrDsAdd.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="TsOrDsAdd.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="TsOrDsAdd.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="TsOrDsAdd.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="TsOrDsAdd.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="TsOrDsAdd.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="TsOrDsAdd.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -77563,6 +81991,7 @@ array<int> != array<float>.</p>
<dd id="TsOrDsAdd.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="TsOrDsAdd.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="TsOrDsAdd.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="TsOrDsAdd.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="TsOrDsAdd.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="TsOrDsAdd.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="TsOrDsAdd.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -77584,6 +82013,7 @@ array<int> != array<float>.</p>
<dd id="TsOrDsAdd.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="TsOrDsAdd.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="TsOrDsAdd.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="TsOrDsAdd.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -77600,8 +82030,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TsOrDsDiff"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDsDiff-5197"><a href="#TsOrDsDiff-5197"><span class="linenos">5197</span></a><span class="k">class</span> <span class="nc">TsOrDsDiff</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
-</span><span id="TsOrDsDiff-5198"><a href="#TsOrDsDiff-5198"><span class="linenos">5198</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDsDiff-5300"><a href="#TsOrDsDiff-5300"><span class="linenos">5300</span></a><span class="k">class</span> <span class="nc">TsOrDsDiff</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
+</span><span id="TsOrDsDiff-5301"><a href="#TsOrDsDiff-5301"><span class="linenos">5301</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <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>
@@ -77670,6 +82100,7 @@ array<int> != array<float>.</p>
<dd id="TsOrDsDiff.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="TsOrDsDiff.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="TsOrDsDiff.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="TsOrDsDiff.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="TsOrDsDiff.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="TsOrDsDiff.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="TsOrDsDiff.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -77690,6 +82121,7 @@ array<int> != array<float>.</p>
<dd id="TsOrDsDiff.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="TsOrDsDiff.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="TsOrDsDiff.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="TsOrDsDiff.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="TsOrDsDiff.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="TsOrDsDiff.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="TsOrDsDiff.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -77711,6 +82143,7 @@ array<int> != array<float>.</p>
<dd id="TsOrDsDiff.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="TsOrDsDiff.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="TsOrDsDiff.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="TsOrDsDiff.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -77727,8 +82160,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TsOrDsToDateStr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDsToDateStr-5201"><a href="#TsOrDsToDateStr-5201"><span class="linenos">5201</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-5202"><a href="#TsOrDsToDateStr-5202"><span class="linenos">5202</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDsToDateStr-5304"><a href="#TsOrDsToDateStr-5304"><span class="linenos">5304</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-5305"><a href="#TsOrDsToDateStr-5305"><span class="linenos">5305</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -77772,6 +82205,7 @@ array<int> != array<float>.</p>
<dd id="TsOrDsToDateStr.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="TsOrDsToDateStr.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="TsOrDsToDateStr.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="TsOrDsToDateStr.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="TsOrDsToDateStr.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="TsOrDsToDateStr.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="TsOrDsToDateStr.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -77792,6 +82226,7 @@ array<int> != array<float>.</p>
<dd id="TsOrDsToDateStr.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="TsOrDsToDateStr.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="TsOrDsToDateStr.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="TsOrDsToDateStr.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="TsOrDsToDateStr.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="TsOrDsToDateStr.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="TsOrDsToDateStr.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -77813,6 +82248,7 @@ array<int> != array<float>.</p>
<dd id="TsOrDsToDateStr.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="TsOrDsToDateStr.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="TsOrDsToDateStr.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="TsOrDsToDateStr.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -77837,8 +82273,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TsOrDsToDate"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDsToDate-5205"><a href="#TsOrDsToDate-5205"><span class="linenos">5205</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-5206"><a href="#TsOrDsToDate-5206"><span class="linenos">5206</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span 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-5308"><a href="#TsOrDsToDate-5308"><span class="linenos">5308</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-5309"><a href="#TsOrDsToDate-5309"><span class="linenos">5309</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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>
@@ -77893,6 +82329,7 @@ array<int> != array<float>.</p>
<dd id="TsOrDsToDate.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="TsOrDsToDate.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="TsOrDsToDate.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="TsOrDsToDate.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="TsOrDsToDate.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="TsOrDsToDate.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="TsOrDsToDate.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -77913,6 +82350,7 @@ array<int> != array<float>.</p>
<dd id="TsOrDsToDate.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="TsOrDsToDate.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="TsOrDsToDate.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="TsOrDsToDate.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="TsOrDsToDate.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="TsOrDsToDate.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="TsOrDsToDate.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -77934,6 +82372,7 @@ array<int> != array<float>.</p>
<dd id="TsOrDsToDate.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="TsOrDsToDate.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="TsOrDsToDate.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="TsOrDsToDate.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -77947,6 +82386,119 @@ array<int> != array<float>.</p>
</dl>
</div>
</section>
+ <section id="TsOrDsToTime">
+ <input id="TsOrDsToTime-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">TsOrDsToTime</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
+
+ <label class="view-source-button" for="TsOrDsToTime-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#TsOrDsToTime"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDsToTime-5312"><a href="#TsOrDsToTime-5312"><span class="linenos">5312</span></a><span class="k">class</span> <span class="nc">TsOrDsToTime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="TsOrDsToTime-5313"><a href="#TsOrDsToTime-5313"><span class="linenos">5313</span></a> <span class="k">pass</span>
+</span></pre></div>
+
+
+
+
+ <div id="TsOrDsToTime.key" class="classattr">
+ <div class="attr variable">
+ <span class="name">key</span> =
+<span class="default_value">&#39;tsordstotime&#39;</span>
+
+
+ </div>
+ <a class="headerlink" href="#TsOrDsToTime.key"></a>
+
+
+
+ </div>
+ <div class="inherited">
+ <h5>Inherited Members</h5>
+ <dl>
+ <div><dt><a href="#Expression">Expression</a></dt>
+ <dd id="TsOrDsToTime.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
+ <dd id="TsOrDsToTime.arg_types" class="variable"><a href="#Expression.arg_types">arg_types</a></dd>
+ <dd id="TsOrDsToTime.args" class="variable"><a href="#Expression.args">args</a></dd>
+ <dd id="TsOrDsToTime.parent" class="variable"><a href="#Expression.parent">parent</a></dd>
+ <dd id="TsOrDsToTime.arg_key" class="variable"><a href="#Expression.arg_key">arg_key</a></dd>
+ <dd id="TsOrDsToTime.comments" class="variable"><a href="#Expression.comments">comments</a></dd>
+ <dd id="TsOrDsToTime.hashable_args" class="variable"><a href="#Expression.hashable_args">hashable_args</a></dd>
+ <dd id="TsOrDsToTime.this" class="variable"><a href="#Expression.this">this</a></dd>
+ <dd id="TsOrDsToTime.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
+ <dd id="TsOrDsToTime.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
+ <dd id="TsOrDsToTime.text" class="function"><a href="#Expression.text">text</a></dd>
+ <dd id="TsOrDsToTime.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
+ <dd id="TsOrDsToTime.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
+ <dd id="TsOrDsToTime.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
+ <dd id="TsOrDsToTime.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
+ <dd id="TsOrDsToTime.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="TsOrDsToTime.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
+ <dd id="TsOrDsToTime.name" class="variable"><a href="#Expression.name">name</a></dd>
+ <dd id="TsOrDsToTime.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
+ <dd id="TsOrDsToTime.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
+ <dd id="TsOrDsToTime.type" class="variable"><a href="#Expression.type">type</a></dd>
+ <dd id="TsOrDsToTime.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="TsOrDsToTime.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
+ <dd id="TsOrDsToTime.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
+ <dd id="TsOrDsToTime.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="TsOrDsToTime.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
+ <dd id="TsOrDsToTime.append" class="function"><a href="#Expression.append">append</a></dd>
+ <dd id="TsOrDsToTime.set" class="function"><a href="#Expression.set">set</a></dd>
+ <dd id="TsOrDsToTime.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
+ <dd id="TsOrDsToTime.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
+ <dd id="TsOrDsToTime.find" class="function"><a href="#Expression.find">find</a></dd>
+ <dd id="TsOrDsToTime.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
+ <dd id="TsOrDsToTime.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
+ <dd id="TsOrDsToTime.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
+ <dd id="TsOrDsToTime.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
+ <dd id="TsOrDsToTime.root" class="function"><a href="#Expression.root">root</a></dd>
+ <dd id="TsOrDsToTime.walk" class="function"><a href="#Expression.walk">walk</a></dd>
+ <dd id="TsOrDsToTime.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
+ <dd id="TsOrDsToTime.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
+ <dd id="TsOrDsToTime.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
+ <dd id="TsOrDsToTime.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
+ <dd id="TsOrDsToTime.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
+ <dd id="TsOrDsToTime.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="TsOrDsToTime.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
+ <dd id="TsOrDsToTime.sql" class="function"><a href="#Expression.sql">sql</a></dd>
+ <dd id="TsOrDsToTime.transform" class="function"><a href="#Expression.transform">transform</a></dd>
+ <dd id="TsOrDsToTime.replace" class="function"><a href="#Expression.replace">replace</a></dd>
+ <dd id="TsOrDsToTime.pop" class="function"><a href="#Expression.pop">pop</a></dd>
+ <dd id="TsOrDsToTime.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
+ <dd id="TsOrDsToTime.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
+ <dd id="TsOrDsToTime.dump" class="function"><a href="#Expression.dump">dump</a></dd>
+ <dd id="TsOrDsToTime.load" class="function"><a href="#Expression.load">load</a></dd>
+ <dd id="TsOrDsToTime.and_" class="function"><a href="#Expression.and_">and_</a></dd>
+ <dd id="TsOrDsToTime.or_" class="function"><a href="#Expression.or_">or_</a></dd>
+ <dd id="TsOrDsToTime.not_" class="function"><a href="#Expression.not_">not_</a></dd>
+ <dd id="TsOrDsToTime.as_" class="function"><a href="#Expression.as_">as_</a></dd>
+ <dd id="TsOrDsToTime.isin" class="function"><a href="#Expression.isin">isin</a></dd>
+ <dd id="TsOrDsToTime.between" class="function"><a href="#Expression.between">between</a></dd>
+ <dd id="TsOrDsToTime.is_" class="function"><a href="#Expression.is_">is_</a></dd>
+ <dd id="TsOrDsToTime.like" class="function"><a href="#Expression.like">like</a></dd>
+ <dd id="TsOrDsToTime.ilike" class="function"><a href="#Expression.ilike">ilike</a></dd>
+ <dd id="TsOrDsToTime.eq" class="function"><a href="#Expression.eq">eq</a></dd>
+ <dd id="TsOrDsToTime.neq" class="function"><a href="#Expression.neq">neq</a></dd>
+ <dd id="TsOrDsToTime.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
+ <dd id="TsOrDsToTime.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="TsOrDsToTime.desc" class="function"><a href="#Expression.desc">desc</a></dd>
+
+ </div>
+ <div><dt><a href="#Func">Func</a></dt>
+ <dd id="TsOrDsToTime.is_var_len_args" class="variable"><a href="#Func.is_var_len_args">is_var_len_args</a></dd>
+ <dd id="TsOrDsToTime.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
+ <dd id="TsOrDsToTime.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
+ <dd id="TsOrDsToTime.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
+ <dd id="TsOrDsToTime.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
+
+ </div>
+ </dl>
+ </div>
+ </section>
<section id="TsOrDiToDi">
<input id="TsOrDiToDi-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
@@ -77958,8 +82510,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TsOrDiToDi"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDiToDi-5209"><a href="#TsOrDiToDi-5209"><span class="linenos">5209</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-5210"><a href="#TsOrDiToDi-5210"><span class="linenos">5210</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDiToDi-5316"><a href="#TsOrDiToDi-5316"><span class="linenos">5316</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-5317"><a href="#TsOrDiToDi-5317"><span class="linenos">5317</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -78003,6 +82555,7 @@ array<int> != array<float>.</p>
<dd id="TsOrDiToDi.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="TsOrDiToDi.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="TsOrDiToDi.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="TsOrDiToDi.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="TsOrDiToDi.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="TsOrDiToDi.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="TsOrDiToDi.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -78023,6 +82576,7 @@ array<int> != array<float>.</p>
<dd id="TsOrDiToDi.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="TsOrDiToDi.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="TsOrDiToDi.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="TsOrDiToDi.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="TsOrDiToDi.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="TsOrDiToDi.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="TsOrDiToDi.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -78044,6 +82598,7 @@ array<int> != array<float>.</p>
<dd id="TsOrDiToDi.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="TsOrDiToDi.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="TsOrDiToDi.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="TsOrDiToDi.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -78068,8 +82623,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Unhex"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Unhex-5213"><a href="#Unhex-5213"><span class="linenos">5213</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-5214"><a href="#Unhex-5214"><span class="linenos">5214</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Unhex-5320"><a href="#Unhex-5320"><span class="linenos">5320</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-5321"><a href="#Unhex-5321"><span class="linenos">5321</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -78113,6 +82668,7 @@ array<int> != array<float>.</p>
<dd id="Unhex.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Unhex.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Unhex.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Unhex.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Unhex.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Unhex.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Unhex.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -78133,6 +82689,7 @@ array<int> != array<float>.</p>
<dd id="Unhex.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Unhex.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Unhex.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Unhex.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Unhex.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Unhex.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Unhex.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -78154,6 +82711,7 @@ array<int> != array<float>.</p>
<dd id="Unhex.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Unhex.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Unhex.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Unhex.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -78167,6 +82725,119 @@ array<int> != array<float>.</p>
</dl>
</div>
</section>
+ <section id="UnixDate">
+ <input id="UnixDate-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">UnixDate</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
+
+ <label class="view-source-button" for="UnixDate-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#UnixDate"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="UnixDate-5325"><a href="#UnixDate-5325"><span class="linenos">5325</span></a><span class="k">class</span> <span class="nc">UnixDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="UnixDate-5326"><a href="#UnixDate-5326"><span class="linenos">5326</span></a> <span class="k">pass</span>
+</span></pre></div>
+
+
+
+
+ <div id="UnixDate.key" class="classattr">
+ <div class="attr variable">
+ <span class="name">key</span> =
+<span class="default_value">&#39;unixdate&#39;</span>
+
+
+ </div>
+ <a class="headerlink" href="#UnixDate.key"></a>
+
+
+
+ </div>
+ <div class="inherited">
+ <h5>Inherited Members</h5>
+ <dl>
+ <div><dt><a href="#Expression">Expression</a></dt>
+ <dd id="UnixDate.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
+ <dd id="UnixDate.arg_types" class="variable"><a href="#Expression.arg_types">arg_types</a></dd>
+ <dd id="UnixDate.args" class="variable"><a href="#Expression.args">args</a></dd>
+ <dd id="UnixDate.parent" class="variable"><a href="#Expression.parent">parent</a></dd>
+ <dd id="UnixDate.arg_key" class="variable"><a href="#Expression.arg_key">arg_key</a></dd>
+ <dd id="UnixDate.comments" class="variable"><a href="#Expression.comments">comments</a></dd>
+ <dd id="UnixDate.hashable_args" class="variable"><a href="#Expression.hashable_args">hashable_args</a></dd>
+ <dd id="UnixDate.this" class="variable"><a href="#Expression.this">this</a></dd>
+ <dd id="UnixDate.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
+ <dd id="UnixDate.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
+ <dd id="UnixDate.text" class="function"><a href="#Expression.text">text</a></dd>
+ <dd id="UnixDate.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
+ <dd id="UnixDate.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
+ <dd id="UnixDate.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
+ <dd id="UnixDate.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
+ <dd id="UnixDate.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="UnixDate.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
+ <dd id="UnixDate.name" class="variable"><a href="#Expression.name">name</a></dd>
+ <dd id="UnixDate.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
+ <dd id="UnixDate.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
+ <dd id="UnixDate.type" class="variable"><a href="#Expression.type">type</a></dd>
+ <dd id="UnixDate.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="UnixDate.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
+ <dd id="UnixDate.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
+ <dd id="UnixDate.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="UnixDate.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
+ <dd id="UnixDate.append" class="function"><a href="#Expression.append">append</a></dd>
+ <dd id="UnixDate.set" class="function"><a href="#Expression.set">set</a></dd>
+ <dd id="UnixDate.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
+ <dd id="UnixDate.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
+ <dd id="UnixDate.find" class="function"><a href="#Expression.find">find</a></dd>
+ <dd id="UnixDate.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
+ <dd id="UnixDate.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
+ <dd id="UnixDate.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
+ <dd id="UnixDate.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
+ <dd id="UnixDate.root" class="function"><a href="#Expression.root">root</a></dd>
+ <dd id="UnixDate.walk" class="function"><a href="#Expression.walk">walk</a></dd>
+ <dd id="UnixDate.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
+ <dd id="UnixDate.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
+ <dd id="UnixDate.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
+ <dd id="UnixDate.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
+ <dd id="UnixDate.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
+ <dd id="UnixDate.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="UnixDate.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
+ <dd id="UnixDate.sql" class="function"><a href="#Expression.sql">sql</a></dd>
+ <dd id="UnixDate.transform" class="function"><a href="#Expression.transform">transform</a></dd>
+ <dd id="UnixDate.replace" class="function"><a href="#Expression.replace">replace</a></dd>
+ <dd id="UnixDate.pop" class="function"><a href="#Expression.pop">pop</a></dd>
+ <dd id="UnixDate.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
+ <dd id="UnixDate.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
+ <dd id="UnixDate.dump" class="function"><a href="#Expression.dump">dump</a></dd>
+ <dd id="UnixDate.load" class="function"><a href="#Expression.load">load</a></dd>
+ <dd id="UnixDate.and_" class="function"><a href="#Expression.and_">and_</a></dd>
+ <dd id="UnixDate.or_" class="function"><a href="#Expression.or_">or_</a></dd>
+ <dd id="UnixDate.not_" class="function"><a href="#Expression.not_">not_</a></dd>
+ <dd id="UnixDate.as_" class="function"><a href="#Expression.as_">as_</a></dd>
+ <dd id="UnixDate.isin" class="function"><a href="#Expression.isin">isin</a></dd>
+ <dd id="UnixDate.between" class="function"><a href="#Expression.between">between</a></dd>
+ <dd id="UnixDate.is_" class="function"><a href="#Expression.is_">is_</a></dd>
+ <dd id="UnixDate.like" class="function"><a href="#Expression.like">like</a></dd>
+ <dd id="UnixDate.ilike" class="function"><a href="#Expression.ilike">ilike</a></dd>
+ <dd id="UnixDate.eq" class="function"><a href="#Expression.eq">eq</a></dd>
+ <dd id="UnixDate.neq" class="function"><a href="#Expression.neq">neq</a></dd>
+ <dd id="UnixDate.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
+ <dd id="UnixDate.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="UnixDate.desc" class="function"><a href="#Expression.desc">desc</a></dd>
+
+ </div>
+ <div><dt><a href="#Func">Func</a></dt>
+ <dd id="UnixDate.is_var_len_args" class="variable"><a href="#Func.is_var_len_args">is_var_len_args</a></dd>
+ <dd id="UnixDate.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
+ <dd id="UnixDate.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
+ <dd id="UnixDate.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
+ <dd id="UnixDate.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
+
+ </div>
+ </dl>
+ </div>
+ </section>
<section id="UnixToStr">
<input id="UnixToStr-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
@@ -78178,8 +82849,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#UnixToStr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="UnixToStr-5217"><a href="#UnixToStr-5217"><span class="linenos">5217</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-5218"><a href="#UnixToStr-5218"><span class="linenos">5218</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span 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-5329"><a href="#UnixToStr-5329"><span class="linenos">5329</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-5330"><a href="#UnixToStr-5330"><span class="linenos">5330</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -78234,6 +82905,7 @@ array<int> != array<float>.</p>
<dd id="UnixToStr.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="UnixToStr.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="UnixToStr.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="UnixToStr.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="UnixToStr.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="UnixToStr.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="UnixToStr.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -78254,6 +82926,7 @@ array<int> != array<float>.</p>
<dd id="UnixToStr.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="UnixToStr.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="UnixToStr.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="UnixToStr.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="UnixToStr.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="UnixToStr.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="UnixToStr.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -78275,6 +82948,7 @@ array<int> != array<float>.</p>
<dd id="UnixToStr.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="UnixToStr.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="UnixToStr.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="UnixToStr.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -78299,13 +82973,13 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#UnixToTime"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="UnixToTime-5223"><a href="#UnixToTime-5223"><span class="linenos">5223</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-5224"><a href="#UnixToTime-5224"><span class="linenos">5224</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5225"><a href="#UnixToTime-5225"><span class="linenos">5225</span></a>
-</span><span id="UnixToTime-5226"><a href="#UnixToTime-5226"><span class="linenos">5226</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-5227"><a href="#UnixToTime-5227"><span class="linenos">5227</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-5228"><a href="#UnixToTime-5228"><span class="linenos">5228</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="UnixToTime-5229"><a href="#UnixToTime-5229"><span class="linenos">5229</span></a> <span class="n">NANOS</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;nanos&quot;</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="UnixToTime-5335"><a href="#UnixToTime-5335"><span class="linenos">5335</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-5336"><a href="#UnixToTime-5336"><span class="linenos">5336</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-5337"><a href="#UnixToTime-5337"><span class="linenos">5337</span></a>
+</span><span id="UnixToTime-5338"><a href="#UnixToTime-5338"><span class="linenos">5338</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-5339"><a href="#UnixToTime-5339"><span class="linenos">5339</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-5340"><a href="#UnixToTime-5340"><span class="linenos">5340</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="UnixToTime-5341"><a href="#UnixToTime-5341"><span class="linenos">5341</span></a> <span class="n">NANOS</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;nanos&quot;</span><span class="p">)</span>
</span></pre></div>
@@ -78326,7 +83000,7 @@ array<int> != array<float>.</p>
<div id="UnixToTime.SECONDS" class="classattr">
<div class="attr variable">
<span class="name">SECONDS</span> =
-<span class="default_value">(LITERAL this: seconds, is_string: True)</span>
+<span class="default_value">Literal(this=seconds, is_string=True)</span>
</div>
@@ -78338,7 +83012,7 @@ array<int> != array<float>.</p>
<div id="UnixToTime.MILLIS" class="classattr">
<div class="attr variable">
<span class="name">MILLIS</span> =
-<span class="default_value">(LITERAL this: millis, is_string: True)</span>
+<span class="default_value">Literal(this=millis, is_string=True)</span>
</div>
@@ -78350,7 +83024,7 @@ array<int> != array<float>.</p>
<div id="UnixToTime.MICROS" class="classattr">
<div class="attr variable">
<span class="name">MICROS</span> =
-<span class="default_value">(LITERAL this: micros, is_string: True)</span>
+<span class="default_value">Literal(this=micros, is_string=True)</span>
</div>
@@ -78362,7 +83036,7 @@ array<int> != array<float>.</p>
<div id="UnixToTime.NANOS" class="classattr">
<div class="attr variable">
<span class="name">NANOS</span> =
-<span class="default_value">(LITERAL this: nanos, is_string: True)</span>
+<span class="default_value">Literal(this=nanos, is_string=True)</span>
</div>
@@ -78408,6 +83082,7 @@ array<int> != array<float>.</p>
<dd id="UnixToTime.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="UnixToTime.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="UnixToTime.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="UnixToTime.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="UnixToTime.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="UnixToTime.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="UnixToTime.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -78428,6 +83103,7 @@ array<int> != array<float>.</p>
<dd id="UnixToTime.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="UnixToTime.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="UnixToTime.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="UnixToTime.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="UnixToTime.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="UnixToTime.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="UnixToTime.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -78449,6 +83125,7 @@ array<int> != array<float>.</p>
<dd id="UnixToTime.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="UnixToTime.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="UnixToTime.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="UnixToTime.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -78473,8 +83150,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#UnixToTimeStr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="UnixToTimeStr-5232"><a href="#UnixToTimeStr-5232"><span class="linenos">5232</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-5233"><a href="#UnixToTimeStr-5233"><span class="linenos">5233</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="UnixToTimeStr-5344"><a href="#UnixToTimeStr-5344"><span class="linenos">5344</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-5345"><a href="#UnixToTimeStr-5345"><span class="linenos">5345</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -78518,6 +83195,7 @@ array<int> != array<float>.</p>
<dd id="UnixToTimeStr.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="UnixToTimeStr.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="UnixToTimeStr.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="UnixToTimeStr.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="UnixToTimeStr.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="UnixToTimeStr.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="UnixToTimeStr.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -78538,6 +83216,7 @@ array<int> != array<float>.</p>
<dd id="UnixToTimeStr.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="UnixToTimeStr.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="UnixToTimeStr.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="UnixToTimeStr.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="UnixToTimeStr.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="UnixToTimeStr.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="UnixToTimeStr.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -78559,6 +83238,7 @@ array<int> != array<float>.</p>
<dd id="UnixToTimeStr.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="UnixToTimeStr.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="UnixToTimeStr.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="UnixToTimeStr.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -78583,28 +83263,29 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TimestampFromParts"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimestampFromParts-5236"><a href="#TimestampFromParts-5236"><span class="linenos">5236</span></a><span class="k">class</span> <span class="nc">TimestampFromParts</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="TimestampFromParts-5237"><a href="#TimestampFromParts-5237"><span class="linenos">5237</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Constructs a timestamp given its constituent parts.&quot;&quot;&quot;</span>
-</span><span id="TimestampFromParts-5238"><a href="#TimestampFromParts-5238"><span class="linenos">5238</span></a>
-</span><span id="TimestampFromParts-5239"><a href="#TimestampFromParts-5239"><span class="linenos">5239</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="TimestampFromParts-5240"><a href="#TimestampFromParts-5240"><span class="linenos">5240</span></a> <span class="s2">&quot;year&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="TimestampFromParts-5241"><a href="#TimestampFromParts-5241"><span class="linenos">5241</span></a> <span class="s2">&quot;month&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="TimestampFromParts-5242"><a href="#TimestampFromParts-5242"><span class="linenos">5242</span></a> <span class="s2">&quot;day&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="TimestampFromParts-5243"><a href="#TimestampFromParts-5243"><span class="linenos">5243</span></a> <span class="s2">&quot;hour&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="TimestampFromParts-5244"><a href="#TimestampFromParts-5244"><span class="linenos">5244</span></a> <span class="s2">&quot;min&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="TimestampFromParts-5245"><a href="#TimestampFromParts-5245"><span class="linenos">5245</span></a> <span class="s2">&quot;sec&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="TimestampFromParts-5246"><a href="#TimestampFromParts-5246"><span class="linenos">5246</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TimestampFromParts-5348"><a href="#TimestampFromParts-5348"><span class="linenos">5348</span></a><span class="k">class</span> <span class="nc">TimestampFromParts</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="TimestampFromParts-5349"><a href="#TimestampFromParts-5349"><span class="linenos">5349</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;TIMESTAMP_FROM_PARTS&quot;</span><span class="p">,</span> <span class="s2">&quot;TIMESTAMPFROMPARTS&quot;</span><span class="p">]</span>
+</span><span id="TimestampFromParts-5350"><a href="#TimestampFromParts-5350"><span class="linenos">5350</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="TimestampFromParts-5351"><a href="#TimestampFromParts-5351"><span class="linenos">5351</span></a> <span class="s2">&quot;year&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="TimestampFromParts-5352"><a href="#TimestampFromParts-5352"><span class="linenos">5352</span></a> <span class="s2">&quot;month&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="TimestampFromParts-5353"><a href="#TimestampFromParts-5353"><span class="linenos">5353</span></a> <span class="s2">&quot;day&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="TimestampFromParts-5354"><a href="#TimestampFromParts-5354"><span class="linenos">5354</span></a> <span class="s2">&quot;hour&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="TimestampFromParts-5355"><a href="#TimestampFromParts-5355"><span class="linenos">5355</span></a> <span class="s2">&quot;min&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="TimestampFromParts-5356"><a href="#TimestampFromParts-5356"><span class="linenos">5356</span></a> <span class="s2">&quot;sec&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="TimestampFromParts-5357"><a href="#TimestampFromParts-5357"><span class="linenos">5357</span></a> <span class="s2">&quot;nano&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="TimestampFromParts-5358"><a href="#TimestampFromParts-5358"><span class="linenos">5358</span></a> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="TimestampFromParts-5359"><a href="#TimestampFromParts-5359"><span class="linenos">5359</span></a> <span class="s2">&quot;milli&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="TimestampFromParts-5360"><a href="#TimestampFromParts-5360"><span class="linenos">5360</span></a> <span class="p">}</span>
</span></pre></div>
- <div class="docstring"><p>Constructs a timestamp given its constituent parts.</p>
-</div>
-
+
<div id="TimestampFromParts.arg_types" class="classattr">
<div class="attr variable">
<span class="name">arg_types</span> =
-<span class="default_value">{&#39;year&#39;: True, &#39;month&#39;: True, &#39;day&#39;: True, &#39;hour&#39;: True, &#39;min&#39;: True, &#39;sec&#39;: True}</span>
+<input id="TimestampFromParts.arg_types-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+ <label class="view-value-button pdoc-button" for="TimestampFromParts.arg_types-view-value"></label><span class="default_value">{&#39;year&#39;: True, &#39;month&#39;: True, &#39;day&#39;: True, &#39;hour&#39;: True, &#39;min&#39;: True, &#39;sec&#39;: True, &#39;nano&#39;: False, &#39;zone&#39;: False, &#39;milli&#39;: False}</span>
</div>
@@ -78650,6 +83331,7 @@ array<int> != array<float>.</p>
<dd id="TimestampFromParts.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="TimestampFromParts.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="TimestampFromParts.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="TimestampFromParts.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="TimestampFromParts.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="TimestampFromParts.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="TimestampFromParts.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -78670,6 +83352,7 @@ array<int> != array<float>.</p>
<dd id="TimestampFromParts.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="TimestampFromParts.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="TimestampFromParts.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="TimestampFromParts.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="TimestampFromParts.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="TimestampFromParts.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="TimestampFromParts.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -78691,6 +83374,7 @@ array<int> != array<float>.</p>
<dd id="TimestampFromParts.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="TimestampFromParts.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="TimestampFromParts.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="TimestampFromParts.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -78715,8 +83399,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Upper"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Upper-5249"><a href="#Upper-5249"><span class="linenos">5249</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-5250"><a href="#Upper-5250"><span class="linenos">5250</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-5363"><a href="#Upper-5363"><span class="linenos">5363</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-5364"><a href="#Upper-5364"><span class="linenos">5364</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>
@@ -78760,6 +83444,7 @@ array<int> != array<float>.</p>
<dd id="Upper.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Upper.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Upper.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Upper.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Upper.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Upper.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Upper.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -78780,6 +83465,7 @@ array<int> != array<float>.</p>
<dd id="Upper.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Upper.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Upper.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Upper.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Upper.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Upper.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Upper.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -78801,6 +83487,7 @@ array<int> != array<float>.</p>
<dd id="Upper.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Upper.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Upper.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Upper.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -78825,8 +83512,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Variance"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Variance-5253"><a href="#Variance-5253"><span class="linenos">5253</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-5254"><a href="#Variance-5254"><span class="linenos">5254</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-5367"><a href="#Variance-5367"><span class="linenos">5367</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-5368"><a href="#Variance-5368"><span class="linenos">5368</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>
@@ -78870,6 +83557,7 @@ array<int> != array<float>.</p>
<dd id="Variance.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Variance.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Variance.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Variance.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Variance.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Variance.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Variance.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -78890,6 +83578,7 @@ array<int> != array<float>.</p>
<dd id="Variance.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Variance.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Variance.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Variance.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Variance.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Variance.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Variance.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -78911,6 +83600,7 @@ array<int> != array<float>.</p>
<dd id="Variance.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Variance.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Variance.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Variance.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -78935,8 +83625,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#VariancePop"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="VariancePop-5257"><a href="#VariancePop-5257"><span class="linenos">5257</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-5258"><a href="#VariancePop-5258"><span class="linenos">5258</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-5371"><a href="#VariancePop-5371"><span class="linenos">5371</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-5372"><a href="#VariancePop-5372"><span class="linenos">5372</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>
@@ -78980,6 +83670,7 @@ array<int> != array<float>.</p>
<dd id="VariancePop.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="VariancePop.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="VariancePop.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="VariancePop.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="VariancePop.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="VariancePop.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="VariancePop.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -79000,6 +83691,7 @@ array<int> != array<float>.</p>
<dd id="VariancePop.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="VariancePop.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="VariancePop.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="VariancePop.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="VariancePop.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="VariancePop.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="VariancePop.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -79021,6 +83713,7 @@ array<int> != array<float>.</p>
<dd id="VariancePop.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="VariancePop.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="VariancePop.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="VariancePop.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -79045,8 +83738,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Week"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Week-5261"><a href="#Week-5261"><span class="linenos">5261</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-5262"><a href="#Week-5262"><span class="linenos">5262</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5375"><a href="#Week-5375"><span class="linenos">5375</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-5376"><a href="#Week-5376"><span class="linenos">5376</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;mode&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -79101,6 +83794,7 @@ array<int> != array<float>.</p>
<dd id="Week.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Week.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Week.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Week.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Week.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Week.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Week.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -79121,6 +83815,7 @@ array<int> != array<float>.</p>
<dd id="Week.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Week.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Week.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Week.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Week.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Week.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Week.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -79142,6 +83837,7 @@ array<int> != array<float>.</p>
<dd id="Week.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Week.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Week.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Week.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -79166,8 +83862,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#XMLTable"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="XMLTable-5265"><a href="#XMLTable-5265"><span class="linenos">5265</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-5266"><a href="#XMLTable-5266"><span class="linenos">5266</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5379"><a href="#XMLTable-5379"><span class="linenos">5379</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-5380"><a href="#XMLTable-5380"><span class="linenos">5380</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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>
@@ -79222,6 +83918,7 @@ array<int> != array<float>.</p>
<dd id="XMLTable.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="XMLTable.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="XMLTable.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="XMLTable.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="XMLTable.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="XMLTable.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="XMLTable.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -79242,6 +83939,7 @@ array<int> != array<float>.</p>
<dd id="XMLTable.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="XMLTable.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="XMLTable.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="XMLTable.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="XMLTable.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="XMLTable.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="XMLTable.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -79263,6 +83961,7 @@ array<int> != array<float>.</p>
<dd id="XMLTable.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="XMLTable.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="XMLTable.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="XMLTable.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -79287,8 +83986,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Year"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Year-5269"><a href="#Year-5269"><span class="linenos">5269</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-5270"><a href="#Year-5270"><span class="linenos">5270</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Year-5383"><a href="#Year-5383"><span class="linenos">5383</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-5384"><a href="#Year-5384"><span class="linenos">5384</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -79332,6 +84031,7 @@ array<int> != array<float>.</p>
<dd id="Year.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Year.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Year.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Year.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Year.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Year.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Year.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -79352,6 +84052,7 @@ array<int> != array<float>.</p>
<dd id="Year.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Year.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Year.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Year.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Year.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Year.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Year.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -79373,6 +84074,7 @@ array<int> != array<float>.</p>
<dd id="Year.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Year.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Year.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Year.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -79397,8 +84099,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Use"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Use-5273"><a href="#Use-5273"><span class="linenos">5273</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-5274"><a href="#Use-5274"><span class="linenos">5274</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">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-5387"><a href="#Use-5387"><span class="linenos">5387</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-5388"><a href="#Use-5388"><span class="linenos">5388</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -79453,6 +84155,7 @@ array<int> != array<float>.</p>
<dd id="Use.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Use.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Use.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Use.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Use.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Use.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Use.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -79473,6 +84176,7 @@ array<int> != array<float>.</p>
<dd id="Use.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Use.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Use.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Use.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Use.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Use.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Use.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -79494,6 +84198,7 @@ array<int> != array<float>.</p>
<dd id="Use.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Use.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Use.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Use.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -79510,8 +84215,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Merge"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Merge-5277"><a href="#Merge-5277"><span class="linenos">5277</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-5278"><a href="#Merge-5278"><span class="linenos">5278</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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 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="Merge-5391"><a href="#Merge-5391"><span class="linenos">5391</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-5392"><a href="#Merge-5392"><span class="linenos">5392</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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 class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -79566,6 +84271,7 @@ array<int> != array<float>.</p>
<dd id="Merge.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Merge.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Merge.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Merge.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="Merge.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="Merge.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Merge.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -79586,6 +84292,7 @@ array<int> != array<float>.</p>
<dd id="Merge.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Merge.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Merge.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Merge.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="Merge.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Merge.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Merge.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -79607,6 +84314,7 @@ array<int> != array<float>.</p>
<dd id="Merge.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="Merge.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="Merge.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Merge.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
</dl>
@@ -79623,8 +84331,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#When"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="When-5281"><a href="#When-5281"><span class="linenos">5281</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-5282"><a href="#When-5282"><span class="linenos">5282</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-5395"><a href="#When-5395"><span class="linenos">5395</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-5396"><a href="#When-5396"><span class="linenos">5396</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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>
@@ -79679,6 +84387,7 @@ array<int> != array<float>.</p>
<dd id="When.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="When.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="When.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="When.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="When.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="When.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="When.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -79699,6 +84408,7 @@ array<int> != array<float>.</p>
<dd id="When.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="When.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="When.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="When.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="When.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="When.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="When.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -79720,6 +84430,7 @@ array<int> != array<float>.</p>
<dd id="When.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="When.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="When.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="When.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -79744,8 +84455,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#NextValueFor"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="NextValueFor-5287"><a href="#NextValueFor-5287"><span class="linenos">5287</span></a><span class="k">class</span> <span class="nc">NextValueFor</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="NextValueFor-5288"><a href="#NextValueFor-5288"><span class="linenos">5288</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;order&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="NextValueFor-5401"><a href="#NextValueFor-5401"><span class="linenos">5401</span></a><span class="k">class</span> <span class="nc">NextValueFor</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="NextValueFor-5402"><a href="#NextValueFor-5402"><span class="linenos">5402</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;order&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -79800,6 +84511,7 @@ array<int> != array<float>.</p>
<dd id="NextValueFor.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="NextValueFor.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="NextValueFor.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="NextValueFor.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
<dd id="NextValueFor.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
<dd id="NextValueFor.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="NextValueFor.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
@@ -79820,6 +84532,7 @@ array<int> != array<float>.</p>
<dd id="NextValueFor.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="NextValueFor.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="NextValueFor.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="NextValueFor.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
<dd id="NextValueFor.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="NextValueFor.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="NextValueFor.replace" class="function"><a href="#Expression.replace">replace</a></dd>
@@ -79841,6 +84554,7 @@ array<int> != array<float>.</p>
<dd id="NextValueFor.neq" class="function"><a href="#Expression.neq">neq</a></dd>
<dd id="NextValueFor.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
<dd id="NextValueFor.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="NextValueFor.desc" class="function"><a href="#Expression.desc">desc</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
@@ -79858,7 +84572,7 @@ array<int> != array<float>.</p>
<div class="attr variable">
<span class="name">ALL_FUNCTIONS</span> =
<input id="ALL_FUNCTIONS-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
- <label class="view-value-button pdoc-button" for="ALL_FUNCTIONS-view-value"></label><span class="default_value">[&lt;class &#39;<a href="#Abs">Abs</a>&#39;&gt;, &lt;class &#39;<a href="#AnyValue">AnyValue</a>&#39;&gt;, &lt;class &#39;<a href="#ApproxDistinct">ApproxDistinct</a>&#39;&gt;, &lt;class &#39;<a href="#ApproxQuantile">ApproxQuantile</a>&#39;&gt;, &lt;class &#39;<a href="#ApproxTopK">ApproxTopK</a>&#39;&gt;, &lt;class &#39;<a href="#ArgMax">ArgMax</a>&#39;&gt;, &lt;class &#39;<a href="#ArgMin">ArgMin</a>&#39;&gt;, &lt;class &#39;<a href="#Array">Array</a>&#39;&gt;, &lt;class &#39;<a href="#ArrayAgg">ArrayAgg</a>&#39;&gt;, &lt;class &#39;<a href="#ArrayAll">ArrayAll</a>&#39;&gt;, &lt;class &#39;<a href="#ArrayAny">ArrayAny</a>&#39;&gt;, &lt;class &#39;<a href="#ArrayConcat">ArrayConcat</a>&#39;&gt;, &lt;class &#39;<a href="#ArrayContains">ArrayContains</a>&#39;&gt;, &lt;class &#39;<a href="#ArrayFilter">ArrayFilter</a>&#39;&gt;, &lt;class &#39;<a href="#ArrayJoin">ArrayJoin</a>&#39;&gt;, &lt;class &#39;<a href="#ArraySize">ArraySize</a>&#39;&gt;, &lt;class &#39;<a href="#ArraySort">ArraySort</a>&#39;&gt;, &lt;class &#39;<a href="#ArraySum">ArraySum</a>&#39;&gt;, &lt;class &#39;<a href="#ArrayUnionAgg">ArrayUnionAgg</a>&#39;&gt;, &lt;class &#39;<a href="#ArrayUniqueAgg">ArrayUniqueAgg</a>&#39;&gt;, &lt;class &#39;<a href="#Avg">Avg</a>&#39;&gt;, &lt;class &#39;<a href="#Case">Case</a>&#39;&gt;, &lt;class &#39;<a href="#Cast">Cast</a>&#39;&gt;, &lt;class &#39;<a href="#CastToStrType">CastToStrType</a>&#39;&gt;, &lt;class &#39;<a href="#Ceil">Ceil</a>&#39;&gt;, &lt;class &#39;<a href="#Chr">Chr</a>&#39;&gt;, &lt;class &#39;<a href="#Coalesce">Coalesce</a>&#39;&gt;, &lt;class &#39;<a href="#Collate">Collate</a>&#39;&gt;, &lt;class &#39;<a href="#Concat">Concat</a>&#39;&gt;, &lt;class &#39;<a href="#ConcatWs">ConcatWs</a>&#39;&gt;, &lt;class &#39;<a href="#Count">Count</a>&#39;&gt;, &lt;class &#39;<a href="#CountIf">CountIf</a>&#39;&gt;, &lt;class &#39;<a href="#CurrentDate">CurrentDate</a>&#39;&gt;, &lt;class &#39;<a href="#CurrentDatetime">CurrentDatetime</a>&#39;&gt;, &lt;class &#39;<a href="#CurrentTime">CurrentTime</a>&#39;&gt;, &lt;class &#39;<a href="#CurrentTimestamp">CurrentTimestamp</a>&#39;&gt;, &lt;class &#39;<a href="#CurrentUser">CurrentUser</a>&#39;&gt;, &lt;class &#39;<a href="#Date">Date</a>&#39;&gt;, &lt;class &#39;<a href="#DateAdd">DateAdd</a>&#39;&gt;, &lt;class &#39;<a href="#DateDiff">DateDiff</a>&#39;&gt;, &lt;class &#39;<a href="#DateFromParts">DateFromParts</a>&#39;&gt;, &lt;class &#39;<a href="#DateStrToDate">DateStrToDate</a>&#39;&gt;, &lt;class &#39;<a href="#DateSub">DateSub</a>&#39;&gt;, &lt;class &#39;<a href="#DateToDateStr">DateToDateStr</a>&#39;&gt;, &lt;class &#39;<a href="#DateToDi">DateToDi</a>&#39;&gt;, &lt;class &#39;<a href="#DateTrunc">DateTrunc</a>&#39;&gt;, &lt;class &#39;<a href="#DatetimeAdd">DatetimeAdd</a>&#39;&gt;, &lt;class &#39;<a href="#DatetimeDiff">DatetimeDiff</a>&#39;&gt;, &lt;class &#39;<a href="#DatetimeSub">DatetimeSub</a>&#39;&gt;, &lt;class &#39;<a href="#DatetimeTrunc">DatetimeTrunc</a>&#39;&gt;, &lt;class &#39;<a href="#Day">Day</a>&#39;&gt;, &lt;class &#39;<a href="#DayOfMonth">DayOfMonth</a>&#39;&gt;, &lt;class &#39;<a href="#DayOfWeek">DayOfWeek</a>&#39;&gt;, &lt;class &#39;<a href="#DayOfYear">DayOfYear</a>&#39;&gt;, &lt;class &#39;<a href="#Decode">Decode</a>&#39;&gt;, &lt;class &#39;<a href="#DiToDate">DiToDate</a>&#39;&gt;, &lt;class &#39;<a href="#Encode">Encode</a>&#39;&gt;, &lt;class &#39;<a href="#Exp">Exp</a>&#39;&gt;, &lt;class &#39;<a href="#Explode">Explode</a>&#39;&gt;, &lt;class &#39;<a href="#ExplodeOuter">ExplodeOuter</a>&#39;&gt;, &lt;class &#39;<a href="#Extract">Extract</a>&#39;&gt;, &lt;class &#39;<a href="#First">First</a>&#39;&gt;, &lt;class &#39;<a href="#Flatten">Flatten</a>&#39;&gt;, &lt;class &#39;<a href="#Floor">Floor</a>&#39;&gt;, &lt;class &#39;<a href="#FromBase">FromBase</a>&#39;&gt;, &lt;class &#39;<a href="#FromBase64">FromBase64</a>&#39;&gt;, &lt;class &#39;<a href="#GenerateSeries">GenerateSeries</a>&#39;&gt;, &lt;class &#39;<a href="#Greatest">Greatest</a>&#39;&gt;, &lt;class &#39;<a href="#GroupConcat">GroupConcat</a>&#39;&gt;, &lt;class &#39;<a href="#Hex">Hex</a>&#39;&gt;, &lt;class &#39;<a href="#Hll">Hll</a>&#39;&gt;, &lt;class &#39;<a href="#If">If</a>&#39;&gt;, &lt;class &#39;<a href="#Initcap">Initcap</a>&#39;&gt;, &lt;class &#39;<a href="#IsInf">IsInf</a>&#39;&gt;, &lt;class &#39;<a href="#IsNan">IsNan</a>&#39;&gt;, &lt;class &#39;<a href="#JSONArray">JSONArray</a>&#39;&gt;, &lt;class &#39;<a href="#JSONArrayAgg">JSONArrayAgg</a>&#39;&gt;, &lt;class &#39;<a href="#JSONArrayContains">JSONArrayContains</a>&#39;&gt;, &lt;class &#39;<a href="#JSONBExtract">JSONBExtract</a>&#39;&gt;, &lt;class &#39;<a href="#JSONBExtractScalar">JSONBExtractScalar</a>&#39;&gt;, &lt;class &#39;<a href="#JSONExtract">JSONExtract</a>&#39;&gt;, &lt;class &#39;<a href="#JSONExtractScalar">JSONExtractScalar</a>&#39;&gt;, &lt;class &#39;<a href="#JSONFormat">JSONFormat</a>&#39;&gt;, &lt;class &#39;<a href="#JSONObject">JSONObject</a>&#39;&gt;, &lt;class &#39;<a href="#JSONTable">JSONTable</a>&#39;&gt;, &lt;class &#39;<a href="#Last">Last</a>&#39;&gt;, &lt;class &#39;<a href="#LastDateOfMonth">LastDateOfMonth</a>&#39;&gt;, &lt;class &#39;<a href="#Least">Least</a>&#39;&gt;, &lt;class &#39;<a href="#Left">Left</a>&#39;&gt;, &lt;class &#39;<a href="#Length">Length</a>&#39;&gt;, &lt;class &#39;<a href="#Levenshtein">Levenshtein</a>&#39;&gt;, &lt;class &#39;<a href="#Ln">Ln</a>&#39;&gt;, &lt;class &#39;<a href="#Log">Log</a>&#39;&gt;, &lt;class &#39;<a href="#Log10">Log10</a>&#39;&gt;, &lt;class &#39;<a href="#Log2">Log2</a>&#39;&gt;, &lt;class &#39;<a href="#LogicalAnd">LogicalAnd</a>&#39;&gt;, &lt;class &#39;<a href="#LogicalOr">LogicalOr</a>&#39;&gt;, &lt;class &#39;<a href="#Lower">Lower</a>&#39;&gt;, &lt;class &#39;<a href="#MD5">MD5</a>&#39;&gt;, &lt;class &#39;<a href="#MD5Digest">MD5Digest</a>&#39;&gt;, &lt;class &#39;<a href="#Map">Map</a>&#39;&gt;, &lt;class &#39;<a href="#MapFromEntries">MapFromEntries</a>&#39;&gt;, &lt;class &#39;<a href="#MatchAgainst">MatchAgainst</a>&#39;&gt;, &lt;class &#39;<a href="#Max">Max</a>&#39;&gt;, &lt;class &#39;<a href="#Min">Min</a>&#39;&gt;, &lt;class &#39;<a href="#Month">Month</a>&#39;&gt;, &lt;class &#39;<a href="#MonthsBetween">MonthsBetween</a>&#39;&gt;, &lt;class &#39;<a href="#NextValueFor">NextValueFor</a>&#39;&gt;, &lt;class &#39;<a href="#Nullif">Nullif</a>&#39;&gt;, &lt;class &#39;<a href="#NumberToStr">NumberToStr</a>&#39;&gt;, &lt;class &#39;<a href="#Nvl2">Nvl2</a>&#39;&gt;, &lt;class &#39;<a href="#OpenJSON">OpenJSON</a>&#39;&gt;, &lt;class &#39;<a href="#ParameterizedAgg">ParameterizedAgg</a>&#39;&gt;, &lt;class &#39;<a href="#ParseJSON">ParseJSON</a>&#39;&gt;, &lt;class &#39;<a href="#PercentileCont">PercentileCont</a>&#39;&gt;, &lt;class &#39;<a href="#PercentileDisc">PercentileDisc</a>&#39;&gt;, &lt;class &#39;<a href="#Posexplode">Posexplode</a>&#39;&gt;, &lt;class &#39;<a href="#PosexplodeOuter">PosexplodeOuter</a>&#39;&gt;, &lt;class &#39;<a href="#Pow">Pow</a>&#39;&gt;, &lt;class &#39;<a href="#Predict">Predict</a>&#39;&gt;, &lt;class &#39;<a href="#Quantile">Quantile</a>&#39;&gt;, &lt;class &#39;<a href="#RangeN">RangeN</a>&#39;&gt;, &lt;class &#39;<a href="#ReadCSV">ReadCSV</a>&#39;&gt;, &lt;class &#39;<a href="#Reduce">Reduce</a>&#39;&gt;, &lt;class &#39;<a href="#RegexpExtract">RegexpExtract</a>&#39;&gt;, &lt;class &#39;<a href="#RegexpILike">RegexpILike</a>&#39;&gt;, &lt;class &#39;<a href="#RegexpLike">RegexpLike</a>&#39;&gt;, &lt;class &#39;<a href="#RegexpReplace">RegexpReplace</a>&#39;&gt;, &lt;class &#39;<a href="#RegexpSplit">RegexpSplit</a>&#39;&gt;, &lt;class &#39;<a href="#Repeat">Repeat</a>&#39;&gt;, &lt;class &#39;<a href="#Right">Right</a>&#39;&gt;, &lt;class &#39;<a href="#Round">Round</a>&#39;&gt;, &lt;class &#39;<a href="#RowNumber">RowNumber</a>&#39;&gt;, &lt;class &#39;<a href="#SHA">SHA</a>&#39;&gt;, &lt;class &#39;<a href="#SHA2">SHA2</a>&#39;&gt;, &lt;class &#39;<a href="#SafeDivide">SafeDivide</a>&#39;&gt;, &lt;class &#39;<a href="#SortArray">SortArray</a>&#39;&gt;, &lt;class &#39;<a href="#Split">Split</a>&#39;&gt;, &lt;class &#39;<a href="#Sqrt">Sqrt</a>&#39;&gt;, &lt;class &#39;<a href="#StandardHash">StandardHash</a>&#39;&gt;, &lt;class &#39;<a href="#StarMap">StarMap</a>&#39;&gt;, &lt;class &#39;<a href="#StartsWith">StartsWith</a>&#39;&gt;, &lt;class &#39;<a href="#Stddev">Stddev</a>&#39;&gt;, &lt;class &#39;<a href="#StddevPop">StddevPop</a>&#39;&gt;, &lt;class &#39;<a href="#StddevSamp">StddevSamp</a>&#39;&gt;, &lt;class &#39;<a href="#StrPosition">StrPosition</a>&#39;&gt;, &lt;class &#39;<a href="#StrToDate">StrToDate</a>&#39;&gt;, &lt;class &#39;<a href="#StrToMap">StrToMap</a>&#39;&gt;, &lt;class &#39;<a href="#StrToTime">StrToTime</a>&#39;&gt;, &lt;class &#39;<a href="#StrToUnix">StrToUnix</a>&#39;&gt;, &lt;class &#39;<a href="#Struct">Struct</a>&#39;&gt;, &lt;class &#39;<a href="#StructExtract">StructExtract</a>&#39;&gt;, &lt;class &#39;<a href="#Stuff">Stuff</a>&#39;&gt;, &lt;class &#39;<a href="#Substring">Substring</a>&#39;&gt;, &lt;class &#39;<a href="#Sum">Sum</a>&#39;&gt;, &lt;class &#39;<a href="#TimeAdd">TimeAdd</a>&#39;&gt;, &lt;class &#39;<a href="#TimeDiff">TimeDiff</a>&#39;&gt;, &lt;class &#39;<a href="#TimeStrToDate">TimeStrToDate</a>&#39;&gt;, &lt;class &#39;<a href="#TimeStrToTime">TimeStrToTime</a>&#39;&gt;, &lt;class &#39;<a href="#TimeStrToUnix">TimeStrToUnix</a>&#39;&gt;, &lt;class &#39;<a href="#TimeSub">TimeSub</a>&#39;&gt;, &lt;class &#39;<a href="#TimeToStr">TimeToStr</a>&#39;&gt;, &lt;class &#39;<a href="#TimeToTimeStr">TimeToTimeStr</a>&#39;&gt;, &lt;class &#39;<a href="#TimeToUnix">TimeToUnix</a>&#39;&gt;, &lt;class &#39;<a href="#TimeTrunc">TimeTrunc</a>&#39;&gt;, &lt;class &#39;<a href="#Timestamp">Timestamp</a>&#39;&gt;, &lt;class &#39;<a href="#TimestampAdd">TimestampAdd</a>&#39;&gt;, &lt;class &#39;<a href="#TimestampDiff">TimestampDiff</a>&#39;&gt;, &lt;class &#39;<a href="#TimestampFromParts">TimestampFromParts</a>&#39;&gt;, &lt;class &#39;<a href="#TimestampSub">TimestampSub</a>&#39;&gt;, &lt;class &#39;<a href="#TimestampTrunc">TimestampTrunc</a>&#39;&gt;, &lt;class &#39;<a href="#ToBase64">ToBase64</a>&#39;&gt;, &lt;class &#39;<a href="#ToChar">ToChar</a>&#39;&gt;, &lt;class &#39;<a href="#ToDays">ToDays</a>&#39;&gt;, &lt;class &#39;<a href="#Transform">Transform</a>&#39;&gt;, &lt;class &#39;<a href="#Trim">Trim</a>&#39;&gt;, &lt;class &#39;<a href="#TryCast">TryCast</a>&#39;&gt;, &lt;class &#39;<a href="#TsOrDiToDi">TsOrDiToDi</a>&#39;&gt;, &lt;class &#39;<a href="#TsOrDsAdd">TsOrDsAdd</a>&#39;&gt;, &lt;class &#39;<a href="#TsOrDsDiff">TsOrDsDiff</a>&#39;&gt;, &lt;class &#39;<a href="#TsOrDsToDate">TsOrDsToDate</a>&#39;&gt;, &lt;class &#39;<a href="#TsOrDsToDateStr">TsOrDsToDateStr</a>&#39;&gt;, &lt;class &#39;<a href="#Unhex">Unhex</a>&#39;&gt;, &lt;class &#39;<a href="#UnixToStr">UnixToStr</a>&#39;&gt;, &lt;class &#39;<a href="#UnixToTime">UnixToTime</a>&#39;&gt;, &lt;class &#39;<a href="#UnixToTimeStr">UnixToTimeStr</a>&#39;&gt;, &lt;class &#39;<a href="#Upper">Upper</a>&#39;&gt;, &lt;class &#39;<a href="#VarMap">VarMap</a>&#39;&gt;, &lt;class &#39;<a href="#Variance">Variance</a>&#39;&gt;, &lt;class &#39;<a href="#VariancePop">VariancePop</a>&#39;&gt;, &lt;class &#39;<a href="#Week">Week</a>&#39;&gt;, &lt;class &#39;<a href="#WeekOfYear">WeekOfYear</a>&#39;&gt;, &lt;class &#39;<a href="#When">When</a>&#39;&gt;, &lt;class &#39;<a href="#XMLTable">XMLTable</a>&#39;&gt;, &lt;class &#39;<a href="#Xor">Xor</a>&#39;&gt;, &lt;class &#39;<a href="#Year">Year</a>&#39;&gt;]</span>
+ <label class="view-value-button pdoc-button" for="ALL_FUNCTIONS-view-value"></label><span class="default_value">[&lt;class &#39;<a href="#Abs">Abs</a>&#39;&gt;, &lt;class &#39;<a href="#AnonymousAggFunc">AnonymousAggFunc</a>&#39;&gt;, &lt;class &#39;<a href="#AnyValue">AnyValue</a>&#39;&gt;, &lt;class &#39;<a href="#ApproxDistinct">ApproxDistinct</a>&#39;&gt;, &lt;class &#39;<a href="#ApproxQuantile">ApproxQuantile</a>&#39;&gt;, &lt;class &#39;<a href="#ApproxTopK">ApproxTopK</a>&#39;&gt;, &lt;class &#39;<a href="#ArgMax">ArgMax</a>&#39;&gt;, &lt;class &#39;<a href="#ArgMin">ArgMin</a>&#39;&gt;, &lt;class &#39;<a href="#Array">Array</a>&#39;&gt;, &lt;class &#39;<a href="#ArrayAgg">ArrayAgg</a>&#39;&gt;, &lt;class &#39;<a href="#ArrayAll">ArrayAll</a>&#39;&gt;, &lt;class &#39;<a href="#ArrayAny">ArrayAny</a>&#39;&gt;, &lt;class &#39;<a href="#ArrayConcat">ArrayConcat</a>&#39;&gt;, &lt;class &#39;<a href="#ArrayContains">ArrayContains</a>&#39;&gt;, &lt;class &#39;<a href="#ArrayFilter">ArrayFilter</a>&#39;&gt;, &lt;class &#39;<a href="#ArrayJoin">ArrayJoin</a>&#39;&gt;, &lt;class &#39;<a href="#ArraySize">ArraySize</a>&#39;&gt;, &lt;class &#39;<a href="#ArraySort">ArraySort</a>&#39;&gt;, &lt;class &#39;<a href="#ArraySum">ArraySum</a>&#39;&gt;, &lt;class &#39;<a href="#ArrayUnionAgg">ArrayUnionAgg</a>&#39;&gt;, &lt;class &#39;<a href="#ArrayUniqueAgg">ArrayUniqueAgg</a>&#39;&gt;, &lt;class &#39;<a href="#Avg">Avg</a>&#39;&gt;, &lt;class &#39;<a href="#Case">Case</a>&#39;&gt;, &lt;class &#39;<a href="#Cast">Cast</a>&#39;&gt;, &lt;class &#39;<a href="#CastToStrType">CastToStrType</a>&#39;&gt;, &lt;class &#39;<a href="#Ceil">Ceil</a>&#39;&gt;, &lt;class &#39;<a href="#Chr">Chr</a>&#39;&gt;, &lt;class &#39;<a href="#Coalesce">Coalesce</a>&#39;&gt;, &lt;class &#39;<a href="#Collate">Collate</a>&#39;&gt;, &lt;class &#39;<a href="#CombinedAggFunc">CombinedAggFunc</a>&#39;&gt;, &lt;class &#39;<a href="#CombinedParameterizedAgg">CombinedParameterizedAgg</a>&#39;&gt;, &lt;class &#39;<a href="#Concat">Concat</a>&#39;&gt;, &lt;class &#39;<a href="#ConcatWs">ConcatWs</a>&#39;&gt;, &lt;class &#39;<a href="#Count">Count</a>&#39;&gt;, &lt;class &#39;<a href="#CountIf">CountIf</a>&#39;&gt;, &lt;class &#39;<a href="#CurrentDate">CurrentDate</a>&#39;&gt;, &lt;class &#39;<a href="#CurrentDatetime">CurrentDatetime</a>&#39;&gt;, &lt;class &#39;<a href="#CurrentTime">CurrentTime</a>&#39;&gt;, &lt;class &#39;<a href="#CurrentTimestamp">CurrentTimestamp</a>&#39;&gt;, &lt;class &#39;<a href="#CurrentUser">CurrentUser</a>&#39;&gt;, &lt;class &#39;<a href="#Date">Date</a>&#39;&gt;, &lt;class &#39;<a href="#DateAdd">DateAdd</a>&#39;&gt;, &lt;class &#39;<a href="#DateDiff">DateDiff</a>&#39;&gt;, &lt;class &#39;<a href="#DateFromParts">DateFromParts</a>&#39;&gt;, &lt;class &#39;<a href="#DateStrToDate">DateStrToDate</a>&#39;&gt;, &lt;class &#39;<a href="#DateSub">DateSub</a>&#39;&gt;, &lt;class &#39;<a href="#DateToDateStr">DateToDateStr</a>&#39;&gt;, &lt;class &#39;<a href="#DateToDi">DateToDi</a>&#39;&gt;, &lt;class &#39;<a href="#DateTrunc">DateTrunc</a>&#39;&gt;, &lt;class &#39;<a href="#DatetimeAdd">DatetimeAdd</a>&#39;&gt;, &lt;class &#39;<a href="#DatetimeDiff">DatetimeDiff</a>&#39;&gt;, &lt;class &#39;<a href="#DatetimeSub">DatetimeSub</a>&#39;&gt;, &lt;class &#39;<a href="#DatetimeTrunc">DatetimeTrunc</a>&#39;&gt;, &lt;class &#39;<a href="#Day">Day</a>&#39;&gt;, &lt;class &#39;<a href="#DayOfMonth">DayOfMonth</a>&#39;&gt;, &lt;class &#39;<a href="#DayOfWeek">DayOfWeek</a>&#39;&gt;, &lt;class &#39;<a href="#DayOfYear">DayOfYear</a>&#39;&gt;, &lt;class &#39;<a href="#Decode">Decode</a>&#39;&gt;, &lt;class &#39;<a href="#DiToDate">DiToDate</a>&#39;&gt;, &lt;class &#39;<a href="#Encode">Encode</a>&#39;&gt;, &lt;class &#39;<a href="#Exp">Exp</a>&#39;&gt;, &lt;class &#39;<a href="#Explode">Explode</a>&#39;&gt;, &lt;class &#39;<a href="#ExplodeOuter">ExplodeOuter</a>&#39;&gt;, &lt;class &#39;<a href="#Extract">Extract</a>&#39;&gt;, &lt;class &#39;<a href="#First">First</a>&#39;&gt;, &lt;class &#39;<a href="#Flatten">Flatten</a>&#39;&gt;, &lt;class &#39;<a href="#Floor">Floor</a>&#39;&gt;, &lt;class &#39;<a href="#FromBase">FromBase</a>&#39;&gt;, &lt;class &#39;<a href="#FromBase64">FromBase64</a>&#39;&gt;, &lt;class &#39;<a href="#GenerateSeries">GenerateSeries</a>&#39;&gt;, &lt;class &#39;<a href="#GetPath">GetPath</a>&#39;&gt;, &lt;class &#39;<a href="#Greatest">Greatest</a>&#39;&gt;, &lt;class &#39;<a href="#GroupConcat">GroupConcat</a>&#39;&gt;, &lt;class &#39;<a href="#Hex">Hex</a>&#39;&gt;, &lt;class &#39;<a href="#Hll">Hll</a>&#39;&gt;, &lt;class &#39;<a href="#If">If</a>&#39;&gt;, &lt;class &#39;<a href="#Initcap">Initcap</a>&#39;&gt;, &lt;class &#39;<a href="#IsInf">IsInf</a>&#39;&gt;, &lt;class &#39;<a href="#IsNan">IsNan</a>&#39;&gt;, &lt;class &#39;<a href="#JSONArray">JSONArray</a>&#39;&gt;, &lt;class &#39;<a href="#JSONArrayAgg">JSONArrayAgg</a>&#39;&gt;, &lt;class &#39;<a href="#JSONArrayContains">JSONArrayContains</a>&#39;&gt;, &lt;class &#39;<a href="#JSONBExtract">JSONBExtract</a>&#39;&gt;, &lt;class &#39;<a href="#JSONBExtractScalar">JSONBExtractScalar</a>&#39;&gt;, &lt;class &#39;<a href="#JSONExtract">JSONExtract</a>&#39;&gt;, &lt;class &#39;<a href="#JSONExtractScalar">JSONExtractScalar</a>&#39;&gt;, &lt;class &#39;<a href="#JSONFormat">JSONFormat</a>&#39;&gt;, &lt;class &#39;<a href="#JSONObject">JSONObject</a>&#39;&gt;, &lt;class &#39;<a href="#JSONTable">JSONTable</a>&#39;&gt;, &lt;class &#39;<a href="#Last">Last</a>&#39;&gt;, &lt;class &#39;<a href="#LastDay">LastDay</a>&#39;&gt;, &lt;class &#39;<a href="#Least">Least</a>&#39;&gt;, &lt;class &#39;<a href="#Left">Left</a>&#39;&gt;, &lt;class &#39;<a href="#Length">Length</a>&#39;&gt;, &lt;class &#39;<a href="#Levenshtein">Levenshtein</a>&#39;&gt;, &lt;class &#39;<a href="#Ln">Ln</a>&#39;&gt;, &lt;class &#39;<a href="#Log">Log</a>&#39;&gt;, &lt;class &#39;<a href="#Log10">Log10</a>&#39;&gt;, &lt;class &#39;<a href="#Log2">Log2</a>&#39;&gt;, &lt;class &#39;<a href="#LogicalAnd">LogicalAnd</a>&#39;&gt;, &lt;class &#39;<a href="#LogicalOr">LogicalOr</a>&#39;&gt;, &lt;class &#39;<a href="#Lower">Lower</a>&#39;&gt;, &lt;class &#39;<a href="#MD5">MD5</a>&#39;&gt;, &lt;class &#39;<a href="#MD5Digest">MD5Digest</a>&#39;&gt;, &lt;class &#39;<a href="#Map">Map</a>&#39;&gt;, &lt;class &#39;<a href="#MapFromEntries">MapFromEntries</a>&#39;&gt;, &lt;class &#39;<a href="#MatchAgainst">MatchAgainst</a>&#39;&gt;, &lt;class &#39;<a href="#Max">Max</a>&#39;&gt;, &lt;class &#39;<a href="#Min">Min</a>&#39;&gt;, &lt;class &#39;<a href="#Month">Month</a>&#39;&gt;, &lt;class &#39;<a href="#MonthsBetween">MonthsBetween</a>&#39;&gt;, &lt;class &#39;<a href="#NextValueFor">NextValueFor</a>&#39;&gt;, &lt;class &#39;<a href="#Nullif">Nullif</a>&#39;&gt;, &lt;class &#39;<a href="#NumberToStr">NumberToStr</a>&#39;&gt;, &lt;class &#39;<a href="#Nvl2">Nvl2</a>&#39;&gt;, &lt;class &#39;<a href="#OpenJSON">OpenJSON</a>&#39;&gt;, &lt;class &#39;<a href="#ParameterizedAgg">ParameterizedAgg</a>&#39;&gt;, &lt;class &#39;<a href="#ParseJSON">ParseJSON</a>&#39;&gt;, &lt;class &#39;<a href="#PercentileCont">PercentileCont</a>&#39;&gt;, &lt;class &#39;<a href="#PercentileDisc">PercentileDisc</a>&#39;&gt;, &lt;class &#39;<a href="#Posexplode">Posexplode</a>&#39;&gt;, &lt;class &#39;<a href="#PosexplodeOuter">PosexplodeOuter</a>&#39;&gt;, &lt;class &#39;<a href="#Pow">Pow</a>&#39;&gt;, &lt;class &#39;<a href="#Predict">Predict</a>&#39;&gt;, &lt;class &#39;<a href="#Quantile">Quantile</a>&#39;&gt;, &lt;class &#39;<a href="#Rand">Rand</a>&#39;&gt;, &lt;class &#39;<a href="#Randn">Randn</a>&#39;&gt;, &lt;class &#39;<a href="#RangeN">RangeN</a>&#39;&gt;, &lt;class &#39;<a href="#ReadCSV">ReadCSV</a>&#39;&gt;, &lt;class &#39;<a href="#Reduce">Reduce</a>&#39;&gt;, &lt;class &#39;<a href="#RegexpExtract">RegexpExtract</a>&#39;&gt;, &lt;class &#39;<a href="#RegexpILike">RegexpILike</a>&#39;&gt;, &lt;class &#39;<a href="#RegexpLike">RegexpLike</a>&#39;&gt;, &lt;class &#39;<a href="#RegexpReplace">RegexpReplace</a>&#39;&gt;, &lt;class &#39;<a href="#RegexpSplit">RegexpSplit</a>&#39;&gt;, &lt;class &#39;<a href="#Repeat">Repeat</a>&#39;&gt;, &lt;class &#39;<a href="#Right">Right</a>&#39;&gt;, &lt;class &#39;<a href="#Round">Round</a>&#39;&gt;, &lt;class &#39;<a href="#RowNumber">RowNumber</a>&#39;&gt;, &lt;class &#39;<a href="#SHA">SHA</a>&#39;&gt;, &lt;class &#39;<a href="#SHA2">SHA2</a>&#39;&gt;, &lt;class &#39;<a href="#SafeDivide">SafeDivide</a>&#39;&gt;, &lt;class &#39;<a href="#SortArray">SortArray</a>&#39;&gt;, &lt;class &#39;<a href="#Split">Split</a>&#39;&gt;, &lt;class &#39;<a href="#Sqrt">Sqrt</a>&#39;&gt;, &lt;class &#39;<a href="#StandardHash">StandardHash</a>&#39;&gt;, &lt;class &#39;<a href="#StarMap">StarMap</a>&#39;&gt;, &lt;class &#39;<a href="#StartsWith">StartsWith</a>&#39;&gt;, &lt;class &#39;<a href="#Stddev">Stddev</a>&#39;&gt;, &lt;class &#39;<a href="#StddevPop">StddevPop</a>&#39;&gt;, &lt;class &#39;<a href="#StddevSamp">StddevSamp</a>&#39;&gt;, &lt;class &#39;<a href="#StrPosition">StrPosition</a>&#39;&gt;, &lt;class &#39;<a href="#StrToDate">StrToDate</a>&#39;&gt;, &lt;class &#39;<a href="#StrToMap">StrToMap</a>&#39;&gt;, &lt;class &#39;<a href="#StrToTime">StrToTime</a>&#39;&gt;, &lt;class &#39;<a href="#StrToUnix">StrToUnix</a>&#39;&gt;, &lt;class &#39;<a href="#Struct">Struct</a>&#39;&gt;, &lt;class &#39;<a href="#StructExtract">StructExtract</a>&#39;&gt;, &lt;class &#39;<a href="#Stuff">Stuff</a>&#39;&gt;, &lt;class &#39;<a href="#Substring">Substring</a>&#39;&gt;, &lt;class &#39;<a href="#Sum">Sum</a>&#39;&gt;, &lt;class &#39;<a href="#TimeAdd">TimeAdd</a>&#39;&gt;, &lt;class &#39;<a href="#TimeDiff">TimeDiff</a>&#39;&gt;, &lt;class &#39;<a href="#TimeFromParts">TimeFromParts</a>&#39;&gt;, &lt;class &#39;<a href="#TimeStrToDate">TimeStrToDate</a>&#39;&gt;, &lt;class &#39;<a href="#TimeStrToTime">TimeStrToTime</a>&#39;&gt;, &lt;class &#39;<a href="#TimeStrToUnix">TimeStrToUnix</a>&#39;&gt;, &lt;class &#39;<a href="#TimeSub">TimeSub</a>&#39;&gt;, &lt;class &#39;<a href="#TimeToStr">TimeToStr</a>&#39;&gt;, &lt;class &#39;<a href="#TimeToTimeStr">TimeToTimeStr</a>&#39;&gt;, &lt;class &#39;<a href="#TimeToUnix">TimeToUnix</a>&#39;&gt;, &lt;class &#39;<a href="#TimeTrunc">TimeTrunc</a>&#39;&gt;, &lt;class &#39;<a href="#Timestamp">Timestamp</a>&#39;&gt;, &lt;class &#39;<a href="#TimestampAdd">TimestampAdd</a>&#39;&gt;, &lt;class &#39;<a href="#TimestampDiff">TimestampDiff</a>&#39;&gt;, &lt;class &#39;<a href="#TimestampFromParts">TimestampFromParts</a>&#39;&gt;, &lt;class &#39;<a href="#TimestampSub">TimestampSub</a>&#39;&gt;, &lt;class &#39;<a href="#TimestampTrunc">TimestampTrunc</a>&#39;&gt;, &lt;class &#39;<a href="#ToArray">ToArray</a>&#39;&gt;, &lt;class &#39;<a href="#ToBase64">ToBase64</a>&#39;&gt;, &lt;class &#39;<a href="#ToChar">ToChar</a>&#39;&gt;, &lt;class &#39;<a href="#ToDays">ToDays</a>&#39;&gt;, &lt;class &#39;<a href="#Transform">Transform</a>&#39;&gt;, &lt;class &#39;<a href="#Trim">Trim</a>&#39;&gt;, &lt;class &#39;<a href="#TryCast">TryCast</a>&#39;&gt;, &lt;class &#39;<a href="#TsOrDiToDi">TsOrDiToDi</a>&#39;&gt;, &lt;class &#39;<a href="#TsOrDsAdd">TsOrDsAdd</a>&#39;&gt;, &lt;class &#39;<a href="#TsOrDsDiff">TsOrDsDiff</a>&#39;&gt;, &lt;class &#39;<a href="#TsOrDsToDate">TsOrDsToDate</a>&#39;&gt;, &lt;class &#39;<a href="#TsOrDsToDateStr">TsOrDsToDateStr</a>&#39;&gt;, &lt;class &#39;<a href="#TsOrDsToTime">TsOrDsToTime</a>&#39;&gt;, &lt;class &#39;<a href="#Unhex">Unhex</a>&#39;&gt;, &lt;class &#39;<a href="#UnixDate">UnixDate</a>&#39;&gt;, &lt;class &#39;<a href="#UnixToStr">UnixToStr</a>&#39;&gt;, &lt;class &#39;<a href="#UnixToTime">UnixToTime</a>&#39;&gt;, &lt;class &#39;<a href="#UnixToTimeStr">UnixToTimeStr</a>&#39;&gt;, &lt;class &#39;<a href="#Upper">Upper</a>&#39;&gt;, &lt;class &#39;<a href="#VarMap">VarMap</a>&#39;&gt;, &lt;class &#39;<a href="#Variance">Variance</a>&#39;&gt;, &lt;class &#39;<a href="#VariancePop">VariancePop</a>&#39;&gt;, &lt;class &#39;<a href="#Week">Week</a>&#39;&gt;, &lt;class &#39;<a href="#WeekOfYear">WeekOfYear</a>&#39;&gt;, &lt;class &#39;<a href="#When">When</a>&#39;&gt;, &lt;class &#39;<a href="#XMLTable">XMLTable</a>&#39;&gt;, &lt;class &#39;<a href="#Xor">Xor</a>&#39;&gt;, &lt;class &#39;<a href="#Year">Year</a>&#39;&gt;]</span>
</div>
@@ -79871,7 +84585,7 @@ array<int> != array<float>.</p>
<div class="attr variable">
<span class="name">FUNCTION_BY_NAME</span> =
<input id="FUNCTION_BY_NAME-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
- <label class="view-value-button pdoc-button" for="FUNCTION_BY_NAME-view-value"></label><span class="default_value">{&#39;ABS&#39;: &lt;class &#39;<a href="#Abs">Abs</a>&#39;&gt;, &#39;ANY_VALUE&#39;: &lt;class &#39;<a href="#AnyValue">AnyValue</a>&#39;&gt;, &#39;APPROX_DISTINCT&#39;: &lt;class &#39;<a href="#ApproxDistinct">ApproxDistinct</a>&#39;&gt;, &#39;APPROX_COUNT_DISTINCT&#39;: &lt;class &#39;<a href="#ApproxDistinct">ApproxDistinct</a>&#39;&gt;, &#39;APPROX_QUANTILE&#39;: &lt;class &#39;<a href="#ApproxQuantile">ApproxQuantile</a>&#39;&gt;, &#39;APPROX_TOP_K&#39;: &lt;class &#39;<a href="#ApproxTopK">ApproxTopK</a>&#39;&gt;, &#39;ARG_MAX&#39;: &lt;class &#39;<a href="#ArgMax">ArgMax</a>&#39;&gt;, &#39;ARGMAX&#39;: &lt;class &#39;<a href="#ArgMax">ArgMax</a>&#39;&gt;, &#39;MAX_BY&#39;: &lt;class &#39;<a href="#ArgMax">ArgMax</a>&#39;&gt;, &#39;ARG_MIN&#39;: &lt;class &#39;<a href="#ArgMin">ArgMin</a>&#39;&gt;, &#39;ARGMIN&#39;: &lt;class &#39;<a href="#ArgMin">ArgMin</a>&#39;&gt;, &#39;MIN_BY&#39;: &lt;class &#39;<a href="#ArgMin">ArgMin</a>&#39;&gt;, &#39;ARRAY&#39;: &lt;class &#39;<a href="#Array">Array</a>&#39;&gt;, &#39;ARRAY_AGG&#39;: &lt;class &#39;<a href="#ArrayAgg">ArrayAgg</a>&#39;&gt;, &#39;ARRAY_ALL&#39;: &lt;class &#39;<a href="#ArrayAll">ArrayAll</a>&#39;&gt;, &#39;ARRAY_ANY&#39;: &lt;class &#39;<a href="#ArrayAny">ArrayAny</a>&#39;&gt;, &#39;ARRAY_CONCAT&#39;: &lt;class &#39;<a href="#ArrayConcat">ArrayConcat</a>&#39;&gt;, &#39;ARRAY_CAT&#39;: &lt;class &#39;<a href="#ArrayConcat">ArrayConcat</a>&#39;&gt;, &#39;ARRAY_CONTAINS&#39;: &lt;class &#39;<a href="#ArrayContains">ArrayContains</a>&#39;&gt;, &#39;FILTER&#39;: &lt;class &#39;<a href="#ArrayFilter">ArrayFilter</a>&#39;&gt;, &#39;ARRAY_FILTER&#39;: &lt;class &#39;<a href="#ArrayFilter">ArrayFilter</a>&#39;&gt;, &#39;ARRAY_JOIN&#39;: &lt;class &#39;<a href="#ArrayJoin">ArrayJoin</a>&#39;&gt;, &#39;ARRAY_SIZE&#39;: &lt;class &#39;<a href="#ArraySize">ArraySize</a>&#39;&gt;, &#39;ARRAY_SORT&#39;: &lt;class &#39;<a href="#ArraySort">ArraySort</a>&#39;&gt;, &#39;ARRAY_SUM&#39;: &lt;class &#39;<a href="#ArraySum">ArraySum</a>&#39;&gt;, &#39;ARRAY_UNION_AGG&#39;: &lt;class &#39;<a href="#ArrayUnionAgg">ArrayUnionAgg</a>&#39;&gt;, &#39;ARRAY_UNIQUE_AGG&#39;: &lt;class &#39;<a href="#ArrayUniqueAgg">ArrayUniqueAgg</a>&#39;&gt;, &#39;AVG&#39;: &lt;class &#39;<a href="#Avg">Avg</a>&#39;&gt;, &#39;CASE&#39;: &lt;class &#39;<a href="#Case">Case</a>&#39;&gt;, &#39;CAST&#39;: &lt;class &#39;<a href="#Cast">Cast</a>&#39;&gt;, &#39;CAST_TO_STR_TYPE&#39;: &lt;class &#39;<a href="#CastToStrType">CastToStrType</a>&#39;&gt;, &#39;CEIL&#39;: &lt;class &#39;<a href="#Ceil">Ceil</a>&#39;&gt;, &#39;CEILING&#39;: &lt;class &#39;<a href="#Ceil">Ceil</a>&#39;&gt;, &#39;CHR&#39;: &lt;class &#39;<a href="#Chr">Chr</a>&#39;&gt;, &#39;CHAR&#39;: &lt;class &#39;<a href="#Chr">Chr</a>&#39;&gt;, &#39;COALESCE&#39;: &lt;class &#39;<a href="#Coalesce">Coalesce</a>&#39;&gt;, &#39;IFNULL&#39;: &lt;class &#39;<a href="#Coalesce">Coalesce</a>&#39;&gt;, &#39;NVL&#39;: &lt;class &#39;<a href="#Coalesce">Coalesce</a>&#39;&gt;, &#39;COLLATE&#39;: &lt;class &#39;<a href="#Collate">Collate</a>&#39;&gt;, &#39;CONCAT&#39;: &lt;class &#39;<a href="#Concat">Concat</a>&#39;&gt;, &#39;CONCAT_WS&#39;: &lt;class &#39;<a href="#ConcatWs">ConcatWs</a>&#39;&gt;, &#39;COUNT&#39;: &lt;class &#39;<a href="#Count">Count</a>&#39;&gt;, &#39;COUNT_IF&#39;: &lt;class &#39;<a href="#CountIf">CountIf</a>&#39;&gt;, &#39;CURRENT_DATE&#39;: &lt;class &#39;<a href="#CurrentDate">CurrentDate</a>&#39;&gt;, &#39;CURRENT_DATETIME&#39;: &lt;class &#39;<a href="#CurrentDatetime">CurrentDatetime</a>&#39;&gt;, &#39;CURRENT_TIME&#39;: &lt;class &#39;<a href="#CurrentTime">CurrentTime</a>&#39;&gt;, &#39;CURRENT_TIMESTAMP&#39;: &lt;class &#39;<a href="#CurrentTimestamp">CurrentTimestamp</a>&#39;&gt;, &#39;CURRENT_USER&#39;: &lt;class &#39;<a href="#CurrentUser">CurrentUser</a>&#39;&gt;, &#39;DATE&#39;: &lt;class &#39;<a href="#Date">Date</a>&#39;&gt;, &#39;DATE_ADD&#39;: &lt;class &#39;<a href="#DateAdd">DateAdd</a>&#39;&gt;, &#39;DATEDIFF&#39;: &lt;class &#39;<a href="#DateDiff">DateDiff</a>&#39;&gt;, &#39;DATE_DIFF&#39;: &lt;class &#39;<a href="#DateDiff">DateDiff</a>&#39;&gt;, &#39;DATEFROMPARTS&#39;: &lt;class &#39;<a href="#DateFromParts">DateFromParts</a>&#39;&gt;, &#39;DATE_STR_TO_DATE&#39;: &lt;class &#39;<a href="#DateStrToDate">DateStrToDate</a>&#39;&gt;, &#39;DATE_SUB&#39;: &lt;class &#39;<a href="#DateSub">DateSub</a>&#39;&gt;, &#39;DATE_TO_DATE_STR&#39;: &lt;class &#39;<a href="#DateToDateStr">DateToDateStr</a>&#39;&gt;, &#39;DATE_TO_DI&#39;: &lt;class &#39;<a href="#DateToDi">DateToDi</a>&#39;&gt;, &#39;DATE_TRUNC&#39;: &lt;class &#39;<a href="#DateTrunc">DateTrunc</a>&#39;&gt;, &#39;DATETIME_ADD&#39;: &lt;class &#39;<a href="#DatetimeAdd">DatetimeAdd</a>&#39;&gt;, &#39;DATETIME_DIFF&#39;: &lt;class &#39;<a href="#DatetimeDiff">DatetimeDiff</a>&#39;&gt;, &#39;DATETIME_SUB&#39;: &lt;class &#39;<a href="#DatetimeSub">DatetimeSub</a>&#39;&gt;, &#39;DATETIME_TRUNC&#39;: &lt;class &#39;<a href="#DatetimeTrunc">DatetimeTrunc</a>&#39;&gt;, &#39;DAY&#39;: &lt;class &#39;<a href="#Day">Day</a>&#39;&gt;, &#39;DAY_OF_MONTH&#39;: &lt;class &#39;<a href="#DayOfMonth">DayOfMonth</a>&#39;&gt;, &#39;DAYOFMONTH&#39;: &lt;class &#39;<a href="#DayOfMonth">DayOfMonth</a>&#39;&gt;, &#39;DAY_OF_WEEK&#39;: &lt;class &#39;<a href="#DayOfWeek">DayOfWeek</a>&#39;&gt;, &#39;DAYOFWEEK&#39;: &lt;class &#39;<a href="#DayOfWeek">DayOfWeek</a>&#39;&gt;, &#39;DAY_OF_YEAR&#39;: &lt;class &#39;<a href="#DayOfYear">DayOfYear</a>&#39;&gt;, &#39;DAYOFYEAR&#39;: &lt;class &#39;<a href="#DayOfYear">DayOfYear</a>&#39;&gt;, &#39;DECODE&#39;: &lt;class &#39;<a href="#Decode">Decode</a>&#39;&gt;, &#39;DI_TO_DATE&#39;: &lt;class &#39;<a href="#DiToDate">DiToDate</a>&#39;&gt;, &#39;ENCODE&#39;: &lt;class &#39;<a href="#Encode">Encode</a>&#39;&gt;, &#39;EXP&#39;: &lt;class &#39;<a href="#Exp">Exp</a>&#39;&gt;, &#39;EXPLODE&#39;: &lt;class &#39;<a href="#Explode">Explode</a>&#39;&gt;, &#39;EXPLODE_OUTER&#39;: &lt;class &#39;<a href="#ExplodeOuter">ExplodeOuter</a>&#39;&gt;, &#39;EXTRACT&#39;: &lt;class &#39;<a href="#Extract">Extract</a>&#39;&gt;, &#39;FIRST&#39;: &lt;class &#39;<a href="#First">First</a>&#39;&gt;, &#39;FLATTEN&#39;: &lt;class &#39;<a href="#Flatten">Flatten</a>&#39;&gt;, &#39;FLOOR&#39;: &lt;class &#39;<a href="#Floor">Floor</a>&#39;&gt;, &#39;FROM_BASE&#39;: &lt;class &#39;<a href="#FromBase">FromBase</a>&#39;&gt;, &#39;FROM_BASE64&#39;: &lt;class &#39;<a href="#FromBase64">FromBase64</a>&#39;&gt;, &#39;GENERATE_SERIES&#39;: &lt;class &#39;<a href="#GenerateSeries">GenerateSeries</a>&#39;&gt;, &#39;GREATEST&#39;: &lt;class &#39;<a href="#Greatest">Greatest</a>&#39;&gt;, &#39;GROUP_CONCAT&#39;: &lt;class &#39;<a href="#GroupConcat">GroupConcat</a>&#39;&gt;, &#39;HEX&#39;: &lt;class &#39;<a href="#Hex">Hex</a>&#39;&gt;, &#39;HLL&#39;: &lt;class &#39;<a href="#Hll">Hll</a>&#39;&gt;, &#39;IF&#39;: &lt;class &#39;<a href="#If">If</a>&#39;&gt;, &#39;INITCAP&#39;: &lt;class &#39;<a href="#Initcap">Initcap</a>&#39;&gt;, &#39;IS_INF&#39;: &lt;class &#39;<a href="#IsInf">IsInf</a>&#39;&gt;, &#39;ISINF&#39;: &lt;class &#39;<a href="#IsInf">IsInf</a>&#39;&gt;, &#39;IS_NAN&#39;: &lt;class &#39;<a href="#IsNan">IsNan</a>&#39;&gt;, &#39;ISNAN&#39;: &lt;class &#39;<a href="#IsNan">IsNan</a>&#39;&gt;, &#39;J_S_O_N_ARRAY&#39;: &lt;class &#39;<a href="#JSONArray">JSONArray</a>&#39;&gt;, &#39;J_S_O_N_ARRAY_AGG&#39;: &lt;class &#39;<a href="#JSONArrayAgg">JSONArrayAgg</a>&#39;&gt;, &#39;JSON_ARRAY_CONTAINS&#39;: &lt;class &#39;<a href="#JSONArrayContains">JSONArrayContains</a>&#39;&gt;, &#39;JSONB_EXTRACT&#39;: &lt;class &#39;<a href="#JSONBExtract">JSONBExtract</a>&#39;&gt;, &#39;JSONB_EXTRACT_SCALAR&#39;: &lt;class &#39;<a href="#JSONBExtractScalar">JSONBExtractScalar</a>&#39;&gt;, &#39;JSON_EXTRACT&#39;: &lt;class &#39;<a href="#JSONExtract">JSONExtract</a>&#39;&gt;, &#39;JSON_EXTRACT_SCALAR&#39;: &lt;class &#39;<a href="#JSONExtractScalar">JSONExtractScalar</a>&#39;&gt;, &#39;JSON_FORMAT&#39;: &lt;class &#39;<a href="#JSONFormat">JSONFormat</a>&#39;&gt;, &#39;J_S_O_N_OBJECT&#39;: &lt;class &#39;<a href="#JSONObject">JSONObject</a>&#39;&gt;, &#39;J_S_O_N_TABLE&#39;: &lt;class &#39;<a href="#JSONTable">JSONTable</a>&#39;&gt;, &#39;LAST&#39;: &lt;class &#39;<a href="#Last">Last</a>&#39;&gt;, &#39;LAST_DATE_OF_MONTH&#39;: &lt;class &#39;<a href="#LastDateOfMonth">LastDateOfMonth</a>&#39;&gt;, &#39;LEAST&#39;: &lt;class &#39;<a href="#Least">Least</a>&#39;&gt;, &#39;LEFT&#39;: &lt;class &#39;<a href="#Left">Left</a>&#39;&gt;, &#39;LENGTH&#39;: &lt;class &#39;<a href="#Length">Length</a>&#39;&gt;, &#39;LEN&#39;: &lt;class &#39;<a href="#Length">Length</a>&#39;&gt;, &#39;LEVENSHTEIN&#39;: &lt;class &#39;<a href="#Levenshtein">Levenshtein</a>&#39;&gt;, &#39;LN&#39;: &lt;class &#39;<a href="#Ln">Ln</a>&#39;&gt;, &#39;LOG&#39;: &lt;class &#39;<a href="#Log">Log</a>&#39;&gt;, &#39;LOG10&#39;: &lt;class &#39;<a href="#Log10">Log10</a>&#39;&gt;, &#39;LOG2&#39;: &lt;class &#39;<a href="#Log2">Log2</a>&#39;&gt;, &#39;LOGICAL_AND&#39;: &lt;class &#39;<a href="#LogicalAnd">LogicalAnd</a>&#39;&gt;, &#39;BOOL_AND&#39;: &lt;class &#39;<a href="#LogicalAnd">LogicalAnd</a>&#39;&gt;, &#39;BOOLAND_AGG&#39;: &lt;class &#39;<a href="#LogicalAnd">LogicalAnd</a>&#39;&gt;, &#39;LOGICAL_OR&#39;: &lt;class &#39;<a href="#LogicalOr">LogicalOr</a>&#39;&gt;, &#39;BOOL_OR&#39;: &lt;class &#39;<a href="#LogicalOr">LogicalOr</a>&#39;&gt;, &#39;BOOLOR_AGG&#39;: &lt;class &#39;<a href="#LogicalOr">LogicalOr</a>&#39;&gt;, &#39;LOWER&#39;: &lt;class &#39;<a href="#Lower">Lower</a>&#39;&gt;, &#39;LCASE&#39;: &lt;class &#39;<a href="#Lower">Lower</a>&#39;&gt;, &#39;MD5&#39;: &lt;class &#39;<a href="#MD5">MD5</a>&#39;&gt;, &#39;MD5_DIGEST&#39;: &lt;class &#39;<a href="#MD5Digest">MD5Digest</a>&#39;&gt;, &#39;MAP&#39;: &lt;class &#39;<a href="#Map">Map</a>&#39;&gt;, &#39;MAP_FROM_ENTRIES&#39;: &lt;class &#39;<a href="#MapFromEntries">MapFromEntries</a>&#39;&gt;, &#39;MATCH_AGAINST&#39;: &lt;class &#39;<a href="#MatchAgainst">MatchAgainst</a>&#39;&gt;, &#39;MAX&#39;: &lt;class &#39;<a href="#Max">Max</a>&#39;&gt;, &#39;MIN&#39;: &lt;class &#39;<a href="#Min">Min</a>&#39;&gt;, &#39;MONTH&#39;: &lt;class &#39;<a href="#Month">Month</a>&#39;&gt;, &#39;MONTHS_BETWEEN&#39;: &lt;class &#39;<a href="#MonthsBetween">MonthsBetween</a>&#39;&gt;, &#39;NEXT_VALUE_FOR&#39;: &lt;class &#39;<a href="#NextValueFor">NextValueFor</a>&#39;&gt;, &#39;NULLIF&#39;: &lt;class &#39;<a href="#Nullif">Nullif</a>&#39;&gt;, &#39;NUMBER_TO_STR&#39;: &lt;class &#39;<a href="#NumberToStr">NumberToStr</a>&#39;&gt;, &#39;NVL2&#39;: &lt;class &#39;<a href="#Nvl2">Nvl2</a>&#39;&gt;, &#39;OPEN_J_S_O_N&#39;: &lt;class &#39;<a href="#OpenJSON">OpenJSON</a>&#39;&gt;, &#39;PARAMETERIZED_AGG&#39;: &lt;class &#39;<a href="#ParameterizedAgg">ParameterizedAgg</a>&#39;&gt;, &#39;PARSE_JSON&#39;: &lt;class &#39;<a href="#ParseJSON">ParseJSON</a>&#39;&gt;, &#39;JSON_PARSE&#39;: &lt;class &#39;<a href="#ParseJSON">ParseJSON</a>&#39;&gt;, &#39;PERCENTILE_CONT&#39;: &lt;class &#39;<a href="#PercentileCont">PercentileCont</a>&#39;&gt;, &#39;PERCENTILE_DISC&#39;: &lt;class &#39;<a href="#PercentileDisc">PercentileDisc</a>&#39;&gt;, &#39;POSEXPLODE&#39;: &lt;class &#39;<a href="#Posexplode">Posexplode</a>&#39;&gt;, &#39;POSEXPLODE_OUTER&#39;: &lt;class &#39;<a href="#PosexplodeOuter">PosexplodeOuter</a>&#39;&gt;, &#39;POWER&#39;: &lt;class &#39;<a href="#Pow">Pow</a>&#39;&gt;, &#39;POW&#39;: &lt;class &#39;<a href="#Pow">Pow</a>&#39;&gt;, &#39;PREDICT&#39;: &lt;class &#39;<a href="#Predict">Predict</a>&#39;&gt;, &#39;QUANTILE&#39;: &lt;class &#39;<a href="#Quantile">Quantile</a>&#39;&gt;, &#39;RANGE_N&#39;: &lt;class &#39;<a href="#RangeN">RangeN</a>&#39;&gt;, &#39;READ_CSV&#39;: &lt;class &#39;<a href="#ReadCSV">ReadCSV</a>&#39;&gt;, &#39;REDUCE&#39;: &lt;class &#39;<a href="#Reduce">Reduce</a>&#39;&gt;, &#39;REGEXP_EXTRACT&#39;: &lt;class &#39;<a href="#RegexpExtract">RegexpExtract</a>&#39;&gt;, &#39;REGEXP_I_LIKE&#39;: &lt;class &#39;<a href="#RegexpILike">RegexpILike</a>&#39;&gt;, &#39;REGEXP_LIKE&#39;: &lt;class &#39;<a href="#RegexpLike">RegexpLike</a>&#39;&gt;, &#39;REGEXP_REPLACE&#39;: &lt;class &#39;<a href="#RegexpReplace">RegexpReplace</a>&#39;&gt;, &#39;REGEXP_SPLIT&#39;: &lt;class &#39;<a href="#RegexpSplit">RegexpSplit</a>&#39;&gt;, &#39;REPEAT&#39;: &lt;class &#39;<a href="#Repeat">Repeat</a>&#39;&gt;, &#39;RIGHT&#39;: &lt;class &#39;<a href="#Right">Right</a>&#39;&gt;, &#39;ROUND&#39;: &lt;class &#39;<a href="#Round">Round</a>&#39;&gt;, &#39;ROW_NUMBER&#39;: &lt;class &#39;<a href="#RowNumber">RowNumber</a>&#39;&gt;, &#39;SHA&#39;: &lt;class &#39;<a href="#SHA">SHA</a>&#39;&gt;, &#39;SHA1&#39;: &lt;class &#39;<a href="#SHA">SHA</a>&#39;&gt;, &#39;SHA2&#39;: &lt;class &#39;<a href="#SHA2">SHA2</a>&#39;&gt;, &#39;SAFE_DIVIDE&#39;: &lt;class &#39;<a href="#SafeDivide">SafeDivide</a>&#39;&gt;, &#39;SORT_ARRAY&#39;: &lt;class &#39;<a href="#SortArray">SortArray</a>&#39;&gt;, &#39;SPLIT&#39;: &lt;class &#39;<a href="#Split">Split</a>&#39;&gt;, &#39;SQRT&#39;: &lt;class &#39;<a href="#Sqrt">Sqrt</a>&#39;&gt;, &#39;STANDARD_HASH&#39;: &lt;class &#39;<a href="#StandardHash">StandardHash</a>&#39;&gt;, &#39;STAR_MAP&#39;: &lt;class &#39;<a href="#StarMap">StarMap</a>&#39;&gt;, &#39;STARTS_WITH&#39;: &lt;class &#39;<a href="#StartsWith">StartsWith</a>&#39;&gt;, &#39;STARTSWITH&#39;: &lt;class &#39;<a href="#StartsWith">StartsWith</a>&#39;&gt;, &#39;STDDEV&#39;: &lt;class &#39;<a href="#Stddev">Stddev</a>&#39;&gt;, &#39;STDDEV_POP&#39;: &lt;class &#39;<a href="#StddevPop">StddevPop</a>&#39;&gt;, &#39;STDDEV_SAMP&#39;: &lt;class &#39;<a href="#StddevSamp">StddevSamp</a>&#39;&gt;, &#39;STR_POSITION&#39;: &lt;class &#39;<a href="#StrPosition">StrPosition</a>&#39;&gt;, &#39;STR_TO_DATE&#39;: &lt;class &#39;<a href="#StrToDate">StrToDate</a>&#39;&gt;, &#39;STR_TO_MAP&#39;: &lt;class &#39;<a href="#StrToMap">StrToMap</a>&#39;&gt;, &#39;STR_TO_TIME&#39;: &lt;class &#39;<a href="#StrToTime">StrToTime</a>&#39;&gt;, &#39;STR_TO_UNIX&#39;: &lt;class &#39;<a href="#StrToUnix">StrToUnix</a>&#39;&gt;, &#39;STRUCT&#39;: &lt;class &#39;<a href="#Struct">Struct</a>&#39;&gt;, &#39;STRUCT_EXTRACT&#39;: &lt;class &#39;<a href="#StructExtract">StructExtract</a>&#39;&gt;, &#39;STUFF&#39;: &lt;class &#39;<a href="#Stuff">Stuff</a>&#39;&gt;, &#39;INSERT&#39;: &lt;class &#39;<a href="#Stuff">Stuff</a>&#39;&gt;, &#39;SUBSTRING&#39;: &lt;class &#39;<a href="#Substring">Substring</a>&#39;&gt;, &#39;SUM&#39;: &lt;class &#39;<a href="#Sum">Sum</a>&#39;&gt;, &#39;TIME_ADD&#39;: &lt;class &#39;<a href="#TimeAdd">TimeAdd</a>&#39;&gt;, &#39;TIME_DIFF&#39;: &lt;class &#39;<a href="#TimeDiff">TimeDiff</a>&#39;&gt;, &#39;TIME_STR_TO_DATE&#39;: &lt;class &#39;<a href="#TimeStrToDate">TimeStrToDate</a>&#39;&gt;, &#39;TIME_STR_TO_TIME&#39;: &lt;class &#39;<a href="#TimeStrToTime">TimeStrToTime</a>&#39;&gt;, &#39;TIME_STR_TO_UNIX&#39;: &lt;class &#39;<a href="#TimeStrToUnix">TimeStrToUnix</a>&#39;&gt;, &#39;TIME_SUB&#39;: &lt;class &#39;<a href="#TimeSub">TimeSub</a>&#39;&gt;, &#39;TIME_TO_STR&#39;: &lt;class &#39;<a href="#TimeToStr">TimeToStr</a>&#39;&gt;, &#39;TIME_TO_TIME_STR&#39;: &lt;class &#39;<a href="#TimeToTimeStr">TimeToTimeStr</a>&#39;&gt;, &#39;TIME_TO_UNIX&#39;: &lt;class &#39;<a href="#TimeToUnix">TimeToUnix</a>&#39;&gt;, &#39;TIME_TRUNC&#39;: &lt;class &#39;<a href="#TimeTrunc">TimeTrunc</a>&#39;&gt;, &#39;TIMESTAMP&#39;: &lt;class &#39;<a href="#Timestamp">Timestamp</a>&#39;&gt;, &#39;TIMESTAMP_ADD&#39;: &lt;class &#39;<a href="#TimestampAdd">TimestampAdd</a>&#39;&gt;, &#39;TIMESTAMP_DIFF&#39;: &lt;class &#39;<a href="#TimestampDiff">TimestampDiff</a>&#39;&gt;, &#39;TIMESTAMP_FROM_PARTS&#39;: &lt;class &#39;<a href="#TimestampFromParts">TimestampFromParts</a>&#39;&gt;, &#39;TIMESTAMP_SUB&#39;: &lt;class &#39;<a href="#TimestampSub">TimestampSub</a>&#39;&gt;, &#39;TIMESTAMP_TRUNC&#39;: &lt;class &#39;<a href="#TimestampTrunc">TimestampTrunc</a>&#39;&gt;, &#39;TO_BASE64&#39;: &lt;class &#39;<a href="#ToBase64">ToBase64</a>&#39;&gt;, &#39;TO_CHAR&#39;: &lt;class &#39;<a href="#ToChar">ToChar</a>&#39;&gt;, &#39;TO_DAYS&#39;: &lt;class &#39;<a href="#ToDays">ToDays</a>&#39;&gt;, &#39;TRANSFORM&#39;: &lt;class &#39;<a href="#Transform">Transform</a>&#39;&gt;, &#39;TRIM&#39;: &lt;class &#39;<a href="#Trim">Trim</a>&#39;&gt;, &#39;TRY_CAST&#39;: &lt;class &#39;<a href="#TryCast">TryCast</a>&#39;&gt;, &#39;TS_OR_DI_TO_DI&#39;: &lt;class &#39;<a href="#TsOrDiToDi">TsOrDiToDi</a>&#39;&gt;, &#39;TS_OR_DS_ADD&#39;: &lt;class &#39;<a href="#TsOrDsAdd">TsOrDsAdd</a>&#39;&gt;, &#39;TS_OR_DS_DIFF&#39;: &lt;class &#39;<a href="#TsOrDsDiff">TsOrDsDiff</a>&#39;&gt;, &#39;TS_OR_DS_TO_DATE&#39;: &lt;class &#39;<a href="#TsOrDsToDate">TsOrDsToDate</a>&#39;&gt;, &#39;TS_OR_DS_TO_DATE_STR&#39;: &lt;class &#39;<a href="#TsOrDsToDateStr">TsOrDsToDateStr</a>&#39;&gt;, &#39;UNHEX&#39;: &lt;class &#39;<a href="#Unhex">Unhex</a>&#39;&gt;, &#39;UNIX_TO_STR&#39;: &lt;class &#39;<a href="#UnixToStr">UnixToStr</a>&#39;&gt;, &#39;UNIX_TO_TIME&#39;: &lt;class &#39;<a href="#UnixToTime">UnixToTime</a>&#39;&gt;, &#39;UNIX_TO_TIME_STR&#39;: &lt;class &#39;<a href="#UnixToTimeStr">UnixToTimeStr</a>&#39;&gt;, &#39;UPPER&#39;: &lt;class &#39;<a href="#Upper">Upper</a>&#39;&gt;, &#39;UCASE&#39;: &lt;class &#39;<a href="#Upper">Upper</a>&#39;&gt;, &#39;VAR_MAP&#39;: &lt;class &#39;<a href="#VarMap">VarMap</a>&#39;&gt;, &#39;VARIANCE&#39;: &lt;class &#39;<a href="#Variance">Variance</a>&#39;&gt;, &#39;VARIANCE_SAMP&#39;: &lt;class &#39;<a href="#Variance">Variance</a>&#39;&gt;, &#39;VAR_SAMP&#39;: &lt;class &#39;<a href="#Variance">Variance</a>&#39;&gt;, &#39;VARIANCE_POP&#39;: &lt;class &#39;<a href="#VariancePop">VariancePop</a>&#39;&gt;, &#39;VAR_POP&#39;: &lt;class &#39;<a href="#VariancePop">VariancePop</a>&#39;&gt;, &#39;WEEK&#39;: &lt;class &#39;<a href="#Week">Week</a>&#39;&gt;, &#39;WEEK_OF_YEAR&#39;: &lt;class &#39;<a href="#WeekOfYear">WeekOfYear</a>&#39;&gt;, &#39;WEEKOFYEAR&#39;: &lt;class &#39;<a href="#WeekOfYear">WeekOfYear</a>&#39;&gt;, &#39;WHEN&#39;: &lt;class &#39;<a href="#When">When</a>&#39;&gt;, &#39;X_M_L_TABLE&#39;: &lt;class &#39;<a href="#XMLTable">XMLTable</a>&#39;&gt;, &#39;XOR&#39;: &lt;class &#39;<a href="#Xor">Xor</a>&#39;&gt;, &#39;YEAR&#39;: &lt;class &#39;<a href="#Year">Year</a>&#39;&gt;}</span>
+ <label class="view-value-button pdoc-button" for="FUNCTION_BY_NAME-view-value"></label><span class="default_value">{&#39;ABS&#39;: &lt;class &#39;<a href="#Abs">Abs</a>&#39;&gt;, &#39;ANONYMOUS_AGG_FUNC&#39;: &lt;class &#39;<a href="#AnonymousAggFunc">AnonymousAggFunc</a>&#39;&gt;, &#39;ANY_VALUE&#39;: &lt;class &#39;<a href="#AnyValue">AnyValue</a>&#39;&gt;, &#39;APPROX_DISTINCT&#39;: &lt;class &#39;<a href="#ApproxDistinct">ApproxDistinct</a>&#39;&gt;, &#39;APPROX_COUNT_DISTINCT&#39;: &lt;class &#39;<a href="#ApproxDistinct">ApproxDistinct</a>&#39;&gt;, &#39;APPROX_QUANTILE&#39;: &lt;class &#39;<a href="#ApproxQuantile">ApproxQuantile</a>&#39;&gt;, &#39;APPROX_TOP_K&#39;: &lt;class &#39;<a href="#ApproxTopK">ApproxTopK</a>&#39;&gt;, &#39;ARG_MAX&#39;: &lt;class &#39;<a href="#ArgMax">ArgMax</a>&#39;&gt;, &#39;ARGMAX&#39;: &lt;class &#39;<a href="#ArgMax">ArgMax</a>&#39;&gt;, &#39;MAX_BY&#39;: &lt;class &#39;<a href="#ArgMax">ArgMax</a>&#39;&gt;, &#39;ARG_MIN&#39;: &lt;class &#39;<a href="#ArgMin">ArgMin</a>&#39;&gt;, &#39;ARGMIN&#39;: &lt;class &#39;<a href="#ArgMin">ArgMin</a>&#39;&gt;, &#39;MIN_BY&#39;: &lt;class &#39;<a href="#ArgMin">ArgMin</a>&#39;&gt;, &#39;ARRAY&#39;: &lt;class &#39;<a href="#Array">Array</a>&#39;&gt;, &#39;ARRAY_AGG&#39;: &lt;class &#39;<a href="#ArrayAgg">ArrayAgg</a>&#39;&gt;, &#39;ARRAY_ALL&#39;: &lt;class &#39;<a href="#ArrayAll">ArrayAll</a>&#39;&gt;, &#39;ARRAY_ANY&#39;: &lt;class &#39;<a href="#ArrayAny">ArrayAny</a>&#39;&gt;, &#39;ARRAY_CONCAT&#39;: &lt;class &#39;<a href="#ArrayConcat">ArrayConcat</a>&#39;&gt;, &#39;ARRAY_CAT&#39;: &lt;class &#39;<a href="#ArrayConcat">ArrayConcat</a>&#39;&gt;, &#39;ARRAY_CONTAINS&#39;: &lt;class &#39;<a href="#ArrayContains">ArrayContains</a>&#39;&gt;, &#39;FILTER&#39;: &lt;class &#39;<a href="#ArrayFilter">ArrayFilter</a>&#39;&gt;, &#39;ARRAY_FILTER&#39;: &lt;class &#39;<a href="#ArrayFilter">ArrayFilter</a>&#39;&gt;, &#39;ARRAY_JOIN&#39;: &lt;class &#39;<a href="#ArrayJoin">ArrayJoin</a>&#39;&gt;, &#39;ARRAY_SIZE&#39;: &lt;class &#39;<a href="#ArraySize">ArraySize</a>&#39;&gt;, &#39;ARRAY_SORT&#39;: &lt;class &#39;<a href="#ArraySort">ArraySort</a>&#39;&gt;, &#39;ARRAY_SUM&#39;: &lt;class &#39;<a href="#ArraySum">ArraySum</a>&#39;&gt;, &#39;ARRAY_UNION_AGG&#39;: &lt;class &#39;<a href="#ArrayUnionAgg">ArrayUnionAgg</a>&#39;&gt;, &#39;ARRAY_UNIQUE_AGG&#39;: &lt;class &#39;<a href="#ArrayUniqueAgg">ArrayUniqueAgg</a>&#39;&gt;, &#39;AVG&#39;: &lt;class &#39;<a href="#Avg">Avg</a>&#39;&gt;, &#39;CASE&#39;: &lt;class &#39;<a href="#Case">Case</a>&#39;&gt;, &#39;CAST&#39;: &lt;class &#39;<a href="#Cast">Cast</a>&#39;&gt;, &#39;CAST_TO_STR_TYPE&#39;: &lt;class &#39;<a href="#CastToStrType">CastToStrType</a>&#39;&gt;, &#39;CEIL&#39;: &lt;class &#39;<a href="#Ceil">Ceil</a>&#39;&gt;, &#39;CEILING&#39;: &lt;class &#39;<a href="#Ceil">Ceil</a>&#39;&gt;, &#39;CHR&#39;: &lt;class &#39;<a href="#Chr">Chr</a>&#39;&gt;, &#39;CHAR&#39;: &lt;class &#39;<a href="#Chr">Chr</a>&#39;&gt;, &#39;COALESCE&#39;: &lt;class &#39;<a href="#Coalesce">Coalesce</a>&#39;&gt;, &#39;IFNULL&#39;: &lt;class &#39;<a href="#Coalesce">Coalesce</a>&#39;&gt;, &#39;NVL&#39;: &lt;class &#39;<a href="#Coalesce">Coalesce</a>&#39;&gt;, &#39;COLLATE&#39;: &lt;class &#39;<a href="#Collate">Collate</a>&#39;&gt;, &#39;COMBINED_AGG_FUNC&#39;: &lt;class &#39;<a href="#CombinedAggFunc">CombinedAggFunc</a>&#39;&gt;, &#39;COMBINED_PARAMETERIZED_AGG&#39;: &lt;class &#39;<a href="#CombinedParameterizedAgg">CombinedParameterizedAgg</a>&#39;&gt;, &#39;CONCAT&#39;: &lt;class &#39;<a href="#Concat">Concat</a>&#39;&gt;, &#39;CONCAT_WS&#39;: &lt;class &#39;<a href="#ConcatWs">ConcatWs</a>&#39;&gt;, &#39;COUNT&#39;: &lt;class &#39;<a href="#Count">Count</a>&#39;&gt;, &#39;COUNT_IF&#39;: &lt;class &#39;<a href="#CountIf">CountIf</a>&#39;&gt;, &#39;COUNTIF&#39;: &lt;class &#39;<a href="#CountIf">CountIf</a>&#39;&gt;, &#39;CURRENT_DATE&#39;: &lt;class &#39;<a href="#CurrentDate">CurrentDate</a>&#39;&gt;, &#39;CURRENT_DATETIME&#39;: &lt;class &#39;<a href="#CurrentDatetime">CurrentDatetime</a>&#39;&gt;, &#39;CURRENT_TIME&#39;: &lt;class &#39;<a href="#CurrentTime">CurrentTime</a>&#39;&gt;, &#39;CURRENT_TIMESTAMP&#39;: &lt;class &#39;<a href="#CurrentTimestamp">CurrentTimestamp</a>&#39;&gt;, &#39;CURRENT_USER&#39;: &lt;class &#39;<a href="#CurrentUser">CurrentUser</a>&#39;&gt;, &#39;DATE&#39;: &lt;class &#39;<a href="#Date">Date</a>&#39;&gt;, &#39;DATE_ADD&#39;: &lt;class &#39;<a href="#DateAdd">DateAdd</a>&#39;&gt;, &#39;DATEDIFF&#39;: &lt;class &#39;<a href="#DateDiff">DateDiff</a>&#39;&gt;, &#39;DATE_DIFF&#39;: &lt;class &#39;<a href="#DateDiff">DateDiff</a>&#39;&gt;, &#39;DATE_FROM_PARTS&#39;: &lt;class &#39;<a href="#DateFromParts">DateFromParts</a>&#39;&gt;, &#39;DATEFROMPARTS&#39;: &lt;class &#39;<a href="#DateFromParts">DateFromParts</a>&#39;&gt;, &#39;DATE_STR_TO_DATE&#39;: &lt;class &#39;<a href="#DateStrToDate">DateStrToDate</a>&#39;&gt;, &#39;DATE_SUB&#39;: &lt;class &#39;<a href="#DateSub">DateSub</a>&#39;&gt;, &#39;DATE_TO_DATE_STR&#39;: &lt;class &#39;<a href="#DateToDateStr">DateToDateStr</a>&#39;&gt;, &#39;DATE_TO_DI&#39;: &lt;class &#39;<a href="#DateToDi">DateToDi</a>&#39;&gt;, &#39;DATE_TRUNC&#39;: &lt;class &#39;<a href="#DateTrunc">DateTrunc</a>&#39;&gt;, &#39;DATETIME_ADD&#39;: &lt;class &#39;<a href="#DatetimeAdd">DatetimeAdd</a>&#39;&gt;, &#39;DATETIME_DIFF&#39;: &lt;class &#39;<a href="#DatetimeDiff">DatetimeDiff</a>&#39;&gt;, &#39;DATETIME_SUB&#39;: &lt;class &#39;<a href="#DatetimeSub">DatetimeSub</a>&#39;&gt;, &#39;DATETIME_TRUNC&#39;: &lt;class &#39;<a href="#DatetimeTrunc">DatetimeTrunc</a>&#39;&gt;, &#39;DAY&#39;: &lt;class &#39;<a href="#Day">Day</a>&#39;&gt;, &#39;DAY_OF_MONTH&#39;: &lt;class &#39;<a href="#DayOfMonth">DayOfMonth</a>&#39;&gt;, &#39;DAYOFMONTH&#39;: &lt;class &#39;<a href="#DayOfMonth">DayOfMonth</a>&#39;&gt;, &#39;DAY_OF_WEEK&#39;: &lt;class &#39;<a href="#DayOfWeek">DayOfWeek</a>&#39;&gt;, &#39;DAYOFWEEK&#39;: &lt;class &#39;<a href="#DayOfWeek">DayOfWeek</a>&#39;&gt;, &#39;DAY_OF_YEAR&#39;: &lt;class &#39;<a href="#DayOfYear">DayOfYear</a>&#39;&gt;, &#39;DAYOFYEAR&#39;: &lt;class &#39;<a href="#DayOfYear">DayOfYear</a>&#39;&gt;, &#39;DECODE&#39;: &lt;class &#39;<a href="#Decode">Decode</a>&#39;&gt;, &#39;DI_TO_DATE&#39;: &lt;class &#39;<a href="#DiToDate">DiToDate</a>&#39;&gt;, &#39;ENCODE&#39;: &lt;class &#39;<a href="#Encode">Encode</a>&#39;&gt;, &#39;EXP&#39;: &lt;class &#39;<a href="#Exp">Exp</a>&#39;&gt;, &#39;EXPLODE&#39;: &lt;class &#39;<a href="#Explode">Explode</a>&#39;&gt;, &#39;EXPLODE_OUTER&#39;: &lt;class &#39;<a href="#ExplodeOuter">ExplodeOuter</a>&#39;&gt;, &#39;EXTRACT&#39;: &lt;class &#39;<a href="#Extract">Extract</a>&#39;&gt;, &#39;FIRST&#39;: &lt;class &#39;<a href="#First">First</a>&#39;&gt;, &#39;FLATTEN&#39;: &lt;class &#39;<a href="#Flatten">Flatten</a>&#39;&gt;, &#39;FLOOR&#39;: &lt;class &#39;<a href="#Floor">Floor</a>&#39;&gt;, &#39;FROM_BASE&#39;: &lt;class &#39;<a href="#FromBase">FromBase</a>&#39;&gt;, &#39;FROM_BASE64&#39;: &lt;class &#39;<a href="#FromBase64">FromBase64</a>&#39;&gt;, &#39;GENERATE_SERIES&#39;: &lt;class &#39;<a href="#GenerateSeries">GenerateSeries</a>&#39;&gt;, &#39;GET_PATH&#39;: &lt;class &#39;<a href="#GetPath">GetPath</a>&#39;&gt;, &#39;GREATEST&#39;: &lt;class &#39;<a href="#Greatest">Greatest</a>&#39;&gt;, &#39;GROUP_CONCAT&#39;: &lt;class &#39;<a href="#GroupConcat">GroupConcat</a>&#39;&gt;, &#39;HEX&#39;: &lt;class &#39;<a href="#Hex">Hex</a>&#39;&gt;, &#39;HLL&#39;: &lt;class &#39;<a href="#Hll">Hll</a>&#39;&gt;, &#39;IF&#39;: &lt;class &#39;<a href="#If">If</a>&#39;&gt;, &#39;INITCAP&#39;: &lt;class &#39;<a href="#Initcap">Initcap</a>&#39;&gt;, &#39;IS_INF&#39;: &lt;class &#39;<a href="#IsInf">IsInf</a>&#39;&gt;, &#39;ISINF&#39;: &lt;class &#39;<a href="#IsInf">IsInf</a>&#39;&gt;, &#39;IS_NAN&#39;: &lt;class &#39;<a href="#IsNan">IsNan</a>&#39;&gt;, &#39;ISNAN&#39;: &lt;class &#39;<a href="#IsNan">IsNan</a>&#39;&gt;, &#39;J_S_O_N_ARRAY&#39;: &lt;class &#39;<a href="#JSONArray">JSONArray</a>&#39;&gt;, &#39;J_S_O_N_ARRAY_AGG&#39;: &lt;class &#39;<a href="#JSONArrayAgg">JSONArrayAgg</a>&#39;&gt;, &#39;JSON_ARRAY_CONTAINS&#39;: &lt;class &#39;<a href="#JSONArrayContains">JSONArrayContains</a>&#39;&gt;, &#39;JSONB_EXTRACT&#39;: &lt;class &#39;<a href="#JSONBExtract">JSONBExtract</a>&#39;&gt;, &#39;JSONB_EXTRACT_SCALAR&#39;: &lt;class &#39;<a href="#JSONBExtractScalar">JSONBExtractScalar</a>&#39;&gt;, &#39;JSON_EXTRACT&#39;: &lt;class &#39;<a href="#JSONExtract">JSONExtract</a>&#39;&gt;, &#39;JSON_EXTRACT_SCALAR&#39;: &lt;class &#39;<a href="#JSONExtractScalar">JSONExtractScalar</a>&#39;&gt;, &#39;JSON_FORMAT&#39;: &lt;class &#39;<a href="#JSONFormat">JSONFormat</a>&#39;&gt;, &#39;J_S_O_N_OBJECT&#39;: &lt;class &#39;<a href="#JSONObject">JSONObject</a>&#39;&gt;, &#39;J_S_O_N_TABLE&#39;: &lt;class &#39;<a href="#JSONTable">JSONTable</a>&#39;&gt;, &#39;LAST&#39;: &lt;class &#39;<a href="#Last">Last</a>&#39;&gt;, &#39;LAST_DAY&#39;: &lt;class &#39;<a href="#LastDay">LastDay</a>&#39;&gt;, &#39;LAST_DAY_OF_MONTH&#39;: &lt;class &#39;<a href="#LastDay">LastDay</a>&#39;&gt;, &#39;LEAST&#39;: &lt;class &#39;<a href="#Least">Least</a>&#39;&gt;, &#39;LEFT&#39;: &lt;class &#39;<a href="#Left">Left</a>&#39;&gt;, &#39;LENGTH&#39;: &lt;class &#39;<a href="#Length">Length</a>&#39;&gt;, &#39;LEN&#39;: &lt;class &#39;<a href="#Length">Length</a>&#39;&gt;, &#39;LEVENSHTEIN&#39;: &lt;class &#39;<a href="#Levenshtein">Levenshtein</a>&#39;&gt;, &#39;LN&#39;: &lt;class &#39;<a href="#Ln">Ln</a>&#39;&gt;, &#39;LOG&#39;: &lt;class &#39;<a href="#Log">Log</a>&#39;&gt;, &#39;LOG10&#39;: &lt;class &#39;<a href="#Log10">Log10</a>&#39;&gt;, &#39;LOG2&#39;: &lt;class &#39;<a href="#Log2">Log2</a>&#39;&gt;, &#39;LOGICAL_AND&#39;: &lt;class &#39;<a href="#LogicalAnd">LogicalAnd</a>&#39;&gt;, &#39;BOOL_AND&#39;: &lt;class &#39;<a href="#LogicalAnd">LogicalAnd</a>&#39;&gt;, &#39;BOOLAND_AGG&#39;: &lt;class &#39;<a href="#LogicalAnd">LogicalAnd</a>&#39;&gt;, &#39;LOGICAL_OR&#39;: &lt;class &#39;<a href="#LogicalOr">LogicalOr</a>&#39;&gt;, &#39;BOOL_OR&#39;: &lt;class &#39;<a href="#LogicalOr">LogicalOr</a>&#39;&gt;, &#39;BOOLOR_AGG&#39;: &lt;class &#39;<a href="#LogicalOr">LogicalOr</a>&#39;&gt;, &#39;LOWER&#39;: &lt;class &#39;<a href="#Lower">Lower</a>&#39;&gt;, &#39;LCASE&#39;: &lt;class &#39;<a href="#Lower">Lower</a>&#39;&gt;, &#39;MD5&#39;: &lt;class &#39;<a href="#MD5">MD5</a>&#39;&gt;, &#39;MD5_DIGEST&#39;: &lt;class &#39;<a href="#MD5Digest">MD5Digest</a>&#39;&gt;, &#39;MAP&#39;: &lt;class &#39;<a href="#Map">Map</a>&#39;&gt;, &#39;MAP_FROM_ENTRIES&#39;: &lt;class &#39;<a href="#MapFromEntries">MapFromEntries</a>&#39;&gt;, &#39;MATCH_AGAINST&#39;: &lt;class &#39;<a href="#MatchAgainst">MatchAgainst</a>&#39;&gt;, &#39;MAX&#39;: &lt;class &#39;<a href="#Max">Max</a>&#39;&gt;, &#39;MIN&#39;: &lt;class &#39;<a href="#Min">Min</a>&#39;&gt;, &#39;MONTH&#39;: &lt;class &#39;<a href="#Month">Month</a>&#39;&gt;, &#39;MONTHS_BETWEEN&#39;: &lt;class &#39;<a href="#MonthsBetween">MonthsBetween</a>&#39;&gt;, &#39;NEXT_VALUE_FOR&#39;: &lt;class &#39;<a href="#NextValueFor">NextValueFor</a>&#39;&gt;, &#39;NULLIF&#39;: &lt;class &#39;<a href="#Nullif">Nullif</a>&#39;&gt;, &#39;NUMBER_TO_STR&#39;: &lt;class &#39;<a href="#NumberToStr">NumberToStr</a>&#39;&gt;, &#39;NVL2&#39;: &lt;class &#39;<a href="#Nvl2">Nvl2</a>&#39;&gt;, &#39;OPEN_J_S_O_N&#39;: &lt;class &#39;<a href="#OpenJSON">OpenJSON</a>&#39;&gt;, &#39;PARAMETERIZED_AGG&#39;: &lt;class &#39;<a href="#ParameterizedAgg">ParameterizedAgg</a>&#39;&gt;, &#39;PARSE_JSON&#39;: &lt;class &#39;<a href="#ParseJSON">ParseJSON</a>&#39;&gt;, &#39;JSON_PARSE&#39;: &lt;class &#39;<a href="#ParseJSON">ParseJSON</a>&#39;&gt;, &#39;PERCENTILE_CONT&#39;: &lt;class &#39;<a href="#PercentileCont">PercentileCont</a>&#39;&gt;, &#39;PERCENTILE_DISC&#39;: &lt;class &#39;<a href="#PercentileDisc">PercentileDisc</a>&#39;&gt;, &#39;POSEXPLODE&#39;: &lt;class &#39;<a href="#Posexplode">Posexplode</a>&#39;&gt;, &#39;POSEXPLODE_OUTER&#39;: &lt;class &#39;<a href="#PosexplodeOuter">PosexplodeOuter</a>&#39;&gt;, &#39;POWER&#39;: &lt;class &#39;<a href="#Pow">Pow</a>&#39;&gt;, &#39;POW&#39;: &lt;class &#39;<a href="#Pow">Pow</a>&#39;&gt;, &#39;PREDICT&#39;: &lt;class &#39;<a href="#Predict">Predict</a>&#39;&gt;, &#39;QUANTILE&#39;: &lt;class &#39;<a href="#Quantile">Quantile</a>&#39;&gt;, &#39;RAND&#39;: &lt;class &#39;<a href="#Rand">Rand</a>&#39;&gt;, &#39;RANDOM&#39;: &lt;class &#39;<a href="#Rand">Rand</a>&#39;&gt;, &#39;RANDN&#39;: &lt;class &#39;<a href="#Randn">Randn</a>&#39;&gt;, &#39;RANGE_N&#39;: &lt;class &#39;<a href="#RangeN">RangeN</a>&#39;&gt;, &#39;READ_CSV&#39;: &lt;class &#39;<a href="#ReadCSV">ReadCSV</a>&#39;&gt;, &#39;REDUCE&#39;: &lt;class &#39;<a href="#Reduce">Reduce</a>&#39;&gt;, &#39;REGEXP_EXTRACT&#39;: &lt;class &#39;<a href="#RegexpExtract">RegexpExtract</a>&#39;&gt;, &#39;REGEXP_I_LIKE&#39;: &lt;class &#39;<a href="#RegexpILike">RegexpILike</a>&#39;&gt;, &#39;REGEXP_LIKE&#39;: &lt;class &#39;<a href="#RegexpLike">RegexpLike</a>&#39;&gt;, &#39;REGEXP_REPLACE&#39;: &lt;class &#39;<a href="#RegexpReplace">RegexpReplace</a>&#39;&gt;, &#39;REGEXP_SPLIT&#39;: &lt;class &#39;<a href="#RegexpSplit">RegexpSplit</a>&#39;&gt;, &#39;REPEAT&#39;: &lt;class &#39;<a href="#Repeat">Repeat</a>&#39;&gt;, &#39;RIGHT&#39;: &lt;class &#39;<a href="#Right">Right</a>&#39;&gt;, &#39;ROUND&#39;: &lt;class &#39;<a href="#Round">Round</a>&#39;&gt;, &#39;ROW_NUMBER&#39;: &lt;class &#39;<a href="#RowNumber">RowNumber</a>&#39;&gt;, &#39;SHA&#39;: &lt;class &#39;<a href="#SHA">SHA</a>&#39;&gt;, &#39;SHA1&#39;: &lt;class &#39;<a href="#SHA">SHA</a>&#39;&gt;, &#39;SHA2&#39;: &lt;class &#39;<a href="#SHA2">SHA2</a>&#39;&gt;, &#39;SAFE_DIVIDE&#39;: &lt;class &#39;<a href="#SafeDivide">SafeDivide</a>&#39;&gt;, &#39;SORT_ARRAY&#39;: &lt;class &#39;<a href="#SortArray">SortArray</a>&#39;&gt;, &#39;SPLIT&#39;: &lt;class &#39;<a href="#Split">Split</a>&#39;&gt;, &#39;SQRT&#39;: &lt;class &#39;<a href="#Sqrt">Sqrt</a>&#39;&gt;, &#39;STANDARD_HASH&#39;: &lt;class &#39;<a href="#StandardHash">StandardHash</a>&#39;&gt;, &#39;STAR_MAP&#39;: &lt;class &#39;<a href="#StarMap">StarMap</a>&#39;&gt;, &#39;STARTS_WITH&#39;: &lt;class &#39;<a href="#StartsWith">StartsWith</a>&#39;&gt;, &#39;STARTSWITH&#39;: &lt;class &#39;<a href="#StartsWith">StartsWith</a>&#39;&gt;, &#39;STDDEV&#39;: &lt;class &#39;<a href="#Stddev">Stddev</a>&#39;&gt;, &#39;STDDEV_POP&#39;: &lt;class &#39;<a href="#StddevPop">StddevPop</a>&#39;&gt;, &#39;STDDEV_SAMP&#39;: &lt;class &#39;<a href="#StddevSamp">StddevSamp</a>&#39;&gt;, &#39;STR_POSITION&#39;: &lt;class &#39;<a href="#StrPosition">StrPosition</a>&#39;&gt;, &#39;STR_TO_DATE&#39;: &lt;class &#39;<a href="#StrToDate">StrToDate</a>&#39;&gt;, &#39;STR_TO_MAP&#39;: &lt;class &#39;<a href="#StrToMap">StrToMap</a>&#39;&gt;, &#39;STR_TO_TIME&#39;: &lt;class &#39;<a href="#StrToTime">StrToTime</a>&#39;&gt;, &#39;STR_TO_UNIX&#39;: &lt;class &#39;<a href="#StrToUnix">StrToUnix</a>&#39;&gt;, &#39;STRUCT&#39;: &lt;class &#39;<a href="#Struct">Struct</a>&#39;&gt;, &#39;STRUCT_EXTRACT&#39;: &lt;class &#39;<a href="#StructExtract">StructExtract</a>&#39;&gt;, &#39;STUFF&#39;: &lt;class &#39;<a href="#Stuff">Stuff</a>&#39;&gt;, &#39;INSERT&#39;: &lt;class &#39;<a href="#Stuff">Stuff</a>&#39;&gt;, &#39;SUBSTRING&#39;: &lt;class &#39;<a href="#Substring">Substring</a>&#39;&gt;, &#39;SUM&#39;: &lt;class &#39;<a href="#Sum">Sum</a>&#39;&gt;, &#39;TIME_ADD&#39;: &lt;class &#39;<a href="#TimeAdd">TimeAdd</a>&#39;&gt;, &#39;TIME_DIFF&#39;: &lt;class &#39;<a href="#TimeDiff">TimeDiff</a>&#39;&gt;, &#39;TIME_FROM_PARTS&#39;: &lt;class &#39;<a href="#TimeFromParts">TimeFromParts</a>&#39;&gt;, &#39;TIMEFROMPARTS&#39;: &lt;class &#39;<a href="#TimeFromParts">TimeFromParts</a>&#39;&gt;, &#39;TIME_STR_TO_DATE&#39;: &lt;class &#39;<a href="#TimeStrToDate">TimeStrToDate</a>&#39;&gt;, &#39;TIME_STR_TO_TIME&#39;: &lt;class &#39;<a href="#TimeStrToTime">TimeStrToTime</a>&#39;&gt;, &#39;TIME_STR_TO_UNIX&#39;: &lt;class &#39;<a href="#TimeStrToUnix">TimeStrToUnix</a>&#39;&gt;, &#39;TIME_SUB&#39;: &lt;class &#39;<a href="#TimeSub">TimeSub</a>&#39;&gt;, &#39;TIME_TO_STR&#39;: &lt;class &#39;<a href="#TimeToStr">TimeToStr</a>&#39;&gt;, &#39;TIME_TO_TIME_STR&#39;: &lt;class &#39;<a href="#TimeToTimeStr">TimeToTimeStr</a>&#39;&gt;, &#39;TIME_TO_UNIX&#39;: &lt;class &#39;<a href="#TimeToUnix">TimeToUnix</a>&#39;&gt;, &#39;TIME_TRUNC&#39;: &lt;class &#39;<a href="#TimeTrunc">TimeTrunc</a>&#39;&gt;, &#39;TIMESTAMP&#39;: &lt;class &#39;<a href="#Timestamp">Timestamp</a>&#39;&gt;, &#39;TIMESTAMP_ADD&#39;: &lt;class &#39;<a href="#TimestampAdd">TimestampAdd</a>&#39;&gt;, &#39;TIMESTAMP_DIFF&#39;: &lt;class &#39;<a href="#TimestampDiff">TimestampDiff</a>&#39;&gt;, &#39;TIMESTAMP_FROM_PARTS&#39;: &lt;class &#39;<a href="#TimestampFromParts">TimestampFromParts</a>&#39;&gt;, &#39;TIMESTAMPFROMPARTS&#39;: &lt;class &#39;<a href="#TimestampFromParts">TimestampFromParts</a>&#39;&gt;, &#39;TIMESTAMP_SUB&#39;: &lt;class &#39;<a href="#TimestampSub">TimestampSub</a>&#39;&gt;, &#39;TIMESTAMP_TRUNC&#39;: &lt;class &#39;<a href="#TimestampTrunc">TimestampTrunc</a>&#39;&gt;, &#39;TO_ARRAY&#39;: &lt;class &#39;<a href="#ToArray">ToArray</a>&#39;&gt;, &#39;TO_BASE64&#39;: &lt;class &#39;<a href="#ToBase64">ToBase64</a>&#39;&gt;, &#39;TO_CHAR&#39;: &lt;class &#39;<a href="#ToChar">ToChar</a>&#39;&gt;, &#39;TO_DAYS&#39;: &lt;class &#39;<a href="#ToDays">ToDays</a>&#39;&gt;, &#39;TRANSFORM&#39;: &lt;class &#39;<a href="#Transform">Transform</a>&#39;&gt;, &#39;TRIM&#39;: &lt;class &#39;<a href="#Trim">Trim</a>&#39;&gt;, &#39;TRY_CAST&#39;: &lt;class &#39;<a href="#TryCast">TryCast</a>&#39;&gt;, &#39;TS_OR_DI_TO_DI&#39;: &lt;class &#39;<a href="#TsOrDiToDi">TsOrDiToDi</a>&#39;&gt;, &#39;TS_OR_DS_ADD&#39;: &lt;class &#39;<a href="#TsOrDsAdd">TsOrDsAdd</a>&#39;&gt;, &#39;TS_OR_DS_DIFF&#39;: &lt;class &#39;<a href="#TsOrDsDiff">TsOrDsDiff</a>&#39;&gt;, &#39;TS_OR_DS_TO_DATE&#39;: &lt;class &#39;<a href="#TsOrDsToDate">TsOrDsToDate</a>&#39;&gt;, &#39;TS_OR_DS_TO_DATE_STR&#39;: &lt;class &#39;<a href="#TsOrDsToDateStr">TsOrDsToDateStr</a>&#39;&gt;, &#39;TS_OR_DS_TO_TIME&#39;: &lt;class &#39;<a href="#TsOrDsToTime">TsOrDsToTime</a>&#39;&gt;, &#39;UNHEX&#39;: &lt;class &#39;<a href="#Unhex">Unhex</a>&#39;&gt;, &#39;UNIX_DATE&#39;: &lt;class &#39;<a href="#UnixDate">UnixDate</a>&#39;&gt;, &#39;UNIX_TO_STR&#39;: &lt;class &#39;<a href="#UnixToStr">UnixToStr</a>&#39;&gt;, &#39;UNIX_TO_TIME&#39;: &lt;class &#39;<a href="#UnixToTime">UnixToTime</a>&#39;&gt;, &#39;UNIX_TO_TIME_STR&#39;: &lt;class &#39;<a href="#UnixToTimeStr">UnixToTimeStr</a>&#39;&gt;, &#39;UPPER&#39;: &lt;class &#39;<a href="#Upper">Upper</a>&#39;&gt;, &#39;UCASE&#39;: &lt;class &#39;<a href="#Upper">Upper</a>&#39;&gt;, &#39;VAR_MAP&#39;: &lt;class &#39;<a href="#VarMap">VarMap</a>&#39;&gt;, &#39;VARIANCE&#39;: &lt;class &#39;<a href="#Variance">Variance</a>&#39;&gt;, &#39;VARIANCE_SAMP&#39;: &lt;class &#39;<a href="#Variance">Variance</a>&#39;&gt;, &#39;VAR_SAMP&#39;: &lt;class &#39;<a href="#Variance">Variance</a>&#39;&gt;, &#39;VARIANCE_POP&#39;: &lt;class &#39;<a href="#VariancePop">VariancePop</a>&#39;&gt;, &#39;VAR_POP&#39;: &lt;class &#39;<a href="#VariancePop">VariancePop</a>&#39;&gt;, &#39;WEEK&#39;: &lt;class &#39;<a href="#Week">Week</a>&#39;&gt;, &#39;WEEK_OF_YEAR&#39;: &lt;class &#39;<a href="#WeekOfYear">WeekOfYear</a>&#39;&gt;, &#39;WEEKOFYEAR&#39;: &lt;class &#39;<a href="#WeekOfYear">WeekOfYear</a>&#39;&gt;, &#39;WHEN&#39;: &lt;class &#39;<a href="#When">When</a>&#39;&gt;, &#39;X_M_L_TABLE&#39;: &lt;class &#39;<a href="#XMLTable">XMLTable</a>&#39;&gt;, &#39;XOR&#39;: &lt;class &#39;<a href="#Xor">Xor</a>&#39;&gt;, &#39;YEAR&#39;: &lt;class &#39;<a href="#Year">Year</a>&#39;&gt;}</span>
</div>
@@ -79891,52 +84605,52 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#maybe_parse"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="maybe_parse-5326"><a href="#maybe_parse-5326"><span class="linenos">5326</span></a><span class="k">def</span> <span class="nf">maybe_parse</span><span class="p">(</span>
-</span><span id="maybe_parse-5327"><a href="#maybe_parse-5327"><span class="linenos">5327</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-5328"><a href="#maybe_parse-5328"><span class="linenos">5328</span></a> <span class="o">*</span><span class="p">,</span>
-</span><span id="maybe_parse-5329"><a href="#maybe_parse-5329"><span class="linenos">5329</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-5330"><a href="#maybe_parse-5330"><span class="linenos">5330</span></a> <span class="n">dialect</span><span 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-5331"><a href="#maybe_parse-5331"><span class="linenos">5331</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-5332"><a href="#maybe_parse-5332"><span class="linenos">5332</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-5333"><a href="#maybe_parse-5333"><span class="linenos">5333</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="maybe_parse-5334"><a href="#maybe_parse-5334"><span class="linenos">5334</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-5335"><a href="#maybe_parse-5335"><span class="linenos">5335</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-5336"><a href="#maybe_parse-5336"><span class="linenos">5336</span></a>
-</span><span id="maybe_parse-5337"><a href="#maybe_parse-5337"><span class="linenos">5337</span></a><span class="sd"> Example:</span>
-</span><span id="maybe_parse-5338"><a href="#maybe_parse-5338"><span class="linenos">5338</span></a><span class="sd"> &gt;&gt;&gt; maybe_parse(&quot;1&quot;)</span>
-</span><span id="maybe_parse-5339"><a href="#maybe_parse-5339"><span class="linenos">5339</span></a><span class="sd"> (LITERAL this: 1, is_string: False)</span>
-</span><span id="maybe_parse-5340"><a href="#maybe_parse-5340"><span class="linenos">5340</span></a><span class="sd"> &gt;&gt;&gt; maybe_parse(to_identifier(&quot;x&quot;))</span>
-</span><span id="maybe_parse-5341"><a href="#maybe_parse-5341"><span class="linenos">5341</span></a><span class="sd"> (IDENTIFIER this: x, quoted: False)</span>
-</span><span id="maybe_parse-5342"><a href="#maybe_parse-5342"><span class="linenos">5342</span></a>
-</span><span id="maybe_parse-5343"><a href="#maybe_parse-5343"><span class="linenos">5343</span></a><span class="sd"> Args:</span>
-</span><span id="maybe_parse-5344"><a href="#maybe_parse-5344"><span class="linenos">5344</span></a><span class="sd"> sql_or_expression: the SQL code string or an expression</span>
-</span><span id="maybe_parse-5345"><a href="#maybe_parse-5345"><span class="linenos">5345</span></a><span class="sd"> into: the SQLGlot Expression to parse into</span>
-</span><span id="maybe_parse-5346"><a href="#maybe_parse-5346"><span class="linenos">5346</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-5347"><a href="#maybe_parse-5347"><span class="linenos">5347</span></a><span class="sd"> input expression is a SQL string).</span>
-</span><span id="maybe_parse-5348"><a href="#maybe_parse-5348"><span class="linenos">5348</span></a><span class="sd"> prefix: a string to prefix the sql with before it gets parsed</span>
-</span><span id="maybe_parse-5349"><a href="#maybe_parse-5349"><span class="linenos">5349</span></a><span class="sd"> (automatically includes a space)</span>
-</span><span id="maybe_parse-5350"><a href="#maybe_parse-5350"><span class="linenos">5350</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
-</span><span id="maybe_parse-5351"><a href="#maybe_parse-5351"><span class="linenos">5351</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-5352"><a href="#maybe_parse-5352"><span class="linenos">5352</span></a><span class="sd"> that an input expression is a SQL string).</span>
-</span><span id="maybe_parse-5353"><a href="#maybe_parse-5353"><span class="linenos">5353</span></a>
-</span><span id="maybe_parse-5354"><a href="#maybe_parse-5354"><span class="linenos">5354</span></a><span class="sd"> Returns:</span>
-</span><span id="maybe_parse-5355"><a href="#maybe_parse-5355"><span class="linenos">5355</span></a><span class="sd"> Expression: the parsed or given expression.</span>
-</span><span id="maybe_parse-5356"><a href="#maybe_parse-5356"><span class="linenos">5356</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="maybe_parse-5357"><a href="#maybe_parse-5357"><span class="linenos">5357</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-5358"><a href="#maybe_parse-5358"><span class="linenos">5358</span></a> <span class="k">if</span> <span class="n">copy</span><span class="p">:</span>
-</span><span id="maybe_parse-5359"><a href="#maybe_parse-5359"><span class="linenos">5359</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-5360"><a href="#maybe_parse-5360"><span class="linenos">5360</span></a> <span class="k">return</span> <span class="n">sql_or_expression</span>
-</span><span id="maybe_parse-5361"><a href="#maybe_parse-5361"><span class="linenos">5361</span></a>
-</span><span id="maybe_parse-5362"><a href="#maybe_parse-5362"><span class="linenos">5362</span></a> <span class="k">if</span> <span class="n">sql_or_expression</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="maybe_parse-5363"><a href="#maybe_parse-5363"><span class="linenos">5363</span></a> <span class="k">raise</span> <span class="n">ParseError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;SQL cannot be None&quot;</span><span class="p">)</span>
-</span><span id="maybe_parse-5364"><a href="#maybe_parse-5364"><span class="linenos">5364</span></a>
-</span><span id="maybe_parse-5365"><a href="#maybe_parse-5365"><span class="linenos">5365</span></a> <span class="kn">import</span> <span class="nn">sqlglot</span>
-</span><span id="maybe_parse-5366"><a href="#maybe_parse-5366"><span class="linenos">5366</span></a>
-</span><span id="maybe_parse-5367"><a href="#maybe_parse-5367"><span class="linenos">5367</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-5368"><a href="#maybe_parse-5368"><span class="linenos">5368</span></a> <span class="k">if</span> <span class="n">prefix</span><span class="p">:</span>
-</span><span id="maybe_parse-5369"><a href="#maybe_parse-5369"><span class="linenos">5369</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-5370"><a href="#maybe_parse-5370"><span class="linenos">5370</span></a>
-</span><span id="maybe_parse-5371"><a href="#maybe_parse-5371"><span class="linenos">5371</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-5440"><a href="#maybe_parse-5440"><span class="linenos">5440</span></a><span class="k">def</span> <span class="nf">maybe_parse</span><span class="p">(</span>
+</span><span id="maybe_parse-5441"><a href="#maybe_parse-5441"><span class="linenos">5441</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-5442"><a href="#maybe_parse-5442"><span class="linenos">5442</span></a> <span class="o">*</span><span class="p">,</span>
+</span><span id="maybe_parse-5443"><a href="#maybe_parse-5443"><span class="linenos">5443</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-5444"><a href="#maybe_parse-5444"><span class="linenos">5444</span></a> <span class="n">dialect</span><span 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-5445"><a href="#maybe_parse-5445"><span class="linenos">5445</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-5446"><a href="#maybe_parse-5446"><span class="linenos">5446</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-5447"><a href="#maybe_parse-5447"><span class="linenos">5447</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="maybe_parse-5448"><a href="#maybe_parse-5448"><span class="linenos">5448</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-5449"><a href="#maybe_parse-5449"><span class="linenos">5449</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-5450"><a href="#maybe_parse-5450"><span class="linenos">5450</span></a>
+</span><span id="maybe_parse-5451"><a href="#maybe_parse-5451"><span class="linenos">5451</span></a><span class="sd"> Example:</span>
+</span><span id="maybe_parse-5452"><a href="#maybe_parse-5452"><span class="linenos">5452</span></a><span class="sd"> &gt;&gt;&gt; maybe_parse(&quot;1&quot;)</span>
+</span><span id="maybe_parse-5453"><a href="#maybe_parse-5453"><span class="linenos">5453</span></a><span class="sd"> Literal(this=1, is_string=False)</span>
+</span><span id="maybe_parse-5454"><a href="#maybe_parse-5454"><span class="linenos">5454</span></a><span class="sd"> &gt;&gt;&gt; maybe_parse(to_identifier(&quot;x&quot;))</span>
+</span><span id="maybe_parse-5455"><a href="#maybe_parse-5455"><span class="linenos">5455</span></a><span class="sd"> Identifier(this=x, quoted=False)</span>
+</span><span id="maybe_parse-5456"><a href="#maybe_parse-5456"><span class="linenos">5456</span></a>
+</span><span id="maybe_parse-5457"><a href="#maybe_parse-5457"><span class="linenos">5457</span></a><span class="sd"> Args:</span>
+</span><span id="maybe_parse-5458"><a href="#maybe_parse-5458"><span class="linenos">5458</span></a><span class="sd"> sql_or_expression: the SQL code string or an expression</span>
+</span><span id="maybe_parse-5459"><a href="#maybe_parse-5459"><span class="linenos">5459</span></a><span class="sd"> into: the SQLGlot Expression to parse into</span>
+</span><span id="maybe_parse-5460"><a href="#maybe_parse-5460"><span class="linenos">5460</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-5461"><a href="#maybe_parse-5461"><span class="linenos">5461</span></a><span class="sd"> input expression is a SQL string).</span>
+</span><span id="maybe_parse-5462"><a href="#maybe_parse-5462"><span class="linenos">5462</span></a><span class="sd"> prefix: a string to prefix the sql with before it gets parsed</span>
+</span><span id="maybe_parse-5463"><a href="#maybe_parse-5463"><span class="linenos">5463</span></a><span class="sd"> (automatically includes a space)</span>
+</span><span id="maybe_parse-5464"><a href="#maybe_parse-5464"><span class="linenos">5464</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
+</span><span id="maybe_parse-5465"><a href="#maybe_parse-5465"><span class="linenos">5465</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-5466"><a href="#maybe_parse-5466"><span class="linenos">5466</span></a><span class="sd"> that an input expression is a SQL string).</span>
+</span><span id="maybe_parse-5467"><a href="#maybe_parse-5467"><span class="linenos">5467</span></a>
+</span><span id="maybe_parse-5468"><a href="#maybe_parse-5468"><span class="linenos">5468</span></a><span class="sd"> Returns:</span>
+</span><span id="maybe_parse-5469"><a href="#maybe_parse-5469"><span class="linenos">5469</span></a><span class="sd"> Expression: the parsed or given expression.</span>
+</span><span id="maybe_parse-5470"><a href="#maybe_parse-5470"><span class="linenos">5470</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="maybe_parse-5471"><a href="#maybe_parse-5471"><span class="linenos">5471</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-5472"><a href="#maybe_parse-5472"><span class="linenos">5472</span></a> <span class="k">if</span> <span class="n">copy</span><span class="p">:</span>
+</span><span id="maybe_parse-5473"><a href="#maybe_parse-5473"><span class="linenos">5473</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-5474"><a href="#maybe_parse-5474"><span class="linenos">5474</span></a> <span class="k">return</span> <span class="n">sql_or_expression</span>
+</span><span id="maybe_parse-5475"><a href="#maybe_parse-5475"><span class="linenos">5475</span></a>
+</span><span id="maybe_parse-5476"><a href="#maybe_parse-5476"><span class="linenos">5476</span></a> <span class="k">if</span> <span class="n">sql_or_expression</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="maybe_parse-5477"><a href="#maybe_parse-5477"><span class="linenos">5477</span></a> <span class="k">raise</span> <span class="n">ParseError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;SQL cannot be None&quot;</span><span class="p">)</span>
+</span><span id="maybe_parse-5478"><a href="#maybe_parse-5478"><span class="linenos">5478</span></a>
+</span><span id="maybe_parse-5479"><a href="#maybe_parse-5479"><span class="linenos">5479</span></a> <span class="kn">import</span> <span class="nn">sqlglot</span>
+</span><span id="maybe_parse-5480"><a href="#maybe_parse-5480"><span class="linenos">5480</span></a>
+</span><span id="maybe_parse-5481"><a href="#maybe_parse-5481"><span class="linenos">5481</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-5482"><a href="#maybe_parse-5482"><span class="linenos">5482</span></a> <span class="k">if</span> <span class="n">prefix</span><span class="p">:</span>
+</span><span id="maybe_parse-5483"><a href="#maybe_parse-5483"><span class="linenos">5483</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-5484"><a href="#maybe_parse-5484"><span class="linenos">5484</span></a>
+</span><span id="maybe_parse-5485"><a href="#maybe_parse-5485"><span class="linenos">5485</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>
@@ -79947,9 +84661,9 @@ array<int> != array<float>.</p>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">maybe_parse</span><span class="p">(</span><span class="s2">&quot;1&quot;</span><span class="p">)</span>
-<span class="go">(LITERAL this: 1, is_string: False)</span>
+<span class="go">Literal(this=1, is_string=False)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">to_identifier</span><span class="p">(</span><span class="s2">&quot;x&quot;</span><span class="p">))</span>
-<span class="go">(IDENTIFIER this: x, quoted: False)</span>
+<span class="go">Identifier(this=x, quoted=False)</span>
</code></pre>
</div>
</blockquote>
@@ -79988,8 +84702,8 @@ that an input expression is a SQL string).</li>
</div>
<a class="headerlink" href="#maybe_copy"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="maybe_copy-5384"><a href="#maybe_copy-5384"><span class="linenos">5384</span></a><span class="k">def</span> <span class="nf">maybe_copy</span><span class="p">(</span><span class="n">instance</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
-</span><span id="maybe_copy-5385"><a href="#maybe_copy-5385"><span class="linenos">5385</span></a> <span class="k">return</span> <span class="n">instance</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">copy</span> <span class="ow">and</span> <span class="n">instance</span> <span class="k">else</span> <span class="n">instance</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="maybe_copy-5498"><a href="#maybe_copy-5498"><span class="linenos">5498</span></a><span class="k">def</span> <span class="nf">maybe_copy</span><span class="p">(</span><span class="n">instance</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
+</span><span id="maybe_copy-5499"><a href="#maybe_copy-5499"><span class="linenos">5499</span></a> <span class="k">return</span> <span class="n">instance</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">copy</span> <span class="ow">and</span> <span class="n">instance</span> <span class="k">else</span> <span class="n">instance</span>
</span></pre></div>
@@ -80007,38 +84721,38 @@ that an input expression is a SQL string).</li>
</div>
<a class="headerlink" href="#union"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="union-5566"><a href="#union-5566"><span class="linenos">5566</span></a><span class="k">def</span> <span class="nf">union</span><span class="p">(</span>
-</span><span id="union-5567"><a href="#union-5567"><span class="linenos">5567</span></a> <span class="n">left</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="union-5568"><a href="#union-5568"><span class="linenos">5568</span></a> <span class="n">right</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="union-5569"><a href="#union-5569"><span class="linenos">5569</span></a> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="union-5570"><a href="#union-5570"><span class="linenos">5570</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="union-5571"><a href="#union-5571"><span class="linenos">5571</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-5572"><a href="#union-5572"><span class="linenos">5572</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="union-5573"><a href="#union-5573"><span class="linenos">5573</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Union</span><span class="p">:</span>
-</span><span id="union-5574"><a href="#union-5574"><span class="linenos">5574</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="union-5575"><a href="#union-5575"><span class="linenos">5575</span></a><span class="sd"> Initializes a syntax tree from one UNION expression.</span>
-</span><span id="union-5576"><a href="#union-5576"><span class="linenos">5576</span></a>
-</span><span id="union-5577"><a href="#union-5577"><span class="linenos">5577</span></a><span class="sd"> Example:</span>
-</span><span id="union-5578"><a href="#union-5578"><span class="linenos">5578</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-5579"><a href="#union-5579"><span class="linenos">5579</span></a><span class="sd"> &#39;SELECT * FROM foo UNION SELECT * FROM bla&#39;</span>
-</span><span id="union-5580"><a href="#union-5580"><span class="linenos">5580</span></a>
-</span><span id="union-5581"><a href="#union-5581"><span class="linenos">5581</span></a><span class="sd"> Args:</span>
-</span><span id="union-5582"><a href="#union-5582"><span class="linenos">5582</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
-</span><span id="union-5583"><a href="#union-5583"><span class="linenos">5583</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="union-5584"><a href="#union-5584"><span class="linenos">5584</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
-</span><span id="union-5585"><a href="#union-5585"><span class="linenos">5585</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="union-5586"><a href="#union-5586"><span class="linenos">5586</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
-</span><span id="union-5587"><a href="#union-5587"><span class="linenos">5587</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="union-5588"><a href="#union-5588"><span class="linenos">5588</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
-</span><span id="union-5589"><a href="#union-5589"><span class="linenos">5589</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="union-5590"><a href="#union-5590"><span class="linenos">5590</span></a>
-</span><span id="union-5591"><a href="#union-5591"><span class="linenos">5591</span></a><span class="sd"> Returns:</span>
-</span><span id="union-5592"><a href="#union-5592"><span class="linenos">5592</span></a><span class="sd"> The new Union instance.</span>
-</span><span id="union-5593"><a href="#union-5593"><span class="linenos">5593</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="union-5594"><a href="#union-5594"><span class="linenos">5594</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="union-5595"><a href="#union-5595"><span class="linenos">5595</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="union-5596"><a href="#union-5596"><span class="linenos">5596</span></a>
-</span><span id="union-5597"><a href="#union-5597"><span class="linenos">5597</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-5713"><a href="#union-5713"><span class="linenos">5713</span></a><span class="k">def</span> <span class="nf">union</span><span class="p">(</span>
+</span><span id="union-5714"><a href="#union-5714"><span class="linenos">5714</span></a> <span class="n">left</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="union-5715"><a href="#union-5715"><span class="linenos">5715</span></a> <span class="n">right</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="union-5716"><a href="#union-5716"><span class="linenos">5716</span></a> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="union-5717"><a href="#union-5717"><span class="linenos">5717</span></a> <span class="n">dialect</span><span 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-5718"><a href="#union-5718"><span class="linenos">5718</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-5719"><a href="#union-5719"><span class="linenos">5719</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="union-5720"><a href="#union-5720"><span class="linenos">5720</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Union</span><span class="p">:</span>
+</span><span id="union-5721"><a href="#union-5721"><span class="linenos">5721</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="union-5722"><a href="#union-5722"><span class="linenos">5722</span></a><span class="sd"> Initializes a syntax tree from one UNION expression.</span>
+</span><span id="union-5723"><a href="#union-5723"><span class="linenos">5723</span></a>
+</span><span id="union-5724"><a href="#union-5724"><span class="linenos">5724</span></a><span class="sd"> Example:</span>
+</span><span id="union-5725"><a href="#union-5725"><span class="linenos">5725</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-5726"><a href="#union-5726"><span class="linenos">5726</span></a><span class="sd"> &#39;SELECT * FROM foo UNION SELECT * FROM bla&#39;</span>
+</span><span id="union-5727"><a href="#union-5727"><span class="linenos">5727</span></a>
+</span><span id="union-5728"><a href="#union-5728"><span class="linenos">5728</span></a><span class="sd"> Args:</span>
+</span><span id="union-5729"><a href="#union-5729"><span class="linenos">5729</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
+</span><span id="union-5730"><a href="#union-5730"><span class="linenos">5730</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="union-5731"><a href="#union-5731"><span class="linenos">5731</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
+</span><span id="union-5732"><a href="#union-5732"><span class="linenos">5732</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="union-5733"><a href="#union-5733"><span class="linenos">5733</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
+</span><span id="union-5734"><a href="#union-5734"><span class="linenos">5734</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="union-5735"><a href="#union-5735"><span class="linenos">5735</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
+</span><span id="union-5736"><a href="#union-5736"><span class="linenos">5736</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="union-5737"><a href="#union-5737"><span class="linenos">5737</span></a>
+</span><span id="union-5738"><a href="#union-5738"><span class="linenos">5738</span></a><span class="sd"> Returns:</span>
+</span><span id="union-5739"><a href="#union-5739"><span class="linenos">5739</span></a><span class="sd"> The new Union instance.</span>
+</span><span id="union-5740"><a href="#union-5740"><span class="linenos">5740</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="union-5741"><a href="#union-5741"><span class="linenos">5741</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="union-5742"><a href="#union-5742"><span class="linenos">5742</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="union-5743"><a href="#union-5743"><span class="linenos">5743</span></a>
+</span><span id="union-5744"><a href="#union-5744"><span class="linenos">5744</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>
@@ -80087,38 +84801,38 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#intersect"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="intersect-5600"><a href="#intersect-5600"><span class="linenos">5600</span></a><span class="k">def</span> <span class="nf">intersect</span><span class="p">(</span>
-</span><span id="intersect-5601"><a href="#intersect-5601"><span class="linenos">5601</span></a> <span class="n">left</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="intersect-5602"><a href="#intersect-5602"><span class="linenos">5602</span></a> <span class="n">right</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="intersect-5603"><a href="#intersect-5603"><span class="linenos">5603</span></a> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="intersect-5604"><a href="#intersect-5604"><span class="linenos">5604</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="intersect-5605"><a href="#intersect-5605"><span class="linenos">5605</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="intersect-5606"><a href="#intersect-5606"><span class="linenos">5606</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="intersect-5607"><a href="#intersect-5607"><span class="linenos">5607</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Intersect</span><span class="p">:</span>
-</span><span id="intersect-5608"><a href="#intersect-5608"><span class="linenos">5608</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="intersect-5609"><a href="#intersect-5609"><span class="linenos">5609</span></a><span class="sd"> Initializes a syntax tree from one INTERSECT expression.</span>
-</span><span id="intersect-5610"><a href="#intersect-5610"><span class="linenos">5610</span></a>
-</span><span id="intersect-5611"><a href="#intersect-5611"><span class="linenos">5611</span></a><span class="sd"> Example:</span>
-</span><span id="intersect-5612"><a href="#intersect-5612"><span class="linenos">5612</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-5613"><a href="#intersect-5613"><span class="linenos">5613</span></a><span class="sd"> &#39;SELECT * FROM foo INTERSECT SELECT * FROM bla&#39;</span>
-</span><span id="intersect-5614"><a href="#intersect-5614"><span class="linenos">5614</span></a>
-</span><span id="intersect-5615"><a href="#intersect-5615"><span class="linenos">5615</span></a><span class="sd"> Args:</span>
-</span><span id="intersect-5616"><a href="#intersect-5616"><span class="linenos">5616</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
-</span><span id="intersect-5617"><a href="#intersect-5617"><span class="linenos">5617</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="intersect-5618"><a href="#intersect-5618"><span class="linenos">5618</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
-</span><span id="intersect-5619"><a href="#intersect-5619"><span class="linenos">5619</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="intersect-5620"><a href="#intersect-5620"><span class="linenos">5620</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
-</span><span id="intersect-5621"><a href="#intersect-5621"><span class="linenos">5621</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="intersect-5622"><a href="#intersect-5622"><span class="linenos">5622</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
-</span><span id="intersect-5623"><a href="#intersect-5623"><span class="linenos">5623</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="intersect-5624"><a href="#intersect-5624"><span class="linenos">5624</span></a>
-</span><span id="intersect-5625"><a href="#intersect-5625"><span class="linenos">5625</span></a><span class="sd"> Returns:</span>
-</span><span id="intersect-5626"><a href="#intersect-5626"><span class="linenos">5626</span></a><span class="sd"> The new Intersect instance.</span>
-</span><span id="intersect-5627"><a href="#intersect-5627"><span class="linenos">5627</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="intersect-5628"><a href="#intersect-5628"><span class="linenos">5628</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="intersect-5629"><a href="#intersect-5629"><span class="linenos">5629</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="intersect-5630"><a href="#intersect-5630"><span class="linenos">5630</span></a>
-</span><span id="intersect-5631"><a href="#intersect-5631"><span class="linenos">5631</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-5747"><a href="#intersect-5747"><span class="linenos">5747</span></a><span class="k">def</span> <span class="nf">intersect</span><span class="p">(</span>
+</span><span id="intersect-5748"><a href="#intersect-5748"><span class="linenos">5748</span></a> <span class="n">left</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="intersect-5749"><a href="#intersect-5749"><span class="linenos">5749</span></a> <span class="n">right</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="intersect-5750"><a href="#intersect-5750"><span class="linenos">5750</span></a> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="intersect-5751"><a href="#intersect-5751"><span class="linenos">5751</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="intersect-5752"><a href="#intersect-5752"><span class="linenos">5752</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="intersect-5753"><a href="#intersect-5753"><span class="linenos">5753</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="intersect-5754"><a href="#intersect-5754"><span class="linenos">5754</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Intersect</span><span class="p">:</span>
+</span><span id="intersect-5755"><a href="#intersect-5755"><span class="linenos">5755</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="intersect-5756"><a href="#intersect-5756"><span class="linenos">5756</span></a><span class="sd"> Initializes a syntax tree from one INTERSECT expression.</span>
+</span><span id="intersect-5757"><a href="#intersect-5757"><span class="linenos">5757</span></a>
+</span><span id="intersect-5758"><a href="#intersect-5758"><span class="linenos">5758</span></a><span class="sd"> Example:</span>
+</span><span id="intersect-5759"><a href="#intersect-5759"><span class="linenos">5759</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-5760"><a href="#intersect-5760"><span class="linenos">5760</span></a><span class="sd"> &#39;SELECT * FROM foo INTERSECT SELECT * FROM bla&#39;</span>
+</span><span id="intersect-5761"><a href="#intersect-5761"><span class="linenos">5761</span></a>
+</span><span id="intersect-5762"><a href="#intersect-5762"><span class="linenos">5762</span></a><span class="sd"> Args:</span>
+</span><span id="intersect-5763"><a href="#intersect-5763"><span class="linenos">5763</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
+</span><span id="intersect-5764"><a href="#intersect-5764"><span class="linenos">5764</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="intersect-5765"><a href="#intersect-5765"><span class="linenos">5765</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
+</span><span id="intersect-5766"><a href="#intersect-5766"><span class="linenos">5766</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="intersect-5767"><a href="#intersect-5767"><span class="linenos">5767</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
+</span><span id="intersect-5768"><a href="#intersect-5768"><span class="linenos">5768</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="intersect-5769"><a href="#intersect-5769"><span class="linenos">5769</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
+</span><span id="intersect-5770"><a href="#intersect-5770"><span class="linenos">5770</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="intersect-5771"><a href="#intersect-5771"><span class="linenos">5771</span></a>
+</span><span id="intersect-5772"><a href="#intersect-5772"><span class="linenos">5772</span></a><span class="sd"> Returns:</span>
+</span><span id="intersect-5773"><a href="#intersect-5773"><span class="linenos">5773</span></a><span class="sd"> The new Intersect instance.</span>
+</span><span id="intersect-5774"><a href="#intersect-5774"><span class="linenos">5774</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="intersect-5775"><a href="#intersect-5775"><span class="linenos">5775</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="intersect-5776"><a href="#intersect-5776"><span class="linenos">5776</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="intersect-5777"><a href="#intersect-5777"><span class="linenos">5777</span></a>
+</span><span id="intersect-5778"><a href="#intersect-5778"><span class="linenos">5778</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>
@@ -80167,38 +84881,38 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#except_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="except_-5634"><a href="#except_-5634"><span class="linenos">5634</span></a><span class="k">def</span> <span class="nf">except_</span><span class="p">(</span>
-</span><span id="except_-5635"><a href="#except_-5635"><span class="linenos">5635</span></a> <span class="n">left</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="except_-5636"><a href="#except_-5636"><span class="linenos">5636</span></a> <span class="n">right</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="except_-5637"><a href="#except_-5637"><span class="linenos">5637</span></a> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="except_-5638"><a href="#except_-5638"><span class="linenos">5638</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="except_-5639"><a href="#except_-5639"><span class="linenos">5639</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="except_-5640"><a href="#except_-5640"><span class="linenos">5640</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="except_-5641"><a href="#except_-5641"><span class="linenos">5641</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Except</span><span class="p">:</span>
-</span><span id="except_-5642"><a href="#except_-5642"><span class="linenos">5642</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="except_-5643"><a href="#except_-5643"><span class="linenos">5643</span></a><span class="sd"> Initializes a syntax tree from one EXCEPT expression.</span>
-</span><span id="except_-5644"><a href="#except_-5644"><span class="linenos">5644</span></a>
-</span><span id="except_-5645"><a href="#except_-5645"><span class="linenos">5645</span></a><span class="sd"> Example:</span>
-</span><span id="except_-5646"><a href="#except_-5646"><span class="linenos">5646</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_-5647"><a href="#except_-5647"><span class="linenos">5647</span></a><span class="sd"> &#39;SELECT * FROM foo EXCEPT SELECT * FROM bla&#39;</span>
-</span><span id="except_-5648"><a href="#except_-5648"><span class="linenos">5648</span></a>
-</span><span id="except_-5649"><a href="#except_-5649"><span class="linenos">5649</span></a><span class="sd"> Args:</span>
-</span><span id="except_-5650"><a href="#except_-5650"><span class="linenos">5650</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
-</span><span id="except_-5651"><a href="#except_-5651"><span class="linenos">5651</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="except_-5652"><a href="#except_-5652"><span class="linenos">5652</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
-</span><span id="except_-5653"><a href="#except_-5653"><span class="linenos">5653</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="except_-5654"><a href="#except_-5654"><span class="linenos">5654</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
-</span><span id="except_-5655"><a href="#except_-5655"><span class="linenos">5655</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="except_-5656"><a href="#except_-5656"><span class="linenos">5656</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
-</span><span id="except_-5657"><a href="#except_-5657"><span class="linenos">5657</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="except_-5658"><a href="#except_-5658"><span class="linenos">5658</span></a>
-</span><span id="except_-5659"><a href="#except_-5659"><span class="linenos">5659</span></a><span class="sd"> Returns:</span>
-</span><span id="except_-5660"><a href="#except_-5660"><span class="linenos">5660</span></a><span class="sd"> The new Except instance.</span>
-</span><span id="except_-5661"><a href="#except_-5661"><span class="linenos">5661</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="except_-5662"><a href="#except_-5662"><span class="linenos">5662</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="except_-5663"><a href="#except_-5663"><span class="linenos">5663</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="except_-5664"><a href="#except_-5664"><span class="linenos">5664</span></a>
-</span><span id="except_-5665"><a href="#except_-5665"><span class="linenos">5665</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_-5781"><a href="#except_-5781"><span class="linenos">5781</span></a><span class="k">def</span> <span class="nf">except_</span><span class="p">(</span>
+</span><span id="except_-5782"><a href="#except_-5782"><span class="linenos">5782</span></a> <span class="n">left</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="except_-5783"><a href="#except_-5783"><span class="linenos">5783</span></a> <span class="n">right</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="except_-5784"><a href="#except_-5784"><span class="linenos">5784</span></a> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="except_-5785"><a href="#except_-5785"><span class="linenos">5785</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="except_-5786"><a href="#except_-5786"><span class="linenos">5786</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="except_-5787"><a href="#except_-5787"><span class="linenos">5787</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="except_-5788"><a href="#except_-5788"><span class="linenos">5788</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Except</span><span class="p">:</span>
+</span><span id="except_-5789"><a href="#except_-5789"><span class="linenos">5789</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="except_-5790"><a href="#except_-5790"><span class="linenos">5790</span></a><span class="sd"> Initializes a syntax tree from one EXCEPT expression.</span>
+</span><span id="except_-5791"><a href="#except_-5791"><span class="linenos">5791</span></a>
+</span><span id="except_-5792"><a href="#except_-5792"><span class="linenos">5792</span></a><span class="sd"> Example:</span>
+</span><span id="except_-5793"><a href="#except_-5793"><span class="linenos">5793</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_-5794"><a href="#except_-5794"><span class="linenos">5794</span></a><span class="sd"> &#39;SELECT * FROM foo EXCEPT SELECT * FROM bla&#39;</span>
+</span><span id="except_-5795"><a href="#except_-5795"><span class="linenos">5795</span></a>
+</span><span id="except_-5796"><a href="#except_-5796"><span class="linenos">5796</span></a><span class="sd"> Args:</span>
+</span><span id="except_-5797"><a href="#except_-5797"><span class="linenos">5797</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
+</span><span id="except_-5798"><a href="#except_-5798"><span class="linenos">5798</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="except_-5799"><a href="#except_-5799"><span class="linenos">5799</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
+</span><span id="except_-5800"><a href="#except_-5800"><span class="linenos">5800</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="except_-5801"><a href="#except_-5801"><span class="linenos">5801</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
+</span><span id="except_-5802"><a href="#except_-5802"><span class="linenos">5802</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="except_-5803"><a href="#except_-5803"><span class="linenos">5803</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
+</span><span id="except_-5804"><a href="#except_-5804"><span class="linenos">5804</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="except_-5805"><a href="#except_-5805"><span class="linenos">5805</span></a>
+</span><span id="except_-5806"><a href="#except_-5806"><span class="linenos">5806</span></a><span class="sd"> Returns:</span>
+</span><span id="except_-5807"><a href="#except_-5807"><span class="linenos">5807</span></a><span class="sd"> The new Except instance.</span>
+</span><span id="except_-5808"><a href="#except_-5808"><span class="linenos">5808</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="except_-5809"><a href="#except_-5809"><span class="linenos">5809</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="except_-5810"><a href="#except_-5810"><span class="linenos">5810</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="except_-5811"><a href="#except_-5811"><span class="linenos">5811</span></a>
+</span><span id="except_-5812"><a href="#except_-5812"><span class="linenos">5812</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>
@@ -80247,26 +84961,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-5668"><a href="#select-5668"><span class="linenos">5668</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-5669"><a href="#select-5669"><span class="linenos">5669</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="select-5670"><a href="#select-5670"><span class="linenos">5670</span></a><span class="sd"> Initializes a syntax tree from one or multiple SELECT expressions.</span>
-</span><span id="select-5671"><a href="#select-5671"><span class="linenos">5671</span></a>
-</span><span id="select-5672"><a href="#select-5672"><span class="linenos">5672</span></a><span class="sd"> Example:</span>
-</span><span id="select-5673"><a href="#select-5673"><span class="linenos">5673</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-5674"><a href="#select-5674"><span class="linenos">5674</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
-</span><span id="select-5675"><a href="#select-5675"><span class="linenos">5675</span></a>
-</span><span id="select-5676"><a href="#select-5676"><span class="linenos">5676</span></a><span class="sd"> Args:</span>
-</span><span id="select-5677"><a href="#select-5677"><span class="linenos">5677</span></a><span class="sd"> *expressions: the SQL code string to parse as the expressions of a</span>
-</span><span id="select-5678"><a href="#select-5678"><span class="linenos">5678</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
-</span><span id="select-5679"><a href="#select-5679"><span class="linenos">5679</span></a><span class="sd"> dialect: the dialect used to parse the input expressions (in the case that an</span>
-</span><span id="select-5680"><a href="#select-5680"><span class="linenos">5680</span></a><span class="sd"> input expression is a SQL string).</span>
-</span><span id="select-5681"><a href="#select-5681"><span class="linenos">5681</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
-</span><span id="select-5682"><a href="#select-5682"><span class="linenos">5682</span></a><span class="sd"> that an input expression is a SQL string).</span>
-</span><span id="select-5683"><a href="#select-5683"><span class="linenos">5683</span></a>
-</span><span id="select-5684"><a href="#select-5684"><span class="linenos">5684</span></a><span class="sd"> Returns:</span>
-</span><span id="select-5685"><a href="#select-5685"><span class="linenos">5685</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
-</span><span id="select-5686"><a href="#select-5686"><span class="linenos">5686</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="select-5687"><a href="#select-5687"><span class="linenos">5687</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-5815"><a href="#select-5815"><span class="linenos">5815</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-5816"><a href="#select-5816"><span class="linenos">5816</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="select-5817"><a href="#select-5817"><span class="linenos">5817</span></a><span class="sd"> Initializes a syntax tree from one or multiple SELECT expressions.</span>
+</span><span id="select-5818"><a href="#select-5818"><span class="linenos">5818</span></a>
+</span><span id="select-5819"><a href="#select-5819"><span class="linenos">5819</span></a><span class="sd"> Example:</span>
+</span><span id="select-5820"><a href="#select-5820"><span class="linenos">5820</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-5821"><a href="#select-5821"><span class="linenos">5821</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
+</span><span id="select-5822"><a href="#select-5822"><span class="linenos">5822</span></a>
+</span><span id="select-5823"><a href="#select-5823"><span class="linenos">5823</span></a><span class="sd"> Args:</span>
+</span><span id="select-5824"><a href="#select-5824"><span class="linenos">5824</span></a><span class="sd"> *expressions: the SQL code string to parse as the expressions of a</span>
+</span><span id="select-5825"><a href="#select-5825"><span class="linenos">5825</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
+</span><span id="select-5826"><a href="#select-5826"><span class="linenos">5826</span></a><span class="sd"> dialect: the dialect used to parse the input expressions (in the case that an</span>
+</span><span id="select-5827"><a href="#select-5827"><span class="linenos">5827</span></a><span class="sd"> input expression is a SQL string).</span>
+</span><span id="select-5828"><a href="#select-5828"><span class="linenos">5828</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
+</span><span id="select-5829"><a href="#select-5829"><span class="linenos">5829</span></a><span class="sd"> that an input expression is a SQL string).</span>
+</span><span id="select-5830"><a href="#select-5830"><span class="linenos">5830</span></a>
+</span><span id="select-5831"><a href="#select-5831"><span class="linenos">5831</span></a><span class="sd"> Returns:</span>
+</span><span id="select-5832"><a href="#select-5832"><span class="linenos">5832</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
+</span><span id="select-5833"><a href="#select-5833"><span class="linenos">5833</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="select-5834"><a href="#select-5834"><span class="linenos">5834</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>
@@ -80313,26 +85027,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_-5690"><a href="#from_-5690"><span class="linenos">5690</span></a><span class="k">def</span> <span class="nf">from_</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="from_-5691"><a href="#from_-5691"><span class="linenos">5691</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="from_-5692"><a href="#from_-5692"><span class="linenos">5692</span></a><span class="sd"> Initializes a syntax tree from a FROM expression.</span>
-</span><span id="from_-5693"><a href="#from_-5693"><span class="linenos">5693</span></a>
-</span><span id="from_-5694"><a href="#from_-5694"><span class="linenos">5694</span></a><span class="sd"> Example:</span>
-</span><span id="from_-5695"><a href="#from_-5695"><span class="linenos">5695</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_-5696"><a href="#from_-5696"><span class="linenos">5696</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
-</span><span id="from_-5697"><a href="#from_-5697"><span class="linenos">5697</span></a>
-</span><span id="from_-5698"><a href="#from_-5698"><span class="linenos">5698</span></a><span class="sd"> Args:</span>
-</span><span id="from_-5699"><a href="#from_-5699"><span class="linenos">5699</span></a><span class="sd"> *expression: the SQL code string to parse as the FROM expressions of a</span>
-</span><span id="from_-5700"><a href="#from_-5700"><span class="linenos">5700</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
-</span><span id="from_-5701"><a href="#from_-5701"><span class="linenos">5701</span></a><span class="sd"> dialect: the dialect used to parse the input expression (in the case that the</span>
-</span><span id="from_-5702"><a href="#from_-5702"><span class="linenos">5702</span></a><span class="sd"> input expression is a SQL string).</span>
-</span><span id="from_-5703"><a href="#from_-5703"><span class="linenos">5703</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
-</span><span id="from_-5704"><a href="#from_-5704"><span class="linenos">5704</span></a><span class="sd"> that the input expression is a SQL string).</span>
-</span><span id="from_-5705"><a href="#from_-5705"><span class="linenos">5705</span></a>
-</span><span id="from_-5706"><a href="#from_-5706"><span class="linenos">5706</span></a><span class="sd"> Returns:</span>
-</span><span id="from_-5707"><a href="#from_-5707"><span class="linenos">5707</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
-</span><span id="from_-5708"><a href="#from_-5708"><span class="linenos">5708</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="from_-5709"><a href="#from_-5709"><span class="linenos">5709</span></a> <span class="k">return</span> <span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="from_-5837"><a href="#from_-5837"><span class="linenos">5837</span></a><span class="k">def</span> <span class="nf">from_</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="from_-5838"><a href="#from_-5838"><span class="linenos">5838</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="from_-5839"><a href="#from_-5839"><span class="linenos">5839</span></a><span class="sd"> Initializes a syntax tree from a FROM expression.</span>
+</span><span id="from_-5840"><a href="#from_-5840"><span class="linenos">5840</span></a>
+</span><span id="from_-5841"><a href="#from_-5841"><span class="linenos">5841</span></a><span class="sd"> Example:</span>
+</span><span id="from_-5842"><a href="#from_-5842"><span class="linenos">5842</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_-5843"><a href="#from_-5843"><span class="linenos">5843</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
+</span><span id="from_-5844"><a href="#from_-5844"><span class="linenos">5844</span></a>
+</span><span id="from_-5845"><a href="#from_-5845"><span class="linenos">5845</span></a><span class="sd"> Args:</span>
+</span><span id="from_-5846"><a href="#from_-5846"><span class="linenos">5846</span></a><span class="sd"> *expression: the SQL code string to parse as the FROM expressions of a</span>
+</span><span id="from_-5847"><a href="#from_-5847"><span class="linenos">5847</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
+</span><span id="from_-5848"><a href="#from_-5848"><span class="linenos">5848</span></a><span class="sd"> dialect: the dialect used to parse the input expression (in the case that the</span>
+</span><span id="from_-5849"><a href="#from_-5849"><span class="linenos">5849</span></a><span class="sd"> input expression is a SQL string).</span>
+</span><span id="from_-5850"><a href="#from_-5850"><span class="linenos">5850</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
+</span><span id="from_-5851"><a href="#from_-5851"><span class="linenos">5851</span></a><span class="sd"> that the input expression is a SQL string).</span>
+</span><span id="from_-5852"><a href="#from_-5852"><span class="linenos">5852</span></a>
+</span><span id="from_-5853"><a href="#from_-5853"><span class="linenos">5853</span></a><span class="sd"> Returns:</span>
+</span><span id="from_-5854"><a href="#from_-5854"><span class="linenos">5854</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
+</span><span id="from_-5855"><a href="#from_-5855"><span class="linenos">5855</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="from_-5856"><a href="#from_-5856"><span class="linenos">5856</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>
@@ -80379,53 +85093,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-5712"><a href="#update-5712"><span class="linenos">5712</span></a><span class="k">def</span> <span class="nf">update</span><span class="p">(</span>
-</span><span id="update-5713"><a href="#update-5713"><span class="linenos">5713</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-5714"><a href="#update-5714"><span class="linenos">5714</span></a> <span class="n">properties</span><span class="p">:</span> <span class="nb">dict</span><span class="p">,</span>
-</span><span id="update-5715"><a href="#update-5715"><span class="linenos">5715</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-5716"><a href="#update-5716"><span class="linenos">5716</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-5717"><a href="#update-5717"><span class="linenos">5717</span></a> <span class="n">dialect</span><span 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-5718"><a href="#update-5718"><span class="linenos">5718</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="update-5719"><a href="#update-5719"><span class="linenos">5719</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Update</span><span class="p">:</span>
-</span><span id="update-5720"><a href="#update-5720"><span class="linenos">5720</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="update-5721"><a href="#update-5721"><span class="linenos">5721</span></a><span class="sd"> Creates an update statement.</span>
-</span><span id="update-5722"><a href="#update-5722"><span class="linenos">5722</span></a>
-</span><span id="update-5723"><a href="#update-5723"><span class="linenos">5723</span></a><span class="sd"> Example:</span>
-</span><span id="update-5724"><a href="#update-5724"><span class="linenos">5724</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-5725"><a href="#update-5725"><span class="linenos">5725</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-5726"><a href="#update-5726"><span class="linenos">5726</span></a>
-</span><span id="update-5727"><a href="#update-5727"><span class="linenos">5727</span></a><span class="sd"> Args:</span>
-</span><span id="update-5728"><a href="#update-5728"><span class="linenos">5728</span></a><span class="sd"> *properties: dictionary of properties to set which are</span>
-</span><span id="update-5729"><a href="#update-5729"><span class="linenos">5729</span></a><span class="sd"> auto converted to sql objects eg None -&gt; NULL</span>
-</span><span id="update-5730"><a href="#update-5730"><span class="linenos">5730</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span>
-</span><span id="update-5731"><a href="#update-5731"><span class="linenos">5731</span></a><span class="sd"> from_: sql statement parsed into a FROM statement</span>
-</span><span id="update-5732"><a href="#update-5732"><span class="linenos">5732</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="update-5733"><a href="#update-5733"><span class="linenos">5733</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="update-5734"><a href="#update-5734"><span class="linenos">5734</span></a>
-</span><span id="update-5735"><a href="#update-5735"><span class="linenos">5735</span></a><span class="sd"> Returns:</span>
-</span><span id="update-5736"><a href="#update-5736"><span class="linenos">5736</span></a><span class="sd"> Update: the syntax tree for the UPDATE statement.</span>
-</span><span id="update-5737"><a href="#update-5737"><span class="linenos">5737</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="update-5738"><a href="#update-5738"><span class="linenos">5738</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-5739"><a href="#update-5739"><span class="linenos">5739</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-5740"><a href="#update-5740"><span class="linenos">5740</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
-</span><span id="update-5741"><a href="#update-5741"><span class="linenos">5741</span></a> <span class="p">[</span>
-</span><span id="update-5742"><a href="#update-5742"><span class="linenos">5742</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-5743"><a href="#update-5743"><span class="linenos">5743</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-5744"><a href="#update-5744"><span class="linenos">5744</span></a> <span class="p">],</span>
-</span><span id="update-5745"><a href="#update-5745"><span class="linenos">5745</span></a> <span class="p">)</span>
-</span><span id="update-5746"><a href="#update-5746"><span class="linenos">5746</span></a> <span class="k">if</span> <span class="n">from_</span><span class="p">:</span>
-</span><span id="update-5747"><a href="#update-5747"><span class="linenos">5747</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-5748"><a href="#update-5748"><span class="linenos">5748</span></a> <span class="s2">&quot;from&quot;</span><span class="p">,</span>
-</span><span id="update-5749"><a href="#update-5749"><span class="linenos">5749</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-5750"><a href="#update-5750"><span class="linenos">5750</span></a> <span class="p">)</span>
-</span><span id="update-5751"><a href="#update-5751"><span class="linenos">5751</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-5752"><a href="#update-5752"><span class="linenos">5752</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-5753"><a href="#update-5753"><span class="linenos">5753</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
-</span><span id="update-5754"><a href="#update-5754"><span class="linenos">5754</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-5755"><a href="#update-5755"><span class="linenos">5755</span></a> <span class="s2">&quot;where&quot;</span><span class="p">,</span>
-</span><span id="update-5756"><a href="#update-5756"><span class="linenos">5756</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-5757"><a href="#update-5757"><span class="linenos">5757</span></a> <span class="p">)</span>
-</span><span id="update-5758"><a href="#update-5758"><span class="linenos">5758</span></a> <span class="k">return</span> <span class="n">update_expr</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="update-5859"><a href="#update-5859"><span class="linenos">5859</span></a><span class="k">def</span> <span class="nf">update</span><span class="p">(</span>
+</span><span id="update-5860"><a href="#update-5860"><span class="linenos">5860</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-5861"><a href="#update-5861"><span class="linenos">5861</span></a> <span class="n">properties</span><span class="p">:</span> <span class="nb">dict</span><span class="p">,</span>
+</span><span id="update-5862"><a href="#update-5862"><span class="linenos">5862</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-5863"><a href="#update-5863"><span class="linenos">5863</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-5864"><a href="#update-5864"><span class="linenos">5864</span></a> <span class="n">dialect</span><span 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-5865"><a href="#update-5865"><span class="linenos">5865</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="update-5866"><a href="#update-5866"><span class="linenos">5866</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Update</span><span class="p">:</span>
+</span><span id="update-5867"><a href="#update-5867"><span class="linenos">5867</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="update-5868"><a href="#update-5868"><span class="linenos">5868</span></a><span class="sd"> Creates an update statement.</span>
+</span><span id="update-5869"><a href="#update-5869"><span class="linenos">5869</span></a>
+</span><span id="update-5870"><a href="#update-5870"><span class="linenos">5870</span></a><span class="sd"> Example:</span>
+</span><span id="update-5871"><a href="#update-5871"><span class="linenos">5871</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-5872"><a href="#update-5872"><span class="linenos">5872</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-5873"><a href="#update-5873"><span class="linenos">5873</span></a>
+</span><span id="update-5874"><a href="#update-5874"><span class="linenos">5874</span></a><span class="sd"> Args:</span>
+</span><span id="update-5875"><a href="#update-5875"><span class="linenos">5875</span></a><span class="sd"> *properties: dictionary of properties to set which are</span>
+</span><span id="update-5876"><a href="#update-5876"><span class="linenos">5876</span></a><span class="sd"> auto converted to sql objects eg None -&gt; NULL</span>
+</span><span id="update-5877"><a href="#update-5877"><span class="linenos">5877</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span>
+</span><span id="update-5878"><a href="#update-5878"><span class="linenos">5878</span></a><span class="sd"> from_: sql statement parsed into a FROM statement</span>
+</span><span id="update-5879"><a href="#update-5879"><span class="linenos">5879</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="update-5880"><a href="#update-5880"><span class="linenos">5880</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="update-5881"><a href="#update-5881"><span class="linenos">5881</span></a>
+</span><span id="update-5882"><a href="#update-5882"><span class="linenos">5882</span></a><span class="sd"> Returns:</span>
+</span><span id="update-5883"><a href="#update-5883"><span class="linenos">5883</span></a><span class="sd"> Update: the syntax tree for the UPDATE statement.</span>
+</span><span id="update-5884"><a href="#update-5884"><span class="linenos">5884</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="update-5885"><a href="#update-5885"><span class="linenos">5885</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-5886"><a href="#update-5886"><span class="linenos">5886</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-5887"><a href="#update-5887"><span class="linenos">5887</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
+</span><span id="update-5888"><a href="#update-5888"><span class="linenos">5888</span></a> <span class="p">[</span>
+</span><span id="update-5889"><a href="#update-5889"><span class="linenos">5889</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-5890"><a href="#update-5890"><span class="linenos">5890</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-5891"><a href="#update-5891"><span class="linenos">5891</span></a> <span class="p">],</span>
+</span><span id="update-5892"><a href="#update-5892"><span class="linenos">5892</span></a> <span class="p">)</span>
+</span><span id="update-5893"><a href="#update-5893"><span class="linenos">5893</span></a> <span class="k">if</span> <span class="n">from_</span><span class="p">:</span>
+</span><span id="update-5894"><a href="#update-5894"><span class="linenos">5894</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-5895"><a href="#update-5895"><span class="linenos">5895</span></a> <span class="s2">&quot;from&quot;</span><span class="p">,</span>
+</span><span id="update-5896"><a href="#update-5896"><span class="linenos">5896</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-5897"><a href="#update-5897"><span class="linenos">5897</span></a> <span class="p">)</span>
+</span><span id="update-5898"><a href="#update-5898"><span class="linenos">5898</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-5899"><a href="#update-5899"><span class="linenos">5899</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-5900"><a href="#update-5900"><span class="linenos">5900</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
+</span><span id="update-5901"><a href="#update-5901"><span class="linenos">5901</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-5902"><a href="#update-5902"><span class="linenos">5902</span></a> <span class="s2">&quot;where&quot;</span><span class="p">,</span>
+</span><span id="update-5903"><a href="#update-5903"><span class="linenos">5903</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-5904"><a href="#update-5904"><span class="linenos">5904</span></a> <span class="p">)</span>
+</span><span id="update-5905"><a href="#update-5905"><span class="linenos">5905</span></a> <span class="k">return</span> <span class="n">update_expr</span>
</span></pre></div>
@@ -80472,37 +85186,37 @@ auto converted to sql objects eg None -> NULL</li>
</div>
<a class="headerlink" href="#delete"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="delete-5761"><a href="#delete-5761"><span class="linenos">5761</span></a><span class="k">def</span> <span class="nf">delete</span><span class="p">(</span>
-</span><span id="delete-5762"><a href="#delete-5762"><span class="linenos">5762</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="delete-5763"><a href="#delete-5763"><span class="linenos">5763</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-5764"><a href="#delete-5764"><span class="linenos">5764</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-5765"><a href="#delete-5765"><span class="linenos">5765</span></a> <span class="n">dialect</span><span 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-5766"><a href="#delete-5766"><span class="linenos">5766</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="delete-5767"><a href="#delete-5767"><span class="linenos">5767</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
-</span><span id="delete-5768"><a href="#delete-5768"><span class="linenos">5768</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="delete-5769"><a href="#delete-5769"><span class="linenos">5769</span></a><span class="sd"> Builds a delete statement.</span>
-</span><span id="delete-5770"><a href="#delete-5770"><span class="linenos">5770</span></a>
-</span><span id="delete-5771"><a href="#delete-5771"><span class="linenos">5771</span></a><span class="sd"> Example:</span>
-</span><span id="delete-5772"><a href="#delete-5772"><span class="linenos">5772</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-5773"><a href="#delete-5773"><span class="linenos">5773</span></a><span class="sd"> &#39;DELETE FROM my_table WHERE id &gt; 1&#39;</span>
-</span><span id="delete-5774"><a href="#delete-5774"><span class="linenos">5774</span></a>
-</span><span id="delete-5775"><a href="#delete-5775"><span class="linenos">5775</span></a><span class="sd"> Args:</span>
-</span><span id="delete-5776"><a href="#delete-5776"><span class="linenos">5776</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span>
-</span><span id="delete-5777"><a href="#delete-5777"><span class="linenos">5777</span></a><span class="sd"> returning: sql conditional parsed into a RETURNING statement</span>
-</span><span id="delete-5778"><a href="#delete-5778"><span class="linenos">5778</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="delete-5779"><a href="#delete-5779"><span class="linenos">5779</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="delete-5780"><a href="#delete-5780"><span class="linenos">5780</span></a>
-</span><span id="delete-5781"><a href="#delete-5781"><span class="linenos">5781</span></a><span class="sd"> Returns:</span>
-</span><span id="delete-5782"><a href="#delete-5782"><span class="linenos">5782</span></a><span class="sd"> Delete: the syntax tree for the DELETE statement.</span>
-</span><span id="delete-5783"><a href="#delete-5783"><span class="linenos">5783</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="delete-5784"><a href="#delete-5784"><span class="linenos">5784</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-5785"><a href="#delete-5785"><span class="linenos">5785</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
-</span><span id="delete-5786"><a href="#delete-5786"><span class="linenos">5786</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-5787"><a href="#delete-5787"><span class="linenos">5787</span></a> <span class="k">if</span> <span class="n">returning</span><span class="p">:</span>
-</span><span id="delete-5788"><a href="#delete-5788"><span class="linenos">5788</span></a> <span class="n">delete_expr</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span>
-</span><span id="delete-5789"><a href="#delete-5789"><span class="linenos">5789</span></a> <span class="n">Delete</span><span class="p">,</span> <span class="n">delete_expr</span><span class="o">.</span><span class="n">returning</span><span class="p">(</span><span class="n">returning</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="delete-5790"><a href="#delete-5790"><span class="linenos">5790</span></a> <span class="p">)</span>
-</span><span id="delete-5791"><a href="#delete-5791"><span class="linenos">5791</span></a> <span class="k">return</span> <span class="n">delete_expr</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="delete-5908"><a href="#delete-5908"><span class="linenos">5908</span></a><span class="k">def</span> <span class="nf">delete</span><span class="p">(</span>
+</span><span id="delete-5909"><a href="#delete-5909"><span class="linenos">5909</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="delete-5910"><a href="#delete-5910"><span class="linenos">5910</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-5911"><a href="#delete-5911"><span class="linenos">5911</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-5912"><a href="#delete-5912"><span class="linenos">5912</span></a> <span class="n">dialect</span><span 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-5913"><a href="#delete-5913"><span class="linenos">5913</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="delete-5914"><a href="#delete-5914"><span class="linenos">5914</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
+</span><span id="delete-5915"><a href="#delete-5915"><span class="linenos">5915</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="delete-5916"><a href="#delete-5916"><span class="linenos">5916</span></a><span class="sd"> Builds a delete statement.</span>
+</span><span id="delete-5917"><a href="#delete-5917"><span class="linenos">5917</span></a>
+</span><span id="delete-5918"><a href="#delete-5918"><span class="linenos">5918</span></a><span class="sd"> Example:</span>
+</span><span id="delete-5919"><a href="#delete-5919"><span class="linenos">5919</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-5920"><a href="#delete-5920"><span class="linenos">5920</span></a><span class="sd"> &#39;DELETE FROM my_table WHERE id &gt; 1&#39;</span>
+</span><span id="delete-5921"><a href="#delete-5921"><span class="linenos">5921</span></a>
+</span><span id="delete-5922"><a href="#delete-5922"><span class="linenos">5922</span></a><span class="sd"> Args:</span>
+</span><span id="delete-5923"><a href="#delete-5923"><span class="linenos">5923</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span>
+</span><span id="delete-5924"><a href="#delete-5924"><span class="linenos">5924</span></a><span class="sd"> returning: sql conditional parsed into a RETURNING statement</span>
+</span><span id="delete-5925"><a href="#delete-5925"><span class="linenos">5925</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="delete-5926"><a href="#delete-5926"><span class="linenos">5926</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="delete-5927"><a href="#delete-5927"><span class="linenos">5927</span></a>
+</span><span id="delete-5928"><a href="#delete-5928"><span class="linenos">5928</span></a><span class="sd"> Returns:</span>
+</span><span id="delete-5929"><a href="#delete-5929"><span class="linenos">5929</span></a><span class="sd"> Delete: the syntax tree for the DELETE statement.</span>
+</span><span id="delete-5930"><a href="#delete-5930"><span class="linenos">5930</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="delete-5931"><a href="#delete-5931"><span class="linenos">5931</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-5932"><a href="#delete-5932"><span class="linenos">5932</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
+</span><span id="delete-5933"><a href="#delete-5933"><span class="linenos">5933</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-5934"><a href="#delete-5934"><span class="linenos">5934</span></a> <span class="k">if</span> <span class="n">returning</span><span class="p">:</span>
+</span><span id="delete-5935"><a href="#delete-5935"><span class="linenos">5935</span></a> <span class="n">delete_expr</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span>
+</span><span id="delete-5936"><a href="#delete-5936"><span class="linenos">5936</span></a> <span class="n">Delete</span><span class="p">,</span> <span class="n">delete_expr</span><span class="o">.</span><span class="n">returning</span><span class="p">(</span><span class="n">returning</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="delete-5937"><a href="#delete-5937"><span class="linenos">5937</span></a> <span class="p">)</span>
+</span><span id="delete-5938"><a href="#delete-5938"><span class="linenos">5938</span></a> <span class="k">return</span> <span class="n">delete_expr</span>
</span></pre></div>
@@ -80547,56 +85261,56 @@ auto converted to sql objects eg None -> NULL</li>
</div>
<a class="headerlink" href="#insert"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="insert-5794"><a href="#insert-5794"><span class="linenos">5794</span></a><span class="k">def</span> <span class="nf">insert</span><span class="p">(</span>
-</span><span id="insert-5795"><a href="#insert-5795"><span class="linenos">5795</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="insert-5796"><a href="#insert-5796"><span class="linenos">5796</span></a> <span class="n">into</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="insert-5797"><a href="#insert-5797"><span class="linenos">5797</span></a> <span class="n">columns</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="insert-5798"><a href="#insert-5798"><span class="linenos">5798</span></a> <span class="n">overwrite</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="insert-5799"><a href="#insert-5799"><span class="linenos">5799</span></a> <span class="n">returning</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="insert-5800"><a href="#insert-5800"><span class="linenos">5800</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="insert-5801"><a href="#insert-5801"><span class="linenos">5801</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="insert-5802"><a href="#insert-5802"><span class="linenos">5802</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="insert-5803"><a href="#insert-5803"><span class="linenos">5803</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Insert</span><span class="p">:</span>
-</span><span id="insert-5804"><a href="#insert-5804"><span class="linenos">5804</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="insert-5805"><a href="#insert-5805"><span class="linenos">5805</span></a><span class="sd"> Builds an INSERT statement.</span>
-</span><span id="insert-5806"><a href="#insert-5806"><span class="linenos">5806</span></a>
-</span><span id="insert-5807"><a href="#insert-5807"><span class="linenos">5807</span></a><span class="sd"> Example:</span>
-</span><span id="insert-5808"><a href="#insert-5808"><span class="linenos">5808</span></a><span class="sd"> &gt;&gt;&gt; insert(&quot;VALUES (1, 2, 3)&quot;, &quot;tbl&quot;).sql()</span>
-</span><span id="insert-5809"><a href="#insert-5809"><span class="linenos">5809</span></a><span class="sd"> &#39;INSERT INTO tbl VALUES (1, 2, 3)&#39;</span>
-</span><span id="insert-5810"><a href="#insert-5810"><span class="linenos">5810</span></a>
-</span><span id="insert-5811"><a href="#insert-5811"><span class="linenos">5811</span></a><span class="sd"> Args:</span>
-</span><span id="insert-5812"><a href="#insert-5812"><span class="linenos">5812</span></a><span class="sd"> expression: the sql string or expression of the INSERT statement</span>
-</span><span id="insert-5813"><a href="#insert-5813"><span class="linenos">5813</span></a><span class="sd"> into: the tbl to insert data to.</span>
-</span><span id="insert-5814"><a href="#insert-5814"><span class="linenos">5814</span></a><span class="sd"> columns: optionally the table&#39;s column names.</span>
-</span><span id="insert-5815"><a href="#insert-5815"><span class="linenos">5815</span></a><span class="sd"> overwrite: whether to INSERT OVERWRITE or not.</span>
-</span><span id="insert-5816"><a href="#insert-5816"><span class="linenos">5816</span></a><span class="sd"> returning: sql conditional parsed into a RETURNING statement</span>
-</span><span id="insert-5817"><a href="#insert-5817"><span class="linenos">5817</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="insert-5818"><a href="#insert-5818"><span class="linenos">5818</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
-</span><span id="insert-5819"><a href="#insert-5819"><span class="linenos">5819</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="insert-5820"><a href="#insert-5820"><span class="linenos">5820</span></a>
-</span><span id="insert-5821"><a href="#insert-5821"><span class="linenos">5821</span></a><span class="sd"> Returns:</span>
-</span><span id="insert-5822"><a href="#insert-5822"><span class="linenos">5822</span></a><span class="sd"> Insert: the syntax tree for the INSERT statement.</span>
-</span><span id="insert-5823"><a href="#insert-5823"><span class="linenos">5823</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="insert-5824"><a href="#insert-5824"><span class="linenos">5824</span></a> <span class="n">expr</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="insert-5825"><a href="#insert-5825"><span class="linenos">5825</span></a> <span class="n">this</span><span class="p">:</span> <span class="n">Table</span> <span class="o">|</span> <span class="n">Schema</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">into</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="insert-5826"><a href="#insert-5826"><span class="linenos">5826</span></a>
-</span><span id="insert-5827"><a href="#insert-5827"><span class="linenos">5827</span></a> <span class="k">if</span> <span class="n">columns</span><span class="p">:</span>
-</span><span id="insert-5828"><a href="#insert-5828"><span class="linenos">5828</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="insert-5829"><a href="#insert-5829"><span class="linenos">5829</span></a> <span class="o">*</span><span class="n">columns</span><span class="p">,</span>
-</span><span id="insert-5830"><a href="#insert-5830"><span class="linenos">5830</span></a> <span class="n">instance</span><span class="o">=</span><span class="n">Schema</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">),</span>
-</span><span id="insert-5831"><a href="#insert-5831"><span class="linenos">5831</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
-</span><span id="insert-5832"><a href="#insert-5832"><span class="linenos">5832</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Identifier</span><span class="p">,</span>
-</span><span id="insert-5833"><a href="#insert-5833"><span class="linenos">5833</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
-</span><span id="insert-5834"><a href="#insert-5834"><span class="linenos">5834</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="insert-5835"><a href="#insert-5835"><span class="linenos">5835</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="insert-5836"><a href="#insert-5836"><span class="linenos">5836</span></a> <span class="p">)</span>
-</span><span id="insert-5837"><a href="#insert-5837"><span class="linenos">5837</span></a>
-</span><span id="insert-5838"><a href="#insert-5838"><span class="linenos">5838</span></a> <span class="n">insert</span> <span class="o">=</span> <span class="n">Insert</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expr</span><span class="p">,</span> <span class="n">overwrite</span><span class="o">=</span><span class="n">overwrite</span><span class="p">)</span>
-</span><span id="insert-5839"><a href="#insert-5839"><span class="linenos">5839</span></a>
-</span><span id="insert-5840"><a href="#insert-5840"><span class="linenos">5840</span></a> <span class="k">if</span> <span class="n">returning</span><span class="p">:</span>
-</span><span id="insert-5841"><a href="#insert-5841"><span class="linenos">5841</span></a> <span class="n">insert</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Insert</span><span class="p">,</span> <span class="n">insert</span><span class="o">.</span><span class="n">returning</span><span class="p">(</span><span class="n">returning</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
-</span><span id="insert-5842"><a href="#insert-5842"><span class="linenos">5842</span></a>
-</span><span id="insert-5843"><a href="#insert-5843"><span class="linenos">5843</span></a> <span class="k">return</span> <span class="n">insert</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="insert-5941"><a href="#insert-5941"><span class="linenos">5941</span></a><span class="k">def</span> <span class="nf">insert</span><span class="p">(</span>
+</span><span id="insert-5942"><a href="#insert-5942"><span class="linenos">5942</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="insert-5943"><a href="#insert-5943"><span class="linenos">5943</span></a> <span class="n">into</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="insert-5944"><a href="#insert-5944"><span class="linenos">5944</span></a> <span class="n">columns</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="insert-5945"><a href="#insert-5945"><span class="linenos">5945</span></a> <span class="n">overwrite</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="insert-5946"><a href="#insert-5946"><span class="linenos">5946</span></a> <span class="n">returning</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="insert-5947"><a href="#insert-5947"><span class="linenos">5947</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="insert-5948"><a href="#insert-5948"><span class="linenos">5948</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="insert-5949"><a href="#insert-5949"><span class="linenos">5949</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="insert-5950"><a href="#insert-5950"><span class="linenos">5950</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Insert</span><span class="p">:</span>
+</span><span id="insert-5951"><a href="#insert-5951"><span class="linenos">5951</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="insert-5952"><a href="#insert-5952"><span class="linenos">5952</span></a><span class="sd"> Builds an INSERT statement.</span>
+</span><span id="insert-5953"><a href="#insert-5953"><span class="linenos">5953</span></a>
+</span><span id="insert-5954"><a href="#insert-5954"><span class="linenos">5954</span></a><span class="sd"> Example:</span>
+</span><span id="insert-5955"><a href="#insert-5955"><span class="linenos">5955</span></a><span class="sd"> &gt;&gt;&gt; insert(&quot;VALUES (1, 2, 3)&quot;, &quot;tbl&quot;).sql()</span>
+</span><span id="insert-5956"><a href="#insert-5956"><span class="linenos">5956</span></a><span class="sd"> &#39;INSERT INTO tbl VALUES (1, 2, 3)&#39;</span>
+</span><span id="insert-5957"><a href="#insert-5957"><span class="linenos">5957</span></a>
+</span><span id="insert-5958"><a href="#insert-5958"><span class="linenos">5958</span></a><span class="sd"> Args:</span>
+</span><span id="insert-5959"><a href="#insert-5959"><span class="linenos">5959</span></a><span class="sd"> expression: the sql string or expression of the INSERT statement</span>
+</span><span id="insert-5960"><a href="#insert-5960"><span class="linenos">5960</span></a><span class="sd"> into: the tbl to insert data to.</span>
+</span><span id="insert-5961"><a href="#insert-5961"><span class="linenos">5961</span></a><span class="sd"> columns: optionally the table&#39;s column names.</span>
+</span><span id="insert-5962"><a href="#insert-5962"><span class="linenos">5962</span></a><span class="sd"> overwrite: whether to INSERT OVERWRITE or not.</span>
+</span><span id="insert-5963"><a href="#insert-5963"><span class="linenos">5963</span></a><span class="sd"> returning: sql conditional parsed into a RETURNING statement</span>
+</span><span id="insert-5964"><a href="#insert-5964"><span class="linenos">5964</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="insert-5965"><a href="#insert-5965"><span class="linenos">5965</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
+</span><span id="insert-5966"><a href="#insert-5966"><span class="linenos">5966</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="insert-5967"><a href="#insert-5967"><span class="linenos">5967</span></a>
+</span><span id="insert-5968"><a href="#insert-5968"><span class="linenos">5968</span></a><span class="sd"> Returns:</span>
+</span><span id="insert-5969"><a href="#insert-5969"><span class="linenos">5969</span></a><span class="sd"> Insert: the syntax tree for the INSERT statement.</span>
+</span><span id="insert-5970"><a href="#insert-5970"><span class="linenos">5970</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="insert-5971"><a href="#insert-5971"><span class="linenos">5971</span></a> <span class="n">expr</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="insert-5972"><a href="#insert-5972"><span class="linenos">5972</span></a> <span class="n">this</span><span class="p">:</span> <span class="n">Table</span> <span class="o">|</span> <span class="n">Schema</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">into</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="insert-5973"><a href="#insert-5973"><span class="linenos">5973</span></a>
+</span><span id="insert-5974"><a href="#insert-5974"><span class="linenos">5974</span></a> <span class="k">if</span> <span class="n">columns</span><span class="p">:</span>
+</span><span id="insert-5975"><a href="#insert-5975"><span class="linenos">5975</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="insert-5976"><a href="#insert-5976"><span class="linenos">5976</span></a> <span class="o">*</span><span class="n">columns</span><span class="p">,</span>
+</span><span id="insert-5977"><a href="#insert-5977"><span class="linenos">5977</span></a> <span class="n">instance</span><span class="o">=</span><span class="n">Schema</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">),</span>
+</span><span id="insert-5978"><a href="#insert-5978"><span class="linenos">5978</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
+</span><span id="insert-5979"><a href="#insert-5979"><span class="linenos">5979</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Identifier</span><span class="p">,</span>
+</span><span id="insert-5980"><a href="#insert-5980"><span class="linenos">5980</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
+</span><span id="insert-5981"><a href="#insert-5981"><span class="linenos">5981</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="insert-5982"><a href="#insert-5982"><span class="linenos">5982</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="insert-5983"><a href="#insert-5983"><span class="linenos">5983</span></a> <span class="p">)</span>
+</span><span id="insert-5984"><a href="#insert-5984"><span class="linenos">5984</span></a>
+</span><span id="insert-5985"><a href="#insert-5985"><span class="linenos">5985</span></a> <span class="n">insert</span> <span class="o">=</span> <span class="n">Insert</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expr</span><span class="p">,</span> <span class="n">overwrite</span><span class="o">=</span><span class="n">overwrite</span><span class="p">)</span>
+</span><span id="insert-5986"><a href="#insert-5986"><span class="linenos">5986</span></a>
+</span><span id="insert-5987"><a href="#insert-5987"><span class="linenos">5987</span></a> <span class="k">if</span> <span class="n">returning</span><span class="p">:</span>
+</span><span id="insert-5988"><a href="#insert-5988"><span class="linenos">5988</span></a> <span class="n">insert</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Insert</span><span class="p">,</span> <span class="n">insert</span><span class="o">.</span><span class="n">returning</span><span class="p">(</span><span class="n">returning</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
+</span><span id="insert-5989"><a href="#insert-5989"><span class="linenos">5989</span></a>
+</span><span id="insert-5990"><a href="#insert-5990"><span class="linenos">5990</span></a> <span class="k">return</span> <span class="n">insert</span>
</span></pre></div>
@@ -80645,41 +85359,41 @@ auto converted to sql objects eg None -> NULL</li>
</div>
<a class="headerlink" href="#condition"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="condition-5846"><a href="#condition-5846"><span class="linenos">5846</span></a><span class="k">def</span> <span class="nf">condition</span><span class="p">(</span>
-</span><span id="condition-5847"><a href="#condition-5847"><span class="linenos">5847</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="condition-5848"><a href="#condition-5848"><span class="linenos">5848</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
-</span><span id="condition-5849"><a href="#condition-5849"><span class="linenos">5849</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="condition-5850"><a href="#condition-5850"><span class="linenos">5850</span></a><span class="sd"> Initialize a logical condition expression.</span>
-</span><span id="condition-5851"><a href="#condition-5851"><span class="linenos">5851</span></a>
-</span><span id="condition-5852"><a href="#condition-5852"><span class="linenos">5852</span></a><span class="sd"> Example:</span>
-</span><span id="condition-5853"><a href="#condition-5853"><span class="linenos">5853</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).sql()</span>
-</span><span id="condition-5854"><a href="#condition-5854"><span class="linenos">5854</span></a><span class="sd"> &#39;x = 1&#39;</span>
-</span><span id="condition-5855"><a href="#condition-5855"><span class="linenos">5855</span></a>
-</span><span id="condition-5856"><a href="#condition-5856"><span class="linenos">5856</span></a><span class="sd"> This is helpful for composing larger logical syntax trees:</span>
-</span><span id="condition-5857"><a href="#condition-5857"><span class="linenos">5857</span></a><span class="sd"> &gt;&gt;&gt; where = condition(&quot;x=1&quot;)</span>
-</span><span id="condition-5858"><a href="#condition-5858"><span class="linenos">5858</span></a><span class="sd"> &gt;&gt;&gt; where = where.and_(&quot;y=1&quot;)</span>
-</span><span id="condition-5859"><a href="#condition-5859"><span class="linenos">5859</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;*&quot;).where(where).sql()</span>
-</span><span id="condition-5860"><a href="#condition-5860"><span class="linenos">5860</span></a><span class="sd"> &#39;SELECT * FROM tbl WHERE x = 1 AND y = 1&#39;</span>
-</span><span id="condition-5861"><a href="#condition-5861"><span class="linenos">5861</span></a>
-</span><span id="condition-5862"><a href="#condition-5862"><span class="linenos">5862</span></a><span class="sd"> Args:</span>
-</span><span id="condition-5863"><a href="#condition-5863"><span class="linenos">5863</span></a><span class="sd"> *expression: the SQL code string to parse.</span>
-</span><span id="condition-5864"><a href="#condition-5864"><span class="linenos">5864</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="condition-5865"><a href="#condition-5865"><span class="linenos">5865</span></a><span class="sd"> dialect: the dialect used to parse the input expression (in the case that the</span>
-</span><span id="condition-5866"><a href="#condition-5866"><span class="linenos">5866</span></a><span class="sd"> input expression is a SQL string).</span>
-</span><span id="condition-5867"><a href="#condition-5867"><span class="linenos">5867</span></a><span class="sd"> copy: Whether or not to copy `expression` (only applies to expressions).</span>
-</span><span id="condition-5868"><a href="#condition-5868"><span class="linenos">5868</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
-</span><span id="condition-5869"><a href="#condition-5869"><span class="linenos">5869</span></a><span class="sd"> that the input expression is a SQL string).</span>
-</span><span id="condition-5870"><a href="#condition-5870"><span class="linenos">5870</span></a>
-</span><span id="condition-5871"><a href="#condition-5871"><span class="linenos">5871</span></a><span class="sd"> Returns:</span>
-</span><span id="condition-5872"><a href="#condition-5872"><span class="linenos">5872</span></a><span class="sd"> The new Condition instance</span>
-</span><span id="condition-5873"><a href="#condition-5873"><span class="linenos">5873</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="condition-5874"><a href="#condition-5874"><span class="linenos">5874</span></a> <span class="k">return</span> <span class="n">maybe_parse</span><span class="p">(</span>
-</span><span id="condition-5875"><a href="#condition-5875"><span class="linenos">5875</span></a> <span class="n">expression</span><span class="p">,</span>
-</span><span id="condition-5876"><a href="#condition-5876"><span class="linenos">5876</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Condition</span><span class="p">,</span>
-</span><span id="condition-5877"><a href="#condition-5877"><span class="linenos">5877</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="condition-5878"><a href="#condition-5878"><span class="linenos">5878</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="condition-5879"><a href="#condition-5879"><span class="linenos">5879</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="condition-5880"><a href="#condition-5880"><span class="linenos">5880</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="condition-5993"><a href="#condition-5993"><span class="linenos">5993</span></a><span class="k">def</span> <span class="nf">condition</span><span class="p">(</span>
+</span><span id="condition-5994"><a href="#condition-5994"><span class="linenos">5994</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="condition-5995"><a href="#condition-5995"><span class="linenos">5995</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
+</span><span id="condition-5996"><a href="#condition-5996"><span class="linenos">5996</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="condition-5997"><a href="#condition-5997"><span class="linenos">5997</span></a><span class="sd"> Initialize a logical condition expression.</span>
+</span><span id="condition-5998"><a href="#condition-5998"><span class="linenos">5998</span></a>
+</span><span id="condition-5999"><a href="#condition-5999"><span class="linenos">5999</span></a><span class="sd"> Example:</span>
+</span><span id="condition-6000"><a href="#condition-6000"><span class="linenos">6000</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).sql()</span>
+</span><span id="condition-6001"><a href="#condition-6001"><span class="linenos">6001</span></a><span class="sd"> &#39;x = 1&#39;</span>
+</span><span id="condition-6002"><a href="#condition-6002"><span class="linenos">6002</span></a>
+</span><span id="condition-6003"><a href="#condition-6003"><span class="linenos">6003</span></a><span class="sd"> This is helpful for composing larger logical syntax trees:</span>
+</span><span id="condition-6004"><a href="#condition-6004"><span class="linenos">6004</span></a><span class="sd"> &gt;&gt;&gt; where = condition(&quot;x=1&quot;)</span>
+</span><span id="condition-6005"><a href="#condition-6005"><span class="linenos">6005</span></a><span class="sd"> &gt;&gt;&gt; where = where.and_(&quot;y=1&quot;)</span>
+</span><span id="condition-6006"><a href="#condition-6006"><span class="linenos">6006</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;*&quot;).where(where).sql()</span>
+</span><span id="condition-6007"><a href="#condition-6007"><span class="linenos">6007</span></a><span class="sd"> &#39;SELECT * FROM tbl WHERE x = 1 AND y = 1&#39;</span>
+</span><span id="condition-6008"><a href="#condition-6008"><span class="linenos">6008</span></a>
+</span><span id="condition-6009"><a href="#condition-6009"><span class="linenos">6009</span></a><span class="sd"> Args:</span>
+</span><span id="condition-6010"><a href="#condition-6010"><span class="linenos">6010</span></a><span class="sd"> *expression: the SQL code string to parse.</span>
+</span><span id="condition-6011"><a href="#condition-6011"><span class="linenos">6011</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="condition-6012"><a href="#condition-6012"><span class="linenos">6012</span></a><span class="sd"> dialect: the dialect used to parse the input expression (in the case that the</span>
+</span><span id="condition-6013"><a href="#condition-6013"><span class="linenos">6013</span></a><span class="sd"> input expression is a SQL string).</span>
+</span><span id="condition-6014"><a href="#condition-6014"><span class="linenos">6014</span></a><span class="sd"> copy: Whether or not to copy `expression` (only applies to expressions).</span>
+</span><span id="condition-6015"><a href="#condition-6015"><span class="linenos">6015</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
+</span><span id="condition-6016"><a href="#condition-6016"><span class="linenos">6016</span></a><span class="sd"> that the input expression is a SQL string).</span>
+</span><span id="condition-6017"><a href="#condition-6017"><span class="linenos">6017</span></a>
+</span><span id="condition-6018"><a href="#condition-6018"><span class="linenos">6018</span></a><span class="sd"> Returns:</span>
+</span><span id="condition-6019"><a href="#condition-6019"><span class="linenos">6019</span></a><span class="sd"> The new Condition instance</span>
+</span><span id="condition-6020"><a href="#condition-6020"><span class="linenos">6020</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="condition-6021"><a href="#condition-6021"><span class="linenos">6021</span></a> <span class="k">return</span> <span class="n">maybe_parse</span><span class="p">(</span>
+</span><span id="condition-6022"><a href="#condition-6022"><span class="linenos">6022</span></a> <span class="n">expression</span><span class="p">,</span>
+</span><span id="condition-6023"><a href="#condition-6023"><span class="linenos">6023</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Condition</span><span class="p">,</span>
+</span><span id="condition-6024"><a href="#condition-6024"><span class="linenos">6024</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="condition-6025"><a href="#condition-6025"><span class="linenos">6025</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="condition-6026"><a href="#condition-6026"><span class="linenos">6026</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="condition-6027"><a href="#condition-6027"><span class="linenos">6027</span></a> <span class="p">)</span>
</span></pre></div>
@@ -80737,27 +85451,27 @@ that the input expression is a SQL string).</li>
</div>
<a class="headerlink" href="#and_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="and_-5883"><a href="#and_-5883"><span class="linenos">5883</span></a><span class="k">def</span> <span class="nf">and_</span><span class="p">(</span>
-</span><span id="and_-5884"><a href="#and_-5884"><span class="linenos">5884</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="and_-5885"><a href="#and_-5885"><span class="linenos">5885</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
-</span><span id="and_-5886"><a href="#and_-5886"><span class="linenos">5886</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="and_-5887"><a href="#and_-5887"><span class="linenos">5887</span></a><span class="sd"> Combine multiple conditions with an AND logical operator.</span>
-</span><span id="and_-5888"><a href="#and_-5888"><span class="linenos">5888</span></a>
-</span><span id="and_-5889"><a href="#and_-5889"><span class="linenos">5889</span></a><span class="sd"> Example:</span>
-</span><span id="and_-5890"><a href="#and_-5890"><span class="linenos">5890</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_-5891"><a href="#and_-5891"><span class="linenos">5891</span></a><span class="sd"> &#39;x = 1 AND (y = 1 AND z = 1)&#39;</span>
-</span><span id="and_-5892"><a href="#and_-5892"><span class="linenos">5892</span></a>
-</span><span id="and_-5893"><a href="#and_-5893"><span class="linenos">5893</span></a><span class="sd"> Args:</span>
-</span><span id="and_-5894"><a href="#and_-5894"><span class="linenos">5894</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="and_-5895"><a href="#and_-5895"><span class="linenos">5895</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="and_-5896"><a href="#and_-5896"><span class="linenos">5896</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="and_-5897"><a href="#and_-5897"><span class="linenos">5897</span></a><span class="sd"> copy: whether or not to copy `expressions` (only applies to Expressions).</span>
-</span><span id="and_-5898"><a href="#and_-5898"><span class="linenos">5898</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="and_-5899"><a href="#and_-5899"><span class="linenos">5899</span></a>
-</span><span id="and_-5900"><a href="#and_-5900"><span class="linenos">5900</span></a><span class="sd"> Returns:</span>
-</span><span id="and_-5901"><a href="#and_-5901"><span class="linenos">5901</span></a><span class="sd"> And: the new condition</span>
-</span><span id="and_-5902"><a href="#and_-5902"><span class="linenos">5902</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="and_-5903"><a href="#and_-5903"><span class="linenos">5903</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Condition</span><span class="p">,</span> <span class="n">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">And</span><span class="p">,</span> <span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="and_-6030"><a href="#and_-6030"><span class="linenos">6030</span></a><span class="k">def</span> <span class="nf">and_</span><span class="p">(</span>
+</span><span id="and_-6031"><a href="#and_-6031"><span class="linenos">6031</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="and_-6032"><a href="#and_-6032"><span class="linenos">6032</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
+</span><span id="and_-6033"><a href="#and_-6033"><span class="linenos">6033</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="and_-6034"><a href="#and_-6034"><span class="linenos">6034</span></a><span class="sd"> Combine multiple conditions with an AND logical operator.</span>
+</span><span id="and_-6035"><a href="#and_-6035"><span class="linenos">6035</span></a>
+</span><span id="and_-6036"><a href="#and_-6036"><span class="linenos">6036</span></a><span class="sd"> Example:</span>
+</span><span id="and_-6037"><a href="#and_-6037"><span class="linenos">6037</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_-6038"><a href="#and_-6038"><span class="linenos">6038</span></a><span class="sd"> &#39;x = 1 AND (y = 1 AND z = 1)&#39;</span>
+</span><span id="and_-6039"><a href="#and_-6039"><span class="linenos">6039</span></a>
+</span><span id="and_-6040"><a href="#and_-6040"><span class="linenos">6040</span></a><span class="sd"> Args:</span>
+</span><span id="and_-6041"><a href="#and_-6041"><span class="linenos">6041</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="and_-6042"><a href="#and_-6042"><span class="linenos">6042</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="and_-6043"><a href="#and_-6043"><span class="linenos">6043</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="and_-6044"><a href="#and_-6044"><span class="linenos">6044</span></a><span class="sd"> copy: whether or not to copy `expressions` (only applies to Expressions).</span>
+</span><span id="and_-6045"><a href="#and_-6045"><span class="linenos">6045</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="and_-6046"><a href="#and_-6046"><span class="linenos">6046</span></a>
+</span><span id="and_-6047"><a href="#and_-6047"><span class="linenos">6047</span></a><span class="sd"> Returns:</span>
+</span><span id="and_-6048"><a href="#and_-6048"><span class="linenos">6048</span></a><span class="sd"> And: the new condition</span>
+</span><span id="and_-6049"><a href="#and_-6049"><span class="linenos">6049</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="and_-6050"><a href="#and_-6050"><span class="linenos">6050</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Condition</span><span class="p">,</span> <span class="n">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">And</span><span class="p">,</span> <span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
</span></pre></div>
@@ -80803,27 +85517,27 @@ If an Expression instance is passed, this is used as-is.</li>
</div>
<a class="headerlink" href="#or_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="or_-5906"><a href="#or_-5906"><span class="linenos">5906</span></a><span class="k">def</span> <span class="nf">or_</span><span class="p">(</span>
-</span><span id="or_-5907"><a href="#or_-5907"><span class="linenos">5907</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="or_-5908"><a href="#or_-5908"><span class="linenos">5908</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
-</span><span id="or_-5909"><a href="#or_-5909"><span class="linenos">5909</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="or_-5910"><a href="#or_-5910"><span class="linenos">5910</span></a><span class="sd"> Combine multiple conditions with an OR logical operator.</span>
-</span><span id="or_-5911"><a href="#or_-5911"><span class="linenos">5911</span></a>
-</span><span id="or_-5912"><a href="#or_-5912"><span class="linenos">5912</span></a><span class="sd"> Example:</span>
-</span><span id="or_-5913"><a href="#or_-5913"><span class="linenos">5913</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_-5914"><a href="#or_-5914"><span class="linenos">5914</span></a><span class="sd"> &#39;x = 1 OR (y = 1 OR z = 1)&#39;</span>
-</span><span id="or_-5915"><a href="#or_-5915"><span class="linenos">5915</span></a>
-</span><span id="or_-5916"><a href="#or_-5916"><span class="linenos">5916</span></a><span class="sd"> Args:</span>
-</span><span id="or_-5917"><a href="#or_-5917"><span class="linenos">5917</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="or_-5918"><a href="#or_-5918"><span class="linenos">5918</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="or_-5919"><a href="#or_-5919"><span class="linenos">5919</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="or_-5920"><a href="#or_-5920"><span class="linenos">5920</span></a><span class="sd"> copy: whether or not to copy `expressions` (only applies to Expressions).</span>
-</span><span id="or_-5921"><a href="#or_-5921"><span class="linenos">5921</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="or_-5922"><a href="#or_-5922"><span class="linenos">5922</span></a>
-</span><span id="or_-5923"><a href="#or_-5923"><span class="linenos">5923</span></a><span class="sd"> Returns:</span>
-</span><span id="or_-5924"><a href="#or_-5924"><span class="linenos">5924</span></a><span class="sd"> Or: the new condition</span>
-</span><span id="or_-5925"><a href="#or_-5925"><span class="linenos">5925</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="or_-5926"><a href="#or_-5926"><span class="linenos">5926</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Condition</span><span class="p">,</span> <span class="n">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">Or</span><span class="p">,</span> <span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="or_-6053"><a href="#or_-6053"><span class="linenos">6053</span></a><span class="k">def</span> <span class="nf">or_</span><span class="p">(</span>
+</span><span id="or_-6054"><a href="#or_-6054"><span class="linenos">6054</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="or_-6055"><a href="#or_-6055"><span class="linenos">6055</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
+</span><span id="or_-6056"><a href="#or_-6056"><span class="linenos">6056</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="or_-6057"><a href="#or_-6057"><span class="linenos">6057</span></a><span class="sd"> Combine multiple conditions with an OR logical operator.</span>
+</span><span id="or_-6058"><a href="#or_-6058"><span class="linenos">6058</span></a>
+</span><span id="or_-6059"><a href="#or_-6059"><span class="linenos">6059</span></a><span class="sd"> Example:</span>
+</span><span id="or_-6060"><a href="#or_-6060"><span class="linenos">6060</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_-6061"><a href="#or_-6061"><span class="linenos">6061</span></a><span class="sd"> &#39;x = 1 OR (y = 1 OR z = 1)&#39;</span>
+</span><span id="or_-6062"><a href="#or_-6062"><span class="linenos">6062</span></a>
+</span><span id="or_-6063"><a href="#or_-6063"><span class="linenos">6063</span></a><span class="sd"> Args:</span>
+</span><span id="or_-6064"><a href="#or_-6064"><span class="linenos">6064</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="or_-6065"><a href="#or_-6065"><span class="linenos">6065</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="or_-6066"><a href="#or_-6066"><span class="linenos">6066</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="or_-6067"><a href="#or_-6067"><span class="linenos">6067</span></a><span class="sd"> copy: whether or not to copy `expressions` (only applies to Expressions).</span>
+</span><span id="or_-6068"><a href="#or_-6068"><span class="linenos">6068</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="or_-6069"><a href="#or_-6069"><span class="linenos">6069</span></a>
+</span><span id="or_-6070"><a href="#or_-6070"><span class="linenos">6070</span></a><span class="sd"> Returns:</span>
+</span><span id="or_-6071"><a href="#or_-6071"><span class="linenos">6071</span></a><span class="sd"> Or: the new condition</span>
+</span><span id="or_-6072"><a href="#or_-6072"><span class="linenos">6072</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="or_-6073"><a href="#or_-6073"><span class="linenos">6073</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Condition</span><span class="p">,</span> <span class="n">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">Or</span><span class="p">,</span> <span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
</span></pre></div>
@@ -80869,31 +85583,31 @@ If an Expression instance is passed, this is used as-is.</li>
</div>
<a class="headerlink" href="#not_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="not_-5929"><a href="#not_-5929"><span class="linenos">5929</span></a><span class="k">def</span> <span class="nf">not_</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Not</span><span class="p">:</span>
-</span><span id="not_-5930"><a href="#not_-5930"><span class="linenos">5930</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="not_-5931"><a href="#not_-5931"><span class="linenos">5931</span></a><span class="sd"> Wrap a condition with a NOT operator.</span>
-</span><span id="not_-5932"><a href="#not_-5932"><span class="linenos">5932</span></a>
-</span><span id="not_-5933"><a href="#not_-5933"><span class="linenos">5933</span></a><span class="sd"> Example:</span>
-</span><span id="not_-5934"><a href="#not_-5934"><span class="linenos">5934</span></a><span class="sd"> &gt;&gt;&gt; not_(&quot;this_suit=&#39;black&#39;&quot;).sql()</span>
-</span><span id="not_-5935"><a href="#not_-5935"><span class="linenos">5935</span></a><span class="sd"> &quot;NOT this_suit = &#39;black&#39;&quot;</span>
-</span><span id="not_-5936"><a href="#not_-5936"><span class="linenos">5936</span></a>
-</span><span id="not_-5937"><a href="#not_-5937"><span class="linenos">5937</span></a><span class="sd"> Args:</span>
-</span><span id="not_-5938"><a href="#not_-5938"><span class="linenos">5938</span></a><span class="sd"> expression: the SQL code string to parse.</span>
-</span><span id="not_-5939"><a href="#not_-5939"><span class="linenos">5939</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="not_-5940"><a href="#not_-5940"><span class="linenos">5940</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="not_-5941"><a href="#not_-5941"><span class="linenos">5941</span></a><span class="sd"> copy: whether to copy the expression or not.</span>
-</span><span id="not_-5942"><a href="#not_-5942"><span class="linenos">5942</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="not_-5943"><a href="#not_-5943"><span class="linenos">5943</span></a>
-</span><span id="not_-5944"><a href="#not_-5944"><span class="linenos">5944</span></a><span class="sd"> Returns:</span>
-</span><span id="not_-5945"><a href="#not_-5945"><span class="linenos">5945</span></a><span class="sd"> The new condition.</span>
-</span><span id="not_-5946"><a href="#not_-5946"><span class="linenos">5946</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="not_-5947"><a href="#not_-5947"><span class="linenos">5947</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">condition</span><span class="p">(</span>
-</span><span id="not_-5948"><a href="#not_-5948"><span class="linenos">5948</span></a> <span class="n">expression</span><span class="p">,</span>
-</span><span id="not_-5949"><a href="#not_-5949"><span class="linenos">5949</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="not_-5950"><a href="#not_-5950"><span class="linenos">5950</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="not_-5951"><a href="#not_-5951"><span class="linenos">5951</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="not_-5952"><a href="#not_-5952"><span class="linenos">5952</span></a> <span class="p">)</span>
-</span><span id="not_-5953"><a href="#not_-5953"><span class="linenos">5953</span></a> <span class="k">return</span> <span class="n">Not</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">_wrap</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">Connector</span><span class="p">))</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="not_-6076"><a href="#not_-6076"><span class="linenos">6076</span></a><span class="k">def</span> <span class="nf">not_</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Not</span><span class="p">:</span>
+</span><span id="not_-6077"><a href="#not_-6077"><span class="linenos">6077</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="not_-6078"><a href="#not_-6078"><span class="linenos">6078</span></a><span class="sd"> Wrap a condition with a NOT operator.</span>
+</span><span id="not_-6079"><a href="#not_-6079"><span class="linenos">6079</span></a>
+</span><span id="not_-6080"><a href="#not_-6080"><span class="linenos">6080</span></a><span class="sd"> Example:</span>
+</span><span id="not_-6081"><a href="#not_-6081"><span class="linenos">6081</span></a><span class="sd"> &gt;&gt;&gt; not_(&quot;this_suit=&#39;black&#39;&quot;).sql()</span>
+</span><span id="not_-6082"><a href="#not_-6082"><span class="linenos">6082</span></a><span class="sd"> &quot;NOT this_suit = &#39;black&#39;&quot;</span>
+</span><span id="not_-6083"><a href="#not_-6083"><span class="linenos">6083</span></a>
+</span><span id="not_-6084"><a href="#not_-6084"><span class="linenos">6084</span></a><span class="sd"> Args:</span>
+</span><span id="not_-6085"><a href="#not_-6085"><span class="linenos">6085</span></a><span class="sd"> expression: the SQL code string to parse.</span>
+</span><span id="not_-6086"><a href="#not_-6086"><span class="linenos">6086</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="not_-6087"><a href="#not_-6087"><span class="linenos">6087</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="not_-6088"><a href="#not_-6088"><span class="linenos">6088</span></a><span class="sd"> copy: whether to copy the expression or not.</span>
+</span><span id="not_-6089"><a href="#not_-6089"><span class="linenos">6089</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="not_-6090"><a href="#not_-6090"><span class="linenos">6090</span></a>
+</span><span id="not_-6091"><a href="#not_-6091"><span class="linenos">6091</span></a><span class="sd"> Returns:</span>
+</span><span id="not_-6092"><a href="#not_-6092"><span class="linenos">6092</span></a><span class="sd"> The new condition.</span>
+</span><span id="not_-6093"><a href="#not_-6093"><span class="linenos">6093</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="not_-6094"><a href="#not_-6094"><span class="linenos">6094</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">condition</span><span class="p">(</span>
+</span><span id="not_-6095"><a href="#not_-6095"><span class="linenos">6095</span></a> <span class="n">expression</span><span class="p">,</span>
+</span><span id="not_-6096"><a href="#not_-6096"><span class="linenos">6096</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="not_-6097"><a href="#not_-6097"><span class="linenos">6097</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="not_-6098"><a href="#not_-6098"><span class="linenos">6098</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="not_-6099"><a href="#not_-6099"><span class="linenos">6099</span></a> <span class="p">)</span>
+</span><span id="not_-6100"><a href="#not_-6100"><span class="linenos">6100</span></a> <span class="k">return</span> <span class="n">Not</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">_wrap</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">Connector</span><span class="p">))</span>
</span></pre></div>
@@ -80939,23 +85653,23 @@ If an Expression instance is passed, this is used as-is.</li>
</div>
<a class="headerlink" href="#paren"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="paren-5956"><a href="#paren-5956"><span class="linenos">5956</span></a><span class="k">def</span> <span class="nf">paren</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Paren</span><span class="p">:</span>
-</span><span id="paren-5957"><a href="#paren-5957"><span class="linenos">5957</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="paren-5958"><a href="#paren-5958"><span class="linenos">5958</span></a><span class="sd"> Wrap an expression in parentheses.</span>
-</span><span id="paren-5959"><a href="#paren-5959"><span class="linenos">5959</span></a>
-</span><span id="paren-5960"><a href="#paren-5960"><span class="linenos">5960</span></a><span class="sd"> Example:</span>
-</span><span id="paren-5961"><a href="#paren-5961"><span class="linenos">5961</span></a><span class="sd"> &gt;&gt;&gt; paren(&quot;5 + 3&quot;).sql()</span>
-</span><span id="paren-5962"><a href="#paren-5962"><span class="linenos">5962</span></a><span class="sd"> &#39;(5 + 3)&#39;</span>
-</span><span id="paren-5963"><a href="#paren-5963"><span class="linenos">5963</span></a>
-</span><span id="paren-5964"><a href="#paren-5964"><span class="linenos">5964</span></a><span class="sd"> Args:</span>
-</span><span id="paren-5965"><a href="#paren-5965"><span class="linenos">5965</span></a><span class="sd"> expression: the SQL code string to parse.</span>
-</span><span id="paren-5966"><a href="#paren-5966"><span class="linenos">5966</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="paren-5967"><a href="#paren-5967"><span class="linenos">5967</span></a><span class="sd"> copy: whether to copy the expression or not.</span>
-</span><span id="paren-5968"><a href="#paren-5968"><span class="linenos">5968</span></a>
-</span><span id="paren-5969"><a href="#paren-5969"><span class="linenos">5969</span></a><span class="sd"> Returns:</span>
-</span><span id="paren-5970"><a href="#paren-5970"><span class="linenos">5970</span></a><span class="sd"> The wrapped expression.</span>
-</span><span id="paren-5971"><a href="#paren-5971"><span class="linenos">5971</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="paren-5972"><a href="#paren-5972"><span class="linenos">5972</span></a> <span class="k">return</span> <span class="n">Paren</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">))</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="paren-6103"><a href="#paren-6103"><span class="linenos">6103</span></a><span class="k">def</span> <span class="nf">paren</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Paren</span><span class="p">:</span>
+</span><span id="paren-6104"><a href="#paren-6104"><span class="linenos">6104</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="paren-6105"><a href="#paren-6105"><span class="linenos">6105</span></a><span class="sd"> Wrap an expression in parentheses.</span>
+</span><span id="paren-6106"><a href="#paren-6106"><span class="linenos">6106</span></a>
+</span><span id="paren-6107"><a href="#paren-6107"><span class="linenos">6107</span></a><span class="sd"> Example:</span>
+</span><span id="paren-6108"><a href="#paren-6108"><span class="linenos">6108</span></a><span class="sd"> &gt;&gt;&gt; paren(&quot;5 + 3&quot;).sql()</span>
+</span><span id="paren-6109"><a href="#paren-6109"><span class="linenos">6109</span></a><span class="sd"> &#39;(5 + 3)&#39;</span>
+</span><span id="paren-6110"><a href="#paren-6110"><span class="linenos">6110</span></a>
+</span><span id="paren-6111"><a href="#paren-6111"><span class="linenos">6111</span></a><span class="sd"> Args:</span>
+</span><span id="paren-6112"><a href="#paren-6112"><span class="linenos">6112</span></a><span class="sd"> expression: the SQL code string to parse.</span>
+</span><span id="paren-6113"><a href="#paren-6113"><span class="linenos">6113</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="paren-6114"><a href="#paren-6114"><span class="linenos">6114</span></a><span class="sd"> copy: whether to copy the expression or not.</span>
+</span><span id="paren-6115"><a href="#paren-6115"><span class="linenos">6115</span></a>
+</span><span id="paren-6116"><a href="#paren-6116"><span class="linenos">6116</span></a><span class="sd"> Returns:</span>
+</span><span id="paren-6117"><a href="#paren-6117"><span class="linenos">6117</span></a><span class="sd"> The wrapped expression.</span>
+</span><span id="paren-6118"><a href="#paren-6118"><span class="linenos">6118</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="paren-6119"><a href="#paren-6119"><span class="linenos">6119</span></a> <span class="k">return</span> <span class="n">Paren</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">))</span>
</span></pre></div>
@@ -81011,31 +85725,31 @@ If an Expression instance is passed, this is used as-is.</li>
</div>
<a class="headerlink" href="#to_identifier"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="to_identifier-5990"><a href="#to_identifier-5990"><span class="linenos">5990</span></a><span class="k">def</span> <span class="nf">to_identifier</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
-</span><span id="to_identifier-5991"><a href="#to_identifier-5991"><span class="linenos">5991</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Builds an identifier.</span>
-</span><span id="to_identifier-5992"><a href="#to_identifier-5992"><span class="linenos">5992</span></a>
-</span><span id="to_identifier-5993"><a href="#to_identifier-5993"><span class="linenos">5993</span></a><span class="sd"> Args:</span>
-</span><span id="to_identifier-5994"><a href="#to_identifier-5994"><span class="linenos">5994</span></a><span class="sd"> name: The name to turn into an identifier.</span>
-</span><span id="to_identifier-5995"><a href="#to_identifier-5995"><span class="linenos">5995</span></a><span class="sd"> quoted: Whether or not force quote the identifier.</span>
-</span><span id="to_identifier-5996"><a href="#to_identifier-5996"><span class="linenos">5996</span></a><span class="sd"> copy: Whether or not to copy name if it&#39;s an Identifier.</span>
-</span><span id="to_identifier-5997"><a href="#to_identifier-5997"><span class="linenos">5997</span></a>
-</span><span id="to_identifier-5998"><a href="#to_identifier-5998"><span class="linenos">5998</span></a><span class="sd"> Returns:</span>
-</span><span id="to_identifier-5999"><a href="#to_identifier-5999"><span class="linenos">5999</span></a><span class="sd"> The identifier ast node.</span>
-</span><span id="to_identifier-6000"><a href="#to_identifier-6000"><span class="linenos">6000</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="to_identifier-6001"><a href="#to_identifier-6001"><span class="linenos">6001</span></a>
-</span><span id="to_identifier-6002"><a href="#to_identifier-6002"><span class="linenos">6002</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-6003"><a href="#to_identifier-6003"><span class="linenos">6003</span></a> <span class="k">return</span> <span class="kc">None</span>
-</span><span id="to_identifier-6004"><a href="#to_identifier-6004"><span class="linenos">6004</span></a>
-</span><span id="to_identifier-6005"><a href="#to_identifier-6005"><span class="linenos">6005</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-6006"><a href="#to_identifier-6006"><span class="linenos">6006</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
-</span><span id="to_identifier-6007"><a href="#to_identifier-6007"><span class="linenos">6007</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-6008"><a href="#to_identifier-6008"><span class="linenos">6008</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-6009"><a href="#to_identifier-6009"><span class="linenos">6009</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-6010"><a href="#to_identifier-6010"><span class="linenos">6010</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-6011"><a href="#to_identifier-6011"><span class="linenos">6011</span></a> <span class="p">)</span>
-</span><span id="to_identifier-6012"><a href="#to_identifier-6012"><span class="linenos">6012</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="to_identifier-6013"><a href="#to_identifier-6013"><span class="linenos">6013</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-6014"><a href="#to_identifier-6014"><span class="linenos">6014</span></a> <span class="k">return</span> <span class="n">identifier</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="to_identifier-6137"><a href="#to_identifier-6137"><span class="linenos">6137</span></a><span class="k">def</span> <span class="nf">to_identifier</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
+</span><span id="to_identifier-6138"><a href="#to_identifier-6138"><span class="linenos">6138</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Builds an identifier.</span>
+</span><span id="to_identifier-6139"><a href="#to_identifier-6139"><span class="linenos">6139</span></a>
+</span><span id="to_identifier-6140"><a href="#to_identifier-6140"><span class="linenos">6140</span></a><span class="sd"> Args:</span>
+</span><span id="to_identifier-6141"><a href="#to_identifier-6141"><span class="linenos">6141</span></a><span class="sd"> name: The name to turn into an identifier.</span>
+</span><span id="to_identifier-6142"><a href="#to_identifier-6142"><span class="linenos">6142</span></a><span class="sd"> quoted: Whether or not force quote the identifier.</span>
+</span><span id="to_identifier-6143"><a href="#to_identifier-6143"><span class="linenos">6143</span></a><span class="sd"> copy: Whether or not to copy name if it&#39;s an Identifier.</span>
+</span><span id="to_identifier-6144"><a href="#to_identifier-6144"><span class="linenos">6144</span></a>
+</span><span id="to_identifier-6145"><a href="#to_identifier-6145"><span class="linenos">6145</span></a><span class="sd"> Returns:</span>
+</span><span id="to_identifier-6146"><a href="#to_identifier-6146"><span class="linenos">6146</span></a><span class="sd"> The identifier ast node.</span>
+</span><span id="to_identifier-6147"><a href="#to_identifier-6147"><span class="linenos">6147</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="to_identifier-6148"><a href="#to_identifier-6148"><span class="linenos">6148</span></a>
+</span><span id="to_identifier-6149"><a href="#to_identifier-6149"><span class="linenos">6149</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-6150"><a href="#to_identifier-6150"><span class="linenos">6150</span></a> <span class="k">return</span> <span class="kc">None</span>
+</span><span id="to_identifier-6151"><a href="#to_identifier-6151"><span class="linenos">6151</span></a>
+</span><span id="to_identifier-6152"><a href="#to_identifier-6152"><span class="linenos">6152</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-6153"><a href="#to_identifier-6153"><span class="linenos">6153</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
+</span><span id="to_identifier-6154"><a href="#to_identifier-6154"><span class="linenos">6154</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-6155"><a href="#to_identifier-6155"><span class="linenos">6155</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-6156"><a href="#to_identifier-6156"><span class="linenos">6156</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-6157"><a href="#to_identifier-6157"><span class="linenos">6157</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-6158"><a href="#to_identifier-6158"><span class="linenos">6158</span></a> <span class="p">)</span>
+</span><span id="to_identifier-6159"><a href="#to_identifier-6159"><span class="linenos">6159</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="to_identifier-6160"><a href="#to_identifier-6160"><span class="linenos">6160</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-6161"><a href="#to_identifier-6161"><span class="linenos">6161</span></a> <span class="k">return</span> <span class="n">identifier</span>
</span></pre></div>
@@ -81069,23 +85783,23 @@ If an Expression instance is passed, this is used as-is.</li>
</div>
<a class="headerlink" href="#parse_identifier"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="parse_identifier-6017"><a href="#parse_identifier-6017"><span class="linenos">6017</span></a><span class="k">def</span> <span class="nf">parse_identifier</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Identifier</span><span class="p">:</span>
-</span><span id="parse_identifier-6018"><a href="#parse_identifier-6018"><span class="linenos">6018</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="parse_identifier-6019"><a href="#parse_identifier-6019"><span class="linenos">6019</span></a><span class="sd"> Parses a given string into an identifier.</span>
-</span><span id="parse_identifier-6020"><a href="#parse_identifier-6020"><span class="linenos">6020</span></a>
-</span><span id="parse_identifier-6021"><a href="#parse_identifier-6021"><span class="linenos">6021</span></a><span class="sd"> Args:</span>
-</span><span id="parse_identifier-6022"><a href="#parse_identifier-6022"><span class="linenos">6022</span></a><span class="sd"> name: The name to parse into an identifier.</span>
-</span><span id="parse_identifier-6023"><a href="#parse_identifier-6023"><span class="linenos">6023</span></a><span class="sd"> dialect: The dialect to parse against.</span>
-</span><span id="parse_identifier-6024"><a href="#parse_identifier-6024"><span class="linenos">6024</span></a>
-</span><span id="parse_identifier-6025"><a href="#parse_identifier-6025"><span class="linenos">6025</span></a><span class="sd"> Returns:</span>
-</span><span id="parse_identifier-6026"><a href="#parse_identifier-6026"><span class="linenos">6026</span></a><span class="sd"> The identifier ast node.</span>
-</span><span id="parse_identifier-6027"><a href="#parse_identifier-6027"><span class="linenos">6027</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="parse_identifier-6028"><a href="#parse_identifier-6028"><span class="linenos">6028</span></a> <span class="k">try</span><span class="p">:</span>
-</span><span id="parse_identifier-6029"><a href="#parse_identifier-6029"><span class="linenos">6029</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Identifier</span><span class="p">)</span>
-</span><span id="parse_identifier-6030"><a href="#parse_identifier-6030"><span class="linenos">6030</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span>
-</span><span id="parse_identifier-6031"><a href="#parse_identifier-6031"><span class="linenos">6031</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">to_identifier</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
-</span><span id="parse_identifier-6032"><a href="#parse_identifier-6032"><span class="linenos">6032</span></a>
-</span><span id="parse_identifier-6033"><a href="#parse_identifier-6033"><span class="linenos">6033</span></a> <span class="k">return</span> <span class="n">expression</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="parse_identifier-6164"><a href="#parse_identifier-6164"><span class="linenos">6164</span></a><span class="k">def</span> <span class="nf">parse_identifier</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Identifier</span><span class="p">:</span>
+</span><span id="parse_identifier-6165"><a href="#parse_identifier-6165"><span class="linenos">6165</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="parse_identifier-6166"><a href="#parse_identifier-6166"><span class="linenos">6166</span></a><span class="sd"> Parses a given string into an identifier.</span>
+</span><span id="parse_identifier-6167"><a href="#parse_identifier-6167"><span class="linenos">6167</span></a>
+</span><span id="parse_identifier-6168"><a href="#parse_identifier-6168"><span class="linenos">6168</span></a><span class="sd"> Args:</span>
+</span><span id="parse_identifier-6169"><a href="#parse_identifier-6169"><span class="linenos">6169</span></a><span class="sd"> name: The name to parse into an identifier.</span>
+</span><span id="parse_identifier-6170"><a href="#parse_identifier-6170"><span class="linenos">6170</span></a><span class="sd"> dialect: The dialect to parse against.</span>
+</span><span id="parse_identifier-6171"><a href="#parse_identifier-6171"><span class="linenos">6171</span></a>
+</span><span id="parse_identifier-6172"><a href="#parse_identifier-6172"><span class="linenos">6172</span></a><span class="sd"> Returns:</span>
+</span><span id="parse_identifier-6173"><a href="#parse_identifier-6173"><span class="linenos">6173</span></a><span class="sd"> The identifier ast node.</span>
+</span><span id="parse_identifier-6174"><a href="#parse_identifier-6174"><span class="linenos">6174</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="parse_identifier-6175"><a href="#parse_identifier-6175"><span class="linenos">6175</span></a> <span class="k">try</span><span class="p">:</span>
+</span><span id="parse_identifier-6176"><a href="#parse_identifier-6176"><span class="linenos">6176</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Identifier</span><span class="p">)</span>
+</span><span id="parse_identifier-6177"><a href="#parse_identifier-6177"><span class="linenos">6177</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span>
+</span><span id="parse_identifier-6178"><a href="#parse_identifier-6178"><span class="linenos">6178</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">to_identifier</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
+</span><span id="parse_identifier-6179"><a href="#parse_identifier-6179"><span class="linenos">6179</span></a>
+</span><span id="parse_identifier-6180"><a href="#parse_identifier-6180"><span class="linenos">6180</span></a> <span class="k">return</span> <span class="n">expression</span>
</span></pre></div>
@@ -81130,23 +85844,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-6039"><a href="#to_interval-6039"><span class="linenos">6039</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-6040"><a href="#to_interval-6040"><span class="linenos">6040</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-6041"><a href="#to_interval-6041"><span class="linenos">6041</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-6042"><a href="#to_interval-6042"><span class="linenos">6042</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-6043"><a href="#to_interval-6043"><span class="linenos">6043</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-6044"><a href="#to_interval-6044"><span class="linenos">6044</span></a>
-</span><span id="to_interval-6045"><a href="#to_interval-6045"><span class="linenos">6045</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-6046"><a href="#to_interval-6046"><span class="linenos">6046</span></a>
-</span><span id="to_interval-6047"><a href="#to_interval-6047"><span class="linenos">6047</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-6048"><a href="#to_interval-6048"><span class="linenos">6048</span></a>
-</span><span id="to_interval-6049"><a href="#to_interval-6049"><span class="linenos">6049</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-6050"><a href="#to_interval-6050"><span class="linenos">6050</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-6051"><a href="#to_interval-6051"><span class="linenos">6051</span></a>
-</span><span id="to_interval-6052"><a href="#to_interval-6052"><span class="linenos">6052</span></a> <span class="k">return</span> <span class="n">Interval</span><span class="p">(</span>
-</span><span id="to_interval-6053"><a href="#to_interval-6053"><span class="linenos">6053</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-6054"><a href="#to_interval-6054"><span class="linenos">6054</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-6055"><a href="#to_interval-6055"><span class="linenos">6055</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="to_interval-6186"><a href="#to_interval-6186"><span class="linenos">6186</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-6187"><a href="#to_interval-6187"><span class="linenos">6187</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-6188"><a href="#to_interval-6188"><span class="linenos">6188</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-6189"><a href="#to_interval-6189"><span class="linenos">6189</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-6190"><a href="#to_interval-6190"><span class="linenos">6190</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-6191"><a href="#to_interval-6191"><span class="linenos">6191</span></a>
+</span><span id="to_interval-6192"><a href="#to_interval-6192"><span class="linenos">6192</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-6193"><a href="#to_interval-6193"><span class="linenos">6193</span></a>
+</span><span id="to_interval-6194"><a href="#to_interval-6194"><span class="linenos">6194</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-6195"><a href="#to_interval-6195"><span class="linenos">6195</span></a>
+</span><span id="to_interval-6196"><a href="#to_interval-6196"><span class="linenos">6196</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-6197"><a href="#to_interval-6197"><span class="linenos">6197</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-6198"><a href="#to_interval-6198"><span class="linenos">6198</span></a>
+</span><span id="to_interval-6199"><a href="#to_interval-6199"><span class="linenos">6199</span></a> <span class="k">return</span> <span class="n">Interval</span><span class="p">(</span>
+</span><span id="to_interval-6200"><a href="#to_interval-6200"><span class="linenos">6200</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-6201"><a href="#to_interval-6201"><span class="linenos">6201</span></a> <span class="n">unit</span><span class="o">=</span><span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">interval_parts</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()),</span>
+</span><span id="to_interval-6202"><a href="#to_interval-6202"><span class="linenos">6202</span></a> <span class="p">)</span>
</span></pre></div>
@@ -81166,33 +85880,33 @@ 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-6068"><a href="#to_table-6068"><span class="linenos">6068</span></a><span class="k">def</span> <span class="nf">to_table</span><span class="p">(</span>
-</span><span id="to_table-6069"><a href="#to_table-6069"><span class="linenos">6069</span></a> <span class="n">sql_path</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">],</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span>
-</span><span id="to_table-6070"><a href="#to_table-6070"><span class="linenos">6070</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Table</span><span class="p">]:</span>
-</span><span id="to_table-6071"><a href="#to_table-6071"><span class="linenos">6071</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="to_table-6072"><a href="#to_table-6072"><span class="linenos">6072</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-6073"><a href="#to_table-6073"><span class="linenos">6073</span></a><span class="sd"> If a table is passed in then that table is returned.</span>
-</span><span id="to_table-6074"><a href="#to_table-6074"><span class="linenos">6074</span></a>
-</span><span id="to_table-6075"><a href="#to_table-6075"><span class="linenos">6075</span></a><span class="sd"> Args:</span>
-</span><span id="to_table-6076"><a href="#to_table-6076"><span class="linenos">6076</span></a><span class="sd"> sql_path: a `[catalog].[schema].[table]` string.</span>
-</span><span id="to_table-6077"><a href="#to_table-6077"><span class="linenos">6077</span></a><span class="sd"> dialect: the source dialect according to which the table name will be parsed.</span>
-</span><span id="to_table-6078"><a href="#to_table-6078"><span class="linenos">6078</span></a><span class="sd"> copy: Whether or not to copy a table if it is passed in.</span>
-</span><span id="to_table-6079"><a href="#to_table-6079"><span class="linenos">6079</span></a><span class="sd"> kwargs: the kwargs to instantiate the resulting `Table` expression with.</span>
-</span><span id="to_table-6080"><a href="#to_table-6080"><span class="linenos">6080</span></a>
-</span><span id="to_table-6081"><a href="#to_table-6081"><span class="linenos">6081</span></a><span class="sd"> Returns:</span>
-</span><span id="to_table-6082"><a href="#to_table-6082"><span class="linenos">6082</span></a><span class="sd"> A table expression.</span>
-</span><span id="to_table-6083"><a href="#to_table-6083"><span class="linenos">6083</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="to_table-6084"><a href="#to_table-6084"><span class="linenos">6084</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-6085"><a href="#to_table-6085"><span class="linenos">6085</span></a> <span class="k">return</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span>
-</span><span id="to_table-6086"><a href="#to_table-6086"><span class="linenos">6086</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-6087"><a href="#to_table-6087"><span class="linenos">6087</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-6088"><a href="#to_table-6088"><span class="linenos">6088</span></a>
-</span><span id="to_table-6089"><a href="#to_table-6089"><span class="linenos">6089</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span>
-</span><span id="to_table-6090"><a href="#to_table-6090"><span class="linenos">6090</span></a> <span class="k">if</span> <span class="n">table</span><span class="p">:</span>
-</span><span id="to_table-6091"><a href="#to_table-6091"><span class="linenos">6091</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
-</span><span id="to_table-6092"><a href="#to_table-6092"><span class="linenos">6092</span></a> <span class="n">table</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
-</span><span id="to_table-6093"><a href="#to_table-6093"><span class="linenos">6093</span></a>
-</span><span id="to_table-6094"><a href="#to_table-6094"><span class="linenos">6094</span></a> <span class="k">return</span> <span class="n">table</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="to_table-6215"><a href="#to_table-6215"><span class="linenos">6215</span></a><span class="k">def</span> <span class="nf">to_table</span><span class="p">(</span>
+</span><span id="to_table-6216"><a href="#to_table-6216"><span class="linenos">6216</span></a> <span class="n">sql_path</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">],</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span>
+</span><span id="to_table-6217"><a href="#to_table-6217"><span class="linenos">6217</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Table</span><span class="p">]:</span>
+</span><span id="to_table-6218"><a href="#to_table-6218"><span class="linenos">6218</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="to_table-6219"><a href="#to_table-6219"><span class="linenos">6219</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-6220"><a href="#to_table-6220"><span class="linenos">6220</span></a><span class="sd"> If a table is passed in then that table is returned.</span>
+</span><span id="to_table-6221"><a href="#to_table-6221"><span class="linenos">6221</span></a>
+</span><span id="to_table-6222"><a href="#to_table-6222"><span class="linenos">6222</span></a><span class="sd"> Args:</span>
+</span><span id="to_table-6223"><a href="#to_table-6223"><span class="linenos">6223</span></a><span class="sd"> sql_path: a `[catalog].[schema].[table]` string.</span>
+</span><span id="to_table-6224"><a href="#to_table-6224"><span class="linenos">6224</span></a><span class="sd"> dialect: the source dialect according to which the table name will be parsed.</span>
+</span><span id="to_table-6225"><a href="#to_table-6225"><span class="linenos">6225</span></a><span class="sd"> copy: Whether or not to copy a table if it is passed in.</span>
+</span><span id="to_table-6226"><a href="#to_table-6226"><span class="linenos">6226</span></a><span class="sd"> kwargs: the kwargs to instantiate the resulting `Table` expression with.</span>
+</span><span id="to_table-6227"><a href="#to_table-6227"><span class="linenos">6227</span></a>
+</span><span id="to_table-6228"><a href="#to_table-6228"><span class="linenos">6228</span></a><span class="sd"> Returns:</span>
+</span><span id="to_table-6229"><a href="#to_table-6229"><span class="linenos">6229</span></a><span class="sd"> A table expression.</span>
+</span><span id="to_table-6230"><a href="#to_table-6230"><span class="linenos">6230</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="to_table-6231"><a href="#to_table-6231"><span class="linenos">6231</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-6232"><a href="#to_table-6232"><span class="linenos">6232</span></a> <span class="k">return</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span>
+</span><span id="to_table-6233"><a href="#to_table-6233"><span class="linenos">6233</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-6234"><a href="#to_table-6234"><span class="linenos">6234</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-6235"><a href="#to_table-6235"><span class="linenos">6235</span></a>
+</span><span id="to_table-6236"><a href="#to_table-6236"><span class="linenos">6236</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span>
+</span><span id="to_table-6237"><a href="#to_table-6237"><span class="linenos">6237</span></a> <span class="k">if</span> <span class="n">table</span><span class="p">:</span>
+</span><span id="to_table-6238"><a href="#to_table-6238"><span class="linenos">6238</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+</span><span id="to_table-6239"><a href="#to_table-6239"><span class="linenos">6239</span></a> <span class="n">table</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
+</span><span id="to_table-6240"><a href="#to_table-6240"><span class="linenos">6240</span></a>
+</span><span id="to_table-6241"><a href="#to_table-6241"><span class="linenos">6241</span></a> <span class="k">return</span> <span class="n">table</span>
</span></pre></div>
@@ -81228,22 +85942,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-6097"><a href="#to_column-6097"><span class="linenos">6097</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-6098"><a href="#to_column-6098"><span class="linenos">6098</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="to_column-6099"><a href="#to_column-6099"><span class="linenos">6099</span></a><span class="sd"> Create a column from a `[table].[column]` sql path. Schema is optional.</span>
-</span><span id="to_column-6100"><a href="#to_column-6100"><span class="linenos">6100</span></a>
-</span><span id="to_column-6101"><a href="#to_column-6101"><span class="linenos">6101</span></a><span class="sd"> If a column is passed in then that column is returned.</span>
-</span><span id="to_column-6102"><a href="#to_column-6102"><span class="linenos">6102</span></a>
-</span><span id="to_column-6103"><a href="#to_column-6103"><span class="linenos">6103</span></a><span class="sd"> Args:</span>
-</span><span id="to_column-6104"><a href="#to_column-6104"><span class="linenos">6104</span></a><span class="sd"> sql_path: `[table].[column]` string</span>
-</span><span id="to_column-6105"><a href="#to_column-6105"><span class="linenos">6105</span></a><span class="sd"> Returns:</span>
-</span><span id="to_column-6106"><a href="#to_column-6106"><span class="linenos">6106</span></a><span class="sd"> Table: A column expression</span>
-</span><span id="to_column-6107"><a href="#to_column-6107"><span class="linenos">6107</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="to_column-6108"><a href="#to_column-6108"><span class="linenos">6108</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-6109"><a href="#to_column-6109"><span class="linenos">6109</span></a> <span class="k">return</span> <span class="n">sql_path</span>
-</span><span id="to_column-6110"><a href="#to_column-6110"><span class="linenos">6110</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-6111"><a href="#to_column-6111"><span class="linenos">6111</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-6112"><a href="#to_column-6112"><span class="linenos">6112</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-6244"><a href="#to_column-6244"><span class="linenos">6244</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-6245"><a href="#to_column-6245"><span class="linenos">6245</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="to_column-6246"><a href="#to_column-6246"><span class="linenos">6246</span></a><span class="sd"> Create a column from a `[table].[column]` sql path. Schema is optional.</span>
+</span><span id="to_column-6247"><a href="#to_column-6247"><span class="linenos">6247</span></a>
+</span><span id="to_column-6248"><a href="#to_column-6248"><span class="linenos">6248</span></a><span class="sd"> If a column is passed in then that column is returned.</span>
+</span><span id="to_column-6249"><a href="#to_column-6249"><span class="linenos">6249</span></a>
+</span><span id="to_column-6250"><a href="#to_column-6250"><span class="linenos">6250</span></a><span class="sd"> Args:</span>
+</span><span id="to_column-6251"><a href="#to_column-6251"><span class="linenos">6251</span></a><span class="sd"> sql_path: `[table].[column]` string</span>
+</span><span id="to_column-6252"><a href="#to_column-6252"><span class="linenos">6252</span></a><span class="sd"> Returns:</span>
+</span><span id="to_column-6253"><a href="#to_column-6253"><span class="linenos">6253</span></a><span class="sd"> Table: A column expression</span>
+</span><span id="to_column-6254"><a href="#to_column-6254"><span class="linenos">6254</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="to_column-6255"><a href="#to_column-6255"><span class="linenos">6255</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-6256"><a href="#to_column-6256"><span class="linenos">6256</span></a> <span class="k">return</span> <span class="n">sql_path</span>
+</span><span id="to_column-6257"><a href="#to_column-6257"><span class="linenos">6257</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-6258"><a href="#to_column-6258"><span class="linenos">6258</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-6259"><a href="#to_column-6259"><span class="linenos">6259</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>
@@ -81277,61 +85991,61 @@ If a table is passed in then that table is returned.</p>
</div>
<a class="headerlink" href="#alias_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="alias_-6115"><a href="#alias_-6115"><span class="linenos">6115</span></a><span class="k">def</span> <span class="nf">alias_</span><span class="p">(</span>
-</span><span id="alias_-6116"><a href="#alias_-6116"><span class="linenos">6116</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="alias_-6117"><a href="#alias_-6117"><span class="linenos">6117</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_-6118"><a href="#alias_-6118"><span class="linenos">6118</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_-6119"><a href="#alias_-6119"><span class="linenos">6119</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_-6120"><a href="#alias_-6120"><span class="linenos">6120</span></a> <span class="n">dialect</span><span 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_-6121"><a href="#alias_-6121"><span class="linenos">6121</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="alias_-6122"><a href="#alias_-6122"><span class="linenos">6122</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="alias_-6123"><a href="#alias_-6123"><span class="linenos">6123</span></a><span class="p">):</span>
-</span><span id="alias_-6124"><a href="#alias_-6124"><span class="linenos">6124</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Create an Alias expression.</span>
-</span><span id="alias_-6125"><a href="#alias_-6125"><span class="linenos">6125</span></a>
-</span><span id="alias_-6126"><a href="#alias_-6126"><span class="linenos">6126</span></a><span class="sd"> Example:</span>
-</span><span id="alias_-6127"><a href="#alias_-6127"><span class="linenos">6127</span></a><span class="sd"> &gt;&gt;&gt; alias_(&#39;foo&#39;, &#39;bar&#39;).sql()</span>
-</span><span id="alias_-6128"><a href="#alias_-6128"><span class="linenos">6128</span></a><span class="sd"> &#39;foo AS bar&#39;</span>
-</span><span id="alias_-6129"><a href="#alias_-6129"><span class="linenos">6129</span></a>
-</span><span id="alias_-6130"><a href="#alias_-6130"><span class="linenos">6130</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_-6131"><a href="#alias_-6131"><span class="linenos">6131</span></a><span class="sd"> &#39;(SELECT 1, 2) AS bar(a, b)&#39;</span>
-</span><span id="alias_-6132"><a href="#alias_-6132"><span class="linenos">6132</span></a>
-</span><span id="alias_-6133"><a href="#alias_-6133"><span class="linenos">6133</span></a><span class="sd"> Args:</span>
-</span><span id="alias_-6134"><a href="#alias_-6134"><span class="linenos">6134</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
-</span><span id="alias_-6135"><a href="#alias_-6135"><span class="linenos">6135</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="alias_-6136"><a href="#alias_-6136"><span class="linenos">6136</span></a><span class="sd"> alias: the alias name to use. If the name has</span>
-</span><span id="alias_-6137"><a href="#alias_-6137"><span class="linenos">6137</span></a><span class="sd"> special characters it is quoted.</span>
-</span><span id="alias_-6138"><a href="#alias_-6138"><span class="linenos">6138</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_-6139"><a href="#alias_-6139"><span class="linenos">6139</span></a><span class="sd"> quoted: whether or not to quote the alias</span>
-</span><span id="alias_-6140"><a href="#alias_-6140"><span class="linenos">6140</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="alias_-6141"><a href="#alias_-6141"><span class="linenos">6141</span></a><span class="sd"> copy: Whether or not to copy the expression.</span>
-</span><span id="alias_-6142"><a href="#alias_-6142"><span class="linenos">6142</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="alias_-6143"><a href="#alias_-6143"><span class="linenos">6143</span></a>
-</span><span id="alias_-6144"><a href="#alias_-6144"><span class="linenos">6144</span></a><span class="sd"> Returns:</span>
-</span><span id="alias_-6145"><a href="#alias_-6145"><span class="linenos">6145</span></a><span class="sd"> Alias: the aliased expression</span>
-</span><span id="alias_-6146"><a href="#alias_-6146"><span class="linenos">6146</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="alias_-6147"><a href="#alias_-6147"><span class="linenos">6147</span></a> <span class="n">exp</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="alias_-6148"><a href="#alias_-6148"><span class="linenos">6148</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_-6149"><a href="#alias_-6149"><span class="linenos">6149</span></a>
-</span><span id="alias_-6150"><a href="#alias_-6150"><span class="linenos">6150</span></a> <span class="k">if</span> <span class="n">table</span><span class="p">:</span>
-</span><span id="alias_-6151"><a href="#alias_-6151"><span class="linenos">6151</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_-6152"><a href="#alias_-6152"><span class="linenos">6152</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_-6153"><a href="#alias_-6153"><span class="linenos">6153</span></a>
-</span><span id="alias_-6154"><a href="#alias_-6154"><span class="linenos">6154</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_-6155"><a href="#alias_-6155"><span class="linenos">6155</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_-6156"><a href="#alias_-6156"><span class="linenos">6156</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_-6157"><a href="#alias_-6157"><span class="linenos">6157</span></a>
-</span><span id="alias_-6158"><a href="#alias_-6158"><span class="linenos">6158</span></a> <span class="k">return</span> <span class="n">exp</span>
-</span><span id="alias_-6159"><a href="#alias_-6159"><span class="linenos">6159</span></a>
-</span><span id="alias_-6160"><a href="#alias_-6160"><span class="linenos">6160</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_-6161"><a href="#alias_-6161"><span class="linenos">6161</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_-6162"><a href="#alias_-6162"><span class="linenos">6162</span></a> <span class="c1"># for the complete Window expression.</span>
-</span><span id="alias_-6163"><a href="#alias_-6163"><span class="linenos">6163</span></a> <span class="c1">#</span>
-</span><span id="alias_-6164"><a href="#alias_-6164"><span class="linenos">6164</span></a> <span class="c1"># [1]: https://cloud.google.com/bigquery/docs/reference/standard-sql/window-function-calls</span>
-</span><span id="alias_-6165"><a href="#alias_-6165"><span class="linenos">6165</span></a>
-</span><span id="alias_-6166"><a href="#alias_-6166"><span class="linenos">6166</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_-6167"><a href="#alias_-6167"><span class="linenos">6167</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_-6168"><a href="#alias_-6168"><span class="linenos">6168</span></a> <span class="k">return</span> <span class="n">exp</span>
-</span><span id="alias_-6169"><a href="#alias_-6169"><span class="linenos">6169</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_-6262"><a href="#alias_-6262"><span class="linenos">6262</span></a><span class="k">def</span> <span class="nf">alias_</span><span class="p">(</span>
+</span><span id="alias_-6263"><a href="#alias_-6263"><span class="linenos">6263</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="alias_-6264"><a href="#alias_-6264"><span class="linenos">6264</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_-6265"><a href="#alias_-6265"><span class="linenos">6265</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_-6266"><a href="#alias_-6266"><span class="linenos">6266</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_-6267"><a href="#alias_-6267"><span class="linenos">6267</span></a> <span class="n">dialect</span><span 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_-6268"><a href="#alias_-6268"><span class="linenos">6268</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="alias_-6269"><a href="#alias_-6269"><span class="linenos">6269</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="alias_-6270"><a href="#alias_-6270"><span class="linenos">6270</span></a><span class="p">):</span>
+</span><span id="alias_-6271"><a href="#alias_-6271"><span class="linenos">6271</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Create an Alias expression.</span>
+</span><span id="alias_-6272"><a href="#alias_-6272"><span class="linenos">6272</span></a>
+</span><span id="alias_-6273"><a href="#alias_-6273"><span class="linenos">6273</span></a><span class="sd"> Example:</span>
+</span><span id="alias_-6274"><a href="#alias_-6274"><span class="linenos">6274</span></a><span class="sd"> &gt;&gt;&gt; alias_(&#39;foo&#39;, &#39;bar&#39;).sql()</span>
+</span><span id="alias_-6275"><a href="#alias_-6275"><span class="linenos">6275</span></a><span class="sd"> &#39;foo AS bar&#39;</span>
+</span><span id="alias_-6276"><a href="#alias_-6276"><span class="linenos">6276</span></a>
+</span><span id="alias_-6277"><a href="#alias_-6277"><span class="linenos">6277</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_-6278"><a href="#alias_-6278"><span class="linenos">6278</span></a><span class="sd"> &#39;(SELECT 1, 2) AS bar(a, b)&#39;</span>
+</span><span id="alias_-6279"><a href="#alias_-6279"><span class="linenos">6279</span></a>
+</span><span id="alias_-6280"><a href="#alias_-6280"><span class="linenos">6280</span></a><span class="sd"> Args:</span>
+</span><span id="alias_-6281"><a href="#alias_-6281"><span class="linenos">6281</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
+</span><span id="alias_-6282"><a href="#alias_-6282"><span class="linenos">6282</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="alias_-6283"><a href="#alias_-6283"><span class="linenos">6283</span></a><span class="sd"> alias: the alias name to use. If the name has</span>
+</span><span id="alias_-6284"><a href="#alias_-6284"><span class="linenos">6284</span></a><span class="sd"> special characters it is quoted.</span>
+</span><span id="alias_-6285"><a href="#alias_-6285"><span class="linenos">6285</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_-6286"><a href="#alias_-6286"><span class="linenos">6286</span></a><span class="sd"> quoted: whether or not to quote the alias</span>
+</span><span id="alias_-6287"><a href="#alias_-6287"><span class="linenos">6287</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="alias_-6288"><a href="#alias_-6288"><span class="linenos">6288</span></a><span class="sd"> copy: Whether or not to copy the expression.</span>
+</span><span id="alias_-6289"><a href="#alias_-6289"><span class="linenos">6289</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="alias_-6290"><a href="#alias_-6290"><span class="linenos">6290</span></a>
+</span><span id="alias_-6291"><a href="#alias_-6291"><span class="linenos">6291</span></a><span class="sd"> Returns:</span>
+</span><span id="alias_-6292"><a href="#alias_-6292"><span class="linenos">6292</span></a><span class="sd"> Alias: the aliased expression</span>
+</span><span id="alias_-6293"><a href="#alias_-6293"><span class="linenos">6293</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="alias_-6294"><a href="#alias_-6294"><span class="linenos">6294</span></a> <span class="n">exp</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="alias_-6295"><a href="#alias_-6295"><span class="linenos">6295</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_-6296"><a href="#alias_-6296"><span class="linenos">6296</span></a>
+</span><span id="alias_-6297"><a href="#alias_-6297"><span class="linenos">6297</span></a> <span class="k">if</span> <span class="n">table</span><span class="p">:</span>
+</span><span id="alias_-6298"><a href="#alias_-6298"><span class="linenos">6298</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_-6299"><a href="#alias_-6299"><span class="linenos">6299</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_-6300"><a href="#alias_-6300"><span class="linenos">6300</span></a>
+</span><span id="alias_-6301"><a href="#alias_-6301"><span class="linenos">6301</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_-6302"><a href="#alias_-6302"><span class="linenos">6302</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_-6303"><a href="#alias_-6303"><span class="linenos">6303</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_-6304"><a href="#alias_-6304"><span class="linenos">6304</span></a>
+</span><span id="alias_-6305"><a href="#alias_-6305"><span class="linenos">6305</span></a> <span class="k">return</span> <span class="n">exp</span>
+</span><span id="alias_-6306"><a href="#alias_-6306"><span class="linenos">6306</span></a>
+</span><span id="alias_-6307"><a href="#alias_-6307"><span class="linenos">6307</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_-6308"><a href="#alias_-6308"><span class="linenos">6308</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_-6309"><a href="#alias_-6309"><span class="linenos">6309</span></a> <span class="c1"># for the complete Window expression.</span>
+</span><span id="alias_-6310"><a href="#alias_-6310"><span class="linenos">6310</span></a> <span class="c1">#</span>
+</span><span id="alias_-6311"><a href="#alias_-6311"><span class="linenos">6311</span></a> <span class="c1"># [1]: https://cloud.google.com/bigquery/docs/reference/standard-sql/window-function-calls</span>
+</span><span id="alias_-6312"><a href="#alias_-6312"><span class="linenos">6312</span></a>
+</span><span id="alias_-6313"><a href="#alias_-6313"><span class="linenos">6313</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_-6314"><a href="#alias_-6314"><span class="linenos">6314</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_-6315"><a href="#alias_-6315"><span class="linenos">6315</span></a> <span class="k">return</span> <span class="n">exp</span>
+</span><span id="alias_-6316"><a href="#alias_-6316"><span class="linenos">6316</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>
@@ -81387,32 +86101,32 @@ special characters it is quoted.</li>
</div>
<a class="headerlink" href="#subquery"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="subquery-6172"><a href="#subquery-6172"><span class="linenos">6172</span></a><span class="k">def</span> <span class="nf">subquery</span><span class="p">(</span>
-</span><span id="subquery-6173"><a href="#subquery-6173"><span class="linenos">6173</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="subquery-6174"><a href="#subquery-6174"><span class="linenos">6174</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="subquery-6175"><a href="#subquery-6175"><span class="linenos">6175</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="subquery-6176"><a href="#subquery-6176"><span class="linenos">6176</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="subquery-6177"><a href="#subquery-6177"><span class="linenos">6177</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="subquery-6178"><a href="#subquery-6178"><span class="linenos">6178</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="subquery-6179"><a href="#subquery-6179"><span class="linenos">6179</span></a><span class="sd"> Build a subquery expression.</span>
-</span><span id="subquery-6180"><a href="#subquery-6180"><span class="linenos">6180</span></a>
-</span><span id="subquery-6181"><a href="#subquery-6181"><span class="linenos">6181</span></a><span class="sd"> Example:</span>
-</span><span id="subquery-6182"><a href="#subquery-6182"><span class="linenos">6182</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-6183"><a href="#subquery-6183"><span class="linenos">6183</span></a><span class="sd"> &#39;SELECT x FROM (SELECT x FROM tbl) AS bar&#39;</span>
-</span><span id="subquery-6184"><a href="#subquery-6184"><span class="linenos">6184</span></a>
-</span><span id="subquery-6185"><a href="#subquery-6185"><span class="linenos">6185</span></a><span class="sd"> Args:</span>
-</span><span id="subquery-6186"><a href="#subquery-6186"><span class="linenos">6186</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
-</span><span id="subquery-6187"><a href="#subquery-6187"><span class="linenos">6187</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="subquery-6188"><a href="#subquery-6188"><span class="linenos">6188</span></a><span class="sd"> alias: the alias name to use.</span>
-</span><span id="subquery-6189"><a href="#subquery-6189"><span class="linenos">6189</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="subquery-6190"><a href="#subquery-6190"><span class="linenos">6190</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="subquery-6191"><a href="#subquery-6191"><span class="linenos">6191</span></a>
-</span><span id="subquery-6192"><a href="#subquery-6192"><span class="linenos">6192</span></a><span class="sd"> Returns:</span>
-</span><span id="subquery-6193"><a href="#subquery-6193"><span class="linenos">6193</span></a><span class="sd"> A new Select instance with the subquery expression included.</span>
-</span><span id="subquery-6194"><a href="#subquery-6194"><span class="linenos">6194</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="subquery-6195"><a href="#subquery-6195"><span class="linenos">6195</span></a>
-</span><span id="subquery-6196"><a href="#subquery-6196"><span class="linenos">6196</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-6197"><a href="#subquery-6197"><span class="linenos">6197</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-6319"><a href="#subquery-6319"><span class="linenos">6319</span></a><span class="k">def</span> <span class="nf">subquery</span><span class="p">(</span>
+</span><span id="subquery-6320"><a href="#subquery-6320"><span class="linenos">6320</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="subquery-6321"><a href="#subquery-6321"><span class="linenos">6321</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="subquery-6322"><a href="#subquery-6322"><span class="linenos">6322</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="subquery-6323"><a href="#subquery-6323"><span class="linenos">6323</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="subquery-6324"><a href="#subquery-6324"><span class="linenos">6324</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="subquery-6325"><a href="#subquery-6325"><span class="linenos">6325</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="subquery-6326"><a href="#subquery-6326"><span class="linenos">6326</span></a><span class="sd"> Build a subquery expression.</span>
+</span><span id="subquery-6327"><a href="#subquery-6327"><span class="linenos">6327</span></a>
+</span><span id="subquery-6328"><a href="#subquery-6328"><span class="linenos">6328</span></a><span class="sd"> Example:</span>
+</span><span id="subquery-6329"><a href="#subquery-6329"><span class="linenos">6329</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-6330"><a href="#subquery-6330"><span class="linenos">6330</span></a><span class="sd"> &#39;SELECT x FROM (SELECT x FROM tbl) AS bar&#39;</span>
+</span><span id="subquery-6331"><a href="#subquery-6331"><span class="linenos">6331</span></a>
+</span><span id="subquery-6332"><a href="#subquery-6332"><span class="linenos">6332</span></a><span class="sd"> Args:</span>
+</span><span id="subquery-6333"><a href="#subquery-6333"><span class="linenos">6333</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
+</span><span id="subquery-6334"><a href="#subquery-6334"><span class="linenos">6334</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="subquery-6335"><a href="#subquery-6335"><span class="linenos">6335</span></a><span class="sd"> alias: the alias name to use.</span>
+</span><span id="subquery-6336"><a href="#subquery-6336"><span class="linenos">6336</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="subquery-6337"><a href="#subquery-6337"><span class="linenos">6337</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="subquery-6338"><a href="#subquery-6338"><span class="linenos">6338</span></a>
+</span><span id="subquery-6339"><a href="#subquery-6339"><span class="linenos">6339</span></a><span class="sd"> Returns:</span>
+</span><span id="subquery-6340"><a href="#subquery-6340"><span class="linenos">6340</span></a><span class="sd"> A new Select instance with the subquery expression included.</span>
+</span><span id="subquery-6341"><a href="#subquery-6341"><span class="linenos">6341</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="subquery-6342"><a href="#subquery-6342"><span class="linenos">6342</span></a>
+</span><span id="subquery-6343"><a href="#subquery-6343"><span class="linenos">6343</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-6344"><a href="#subquery-6344"><span class="linenos">6344</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>
@@ -81452,38 +86166,47 @@ If an Expression instance is passed, this is used as-is.</li>
<div class="attr function">
<span class="def">def</span>
- <span class="name">column</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">col</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n"><a href="#Identifier">Identifier</a></span>,</span><span class="param"> <span class="n">table</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="n"><a href="#Identifier">Identifier</a></span><span class="p">,</span> <span class="nb">str</span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">db</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="n"><a href="#Identifier">Identifier</a></span><span class="p">,</span> <span class="nb">str</span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">catalog</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="n"><a href="#Identifier">Identifier</a></span><span class="p">,</span> <span class="nb">str</span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">quoted</span><span class="p">:</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><span class="return-annotation">) -> <span class="n"><a href="#Column">Column</a></span>:</span></span>
+ <span class="name">column</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">col</span>,</span><span class="param"> <span class="n">table</span><span class="o">=</span><span class="kc">None</span>,</span><span class="param"> <span class="n">db</span><span class="o">=</span><span class="kc">None</span>,</span><span class="param"> <span class="n">catalog</span><span class="o">=</span><span class="kc">None</span>,</span><span class="param"> <span class="o">*</span>,</span><span class="param"> <span class="n">fields</span><span class="o">=</span><span class="kc">None</span>,</span><span class="param"> <span class="n">quoted</span><span class="o">=</span><span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span></span><span class="return-annotation">):</span></span>
<label class="view-source-button" for="column-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#column"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="column-6200"><a href="#column-6200"><span class="linenos">6200</span></a><span class="k">def</span> <span class="nf">column</span><span class="p">(</span>
-</span><span id="column-6201"><a href="#column-6201"><span class="linenos">6201</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-6202"><a href="#column-6202"><span class="linenos">6202</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-6203"><a href="#column-6203"><span class="linenos">6203</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-6204"><a href="#column-6204"><span class="linenos">6204</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-6205"><a href="#column-6205"><span class="linenos">6205</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-6206"><a href="#column-6206"><span class="linenos">6206</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Column</span><span class="p">:</span>
-</span><span id="column-6207"><a href="#column-6207"><span class="linenos">6207</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="column-6208"><a href="#column-6208"><span class="linenos">6208</span></a><span class="sd"> Build a Column.</span>
-</span><span id="column-6209"><a href="#column-6209"><span class="linenos">6209</span></a>
-</span><span id="column-6210"><a href="#column-6210"><span class="linenos">6210</span></a><span class="sd"> Args:</span>
-</span><span id="column-6211"><a href="#column-6211"><span class="linenos">6211</span></a><span class="sd"> col: Column name.</span>
-</span><span id="column-6212"><a href="#column-6212"><span class="linenos">6212</span></a><span class="sd"> table: Table name.</span>
-</span><span id="column-6213"><a href="#column-6213"><span class="linenos">6213</span></a><span class="sd"> db: Database name.</span>
-</span><span id="column-6214"><a href="#column-6214"><span class="linenos">6214</span></a><span class="sd"> catalog: Catalog name.</span>
-</span><span id="column-6215"><a href="#column-6215"><span class="linenos">6215</span></a><span class="sd"> quoted: Whether to force quotes on the column&#39;s identifiers.</span>
-</span><span id="column-6216"><a href="#column-6216"><span class="linenos">6216</span></a>
-</span><span id="column-6217"><a href="#column-6217"><span class="linenos">6217</span></a><span class="sd"> Returns:</span>
-</span><span id="column-6218"><a href="#column-6218"><span class="linenos">6218</span></a><span class="sd"> The new Column instance.</span>
-</span><span id="column-6219"><a href="#column-6219"><span class="linenos">6219</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="column-6220"><a href="#column-6220"><span class="linenos">6220</span></a> <span class="k">return</span> <span class="n">Column</span><span class="p">(</span>
-</span><span id="column-6221"><a href="#column-6221"><span class="linenos">6221</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-6222"><a href="#column-6222"><span class="linenos">6222</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-6223"><a href="#column-6223"><span class="linenos">6223</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-6224"><a href="#column-6224"><span class="linenos">6224</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-6225"><a href="#column-6225"><span class="linenos">6225</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="column-6375"><a href="#column-6375"><span class="linenos">6375</span></a><span class="k">def</span> <span class="nf">column</span><span class="p">(</span>
+</span><span id="column-6376"><a href="#column-6376"><span class="linenos">6376</span></a> <span class="n">col</span><span class="p">,</span>
+</span><span id="column-6377"><a href="#column-6377"><span class="linenos">6377</span></a> <span class="n">table</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="column-6378"><a href="#column-6378"><span class="linenos">6378</span></a> <span class="n">db</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="column-6379"><a href="#column-6379"><span class="linenos">6379</span></a> <span class="n">catalog</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="column-6380"><a href="#column-6380"><span class="linenos">6380</span></a> <span class="o">*</span><span class="p">,</span>
+</span><span id="column-6381"><a href="#column-6381"><span class="linenos">6381</span></a> <span class="n">fields</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="column-6382"><a href="#column-6382"><span class="linenos">6382</span></a> <span class="n">quoted</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="column-6383"><a href="#column-6383"><span class="linenos">6383</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="column-6384"><a href="#column-6384"><span class="linenos">6384</span></a><span class="p">):</span>
+</span><span id="column-6385"><a href="#column-6385"><span class="linenos">6385</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="column-6386"><a href="#column-6386"><span class="linenos">6386</span></a><span class="sd"> Build a Column.</span>
+</span><span id="column-6387"><a href="#column-6387"><span class="linenos">6387</span></a>
+</span><span id="column-6388"><a href="#column-6388"><span class="linenos">6388</span></a><span class="sd"> Args:</span>
+</span><span id="column-6389"><a href="#column-6389"><span class="linenos">6389</span></a><span class="sd"> col: Column name.</span>
+</span><span id="column-6390"><a href="#column-6390"><span class="linenos">6390</span></a><span class="sd"> table: Table name.</span>
+</span><span id="column-6391"><a href="#column-6391"><span class="linenos">6391</span></a><span class="sd"> db: Database name.</span>
+</span><span id="column-6392"><a href="#column-6392"><span class="linenos">6392</span></a><span class="sd"> catalog: Catalog name.</span>
+</span><span id="column-6393"><a href="#column-6393"><span class="linenos">6393</span></a><span class="sd"> fields: Additional fields using dots.</span>
+</span><span id="column-6394"><a href="#column-6394"><span class="linenos">6394</span></a><span class="sd"> quoted: Whether to force quotes on the column&#39;s identifiers.</span>
+</span><span id="column-6395"><a href="#column-6395"><span class="linenos">6395</span></a><span class="sd"> copy: Whether or not to copy identifiers if passed in.</span>
+</span><span id="column-6396"><a href="#column-6396"><span class="linenos">6396</span></a>
+</span><span id="column-6397"><a href="#column-6397"><span class="linenos">6397</span></a><span class="sd"> Returns:</span>
+</span><span id="column-6398"><a href="#column-6398"><span class="linenos">6398</span></a><span class="sd"> The new Column instance.</span>
+</span><span id="column-6399"><a href="#column-6399"><span class="linenos">6399</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="column-6400"><a href="#column-6400"><span class="linenos">6400</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">Column</span><span class="p">(</span>
+</span><span id="column-6401"><a href="#column-6401"><span class="linenos">6401</span></a> <span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">col</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">),</span>
+</span><span id="column-6402"><a href="#column-6402"><span class="linenos">6402</span></a> <span class="n">table</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">),</span>
+</span><span id="column-6403"><a href="#column-6403"><span class="linenos">6403</span></a> <span class="n">db</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">db</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">),</span>
+</span><span id="column-6404"><a href="#column-6404"><span class="linenos">6404</span></a> <span class="n">catalog</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">catalog</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">),</span>
+</span><span id="column-6405"><a href="#column-6405"><span class="linenos">6405</span></a> <span class="p">)</span>
+</span><span id="column-6406"><a href="#column-6406"><span class="linenos">6406</span></a>
+</span><span id="column-6407"><a href="#column-6407"><span class="linenos">6407</span></a> <span class="k">if</span> <span class="n">fields</span><span class="p">:</span>
+</span><span id="column-6408"><a href="#column-6408"><span class="linenos">6408</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">Dot</span><span class="o">.</span><span class="n">build</span><span class="p">((</span><span class="n">this</span><span class="p">,</span> <span class="o">*</span><span class="p">(</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">field</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">field</span> <span class="ow">in</span> <span class="n">fields</span><span class="p">)))</span>
+</span><span id="column-6409"><a href="#column-6409"><span class="linenos">6409</span></a> <span class="k">return</span> <span class="n">this</span>
</span></pre></div>
@@ -81496,7 +86219,9 @@ If an Expression instance is passed, this is used as-is.</li>
<li><strong>table:</strong> Table name.</li>
<li><strong>db:</strong> Database name.</li>
<li><strong>catalog:</strong> Catalog name.</li>
+<li><strong>fields:</strong> Additional fields using dots.</li>
<li><strong>quoted:</strong> Whether to force quotes on the column's identifiers.</li>
+<li><strong>copy:</strong> Whether or not to copy identifiers if passed in.</li>
</ul>
<h6 id="returns">Returns:</h6>
@@ -81519,25 +86244,25 @@ If an Expression instance is passed, this is used as-is.</li>
</div>
<a class="headerlink" href="#cast"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="cast-6228"><a href="#cast-6228"><span class="linenos">6228</span></a><span class="k">def</span> <span class="nf">cast</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">to</span><span class="p">:</span> <span class="n">DATA_TYPE</span><span class="p">,</span> <span class="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-6229"><a href="#cast-6229"><span class="linenos">6229</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Cast an expression to a data type.</span>
-</span><span id="cast-6230"><a href="#cast-6230"><span class="linenos">6230</span></a>
-</span><span id="cast-6231"><a href="#cast-6231"><span class="linenos">6231</span></a><span class="sd"> Example:</span>
-</span><span id="cast-6232"><a href="#cast-6232"><span class="linenos">6232</span></a><span class="sd"> &gt;&gt;&gt; cast(&#39;x + 1&#39;, &#39;int&#39;).sql()</span>
-</span><span id="cast-6233"><a href="#cast-6233"><span class="linenos">6233</span></a><span class="sd"> &#39;CAST(x + 1 AS INT)&#39;</span>
-</span><span id="cast-6234"><a href="#cast-6234"><span class="linenos">6234</span></a>
-</span><span id="cast-6235"><a href="#cast-6235"><span class="linenos">6235</span></a><span class="sd"> Args:</span>
-</span><span id="cast-6236"><a href="#cast-6236"><span class="linenos">6236</span></a><span class="sd"> expression: The expression to cast.</span>
-</span><span id="cast-6237"><a href="#cast-6237"><span class="linenos">6237</span></a><span class="sd"> to: The datatype to cast to.</span>
-</span><span id="cast-6238"><a href="#cast-6238"><span class="linenos">6238</span></a>
-</span><span id="cast-6239"><a href="#cast-6239"><span class="linenos">6239</span></a><span class="sd"> Returns:</span>
-</span><span id="cast-6240"><a href="#cast-6240"><span class="linenos">6240</span></a><span class="sd"> The new Cast instance.</span>
-</span><span id="cast-6241"><a href="#cast-6241"><span class="linenos">6241</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="cast-6242"><a href="#cast-6242"><span class="linenos">6242</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-6243"><a href="#cast-6243"><span class="linenos">6243</span></a> <span class="n">data_type</span> <span class="o">=</span> <span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">to</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="cast-6244"><a href="#cast-6244"><span class="linenos">6244</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">Cast</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">data_type</span><span class="p">)</span>
-</span><span id="cast-6245"><a href="#cast-6245"><span class="linenos">6245</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">type</span> <span class="o">=</span> <span class="n">data_type</span>
-</span><span id="cast-6246"><a href="#cast-6246"><span class="linenos">6246</span></a> <span class="k">return</span> <span class="n">expression</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="cast-6412"><a href="#cast-6412"><span class="linenos">6412</span></a><span class="k">def</span> <span class="nf">cast</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">to</span><span class="p">:</span> <span class="n">DATA_TYPE</span><span class="p">,</span> <span class="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-6413"><a href="#cast-6413"><span class="linenos">6413</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Cast an expression to a data type.</span>
+</span><span id="cast-6414"><a href="#cast-6414"><span class="linenos">6414</span></a>
+</span><span id="cast-6415"><a href="#cast-6415"><span class="linenos">6415</span></a><span class="sd"> Example:</span>
+</span><span id="cast-6416"><a href="#cast-6416"><span class="linenos">6416</span></a><span class="sd"> &gt;&gt;&gt; cast(&#39;x + 1&#39;, &#39;int&#39;).sql()</span>
+</span><span id="cast-6417"><a href="#cast-6417"><span class="linenos">6417</span></a><span class="sd"> &#39;CAST(x + 1 AS INT)&#39;</span>
+</span><span id="cast-6418"><a href="#cast-6418"><span class="linenos">6418</span></a>
+</span><span id="cast-6419"><a href="#cast-6419"><span class="linenos">6419</span></a><span class="sd"> Args:</span>
+</span><span id="cast-6420"><a href="#cast-6420"><span class="linenos">6420</span></a><span class="sd"> expression: The expression to cast.</span>
+</span><span id="cast-6421"><a href="#cast-6421"><span class="linenos">6421</span></a><span class="sd"> to: The datatype to cast to.</span>
+</span><span id="cast-6422"><a href="#cast-6422"><span class="linenos">6422</span></a>
+</span><span id="cast-6423"><a href="#cast-6423"><span class="linenos">6423</span></a><span class="sd"> Returns:</span>
+</span><span id="cast-6424"><a href="#cast-6424"><span class="linenos">6424</span></a><span class="sd"> The new Cast instance.</span>
+</span><span id="cast-6425"><a href="#cast-6425"><span class="linenos">6425</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="cast-6426"><a href="#cast-6426"><span class="linenos">6426</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-6427"><a href="#cast-6427"><span class="linenos">6427</span></a> <span class="n">data_type</span> <span class="o">=</span> <span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">to</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="cast-6428"><a href="#cast-6428"><span class="linenos">6428</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">Cast</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">data_type</span><span class="p">)</span>
+</span><span id="cast-6429"><a href="#cast-6429"><span class="linenos">6429</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">type</span> <span class="o">=</span> <span class="n">data_type</span>
+</span><span id="cast-6430"><a href="#cast-6430"><span class="linenos">6430</span></a> <span class="k">return</span> <span class="n">expression</span>
</span></pre></div>
@@ -81580,31 +86305,31 @@ If an Expression instance is passed, this is used as-is.</li>
</div>
<a class="headerlink" href="#table_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="table_-6249"><a href="#table_-6249"><span class="linenos">6249</span></a><span class="k">def</span> <span class="nf">table_</span><span class="p">(</span>
-</span><span id="table_-6250"><a href="#table_-6250"><span class="linenos">6250</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">,</span>
-</span><span id="table_-6251"><a href="#table_-6251"><span class="linenos">6251</span></a> <span class="n">db</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="table_-6252"><a href="#table_-6252"><span class="linenos">6252</span></a> <span class="n">catalog</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="table_-6253"><a href="#table_-6253"><span class="linenos">6253</span></a> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="table_-6254"><a href="#table_-6254"><span class="linenos">6254</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="table_-6255"><a href="#table_-6255"><span class="linenos">6255</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Table</span><span class="p">:</span>
-</span><span id="table_-6256"><a href="#table_-6256"><span class="linenos">6256</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a Table.</span>
-</span><span id="table_-6257"><a href="#table_-6257"><span class="linenos">6257</span></a>
-</span><span id="table_-6258"><a href="#table_-6258"><span class="linenos">6258</span></a><span class="sd"> Args:</span>
-</span><span id="table_-6259"><a href="#table_-6259"><span class="linenos">6259</span></a><span class="sd"> table: Table name.</span>
-</span><span id="table_-6260"><a href="#table_-6260"><span class="linenos">6260</span></a><span class="sd"> db: Database name.</span>
-</span><span id="table_-6261"><a href="#table_-6261"><span class="linenos">6261</span></a><span class="sd"> catalog: Catalog name.</span>
-</span><span id="table_-6262"><a href="#table_-6262"><span class="linenos">6262</span></a><span class="sd"> quote: Whether to force quotes on the table&#39;s identifiers.</span>
-</span><span id="table_-6263"><a href="#table_-6263"><span class="linenos">6263</span></a><span class="sd"> alias: Table&#39;s alias.</span>
-</span><span id="table_-6264"><a href="#table_-6264"><span class="linenos">6264</span></a>
-</span><span id="table_-6265"><a href="#table_-6265"><span class="linenos">6265</span></a><span class="sd"> Returns:</span>
-</span><span id="table_-6266"><a href="#table_-6266"><span class="linenos">6266</span></a><span class="sd"> The new Table instance.</span>
-</span><span id="table_-6267"><a href="#table_-6267"><span class="linenos">6267</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="table_-6268"><a href="#table_-6268"><span class="linenos">6268</span></a> <span class="k">return</span> <span class="n">Table</span><span class="p">(</span>
-</span><span id="table_-6269"><a href="#table_-6269"><span class="linenos">6269</span></a> <span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">)</span> <span class="k">if</span> <span class="n">table</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="table_-6270"><a href="#table_-6270"><span class="linenos">6270</span></a> <span class="n">db</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">db</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">)</span> <span class="k">if</span> <span class="n">db</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="table_-6271"><a href="#table_-6271"><span class="linenos">6271</span></a> <span class="n">catalog</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">catalog</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">)</span> <span class="k">if</span> <span class="n">catalog</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="table_-6272"><a href="#table_-6272"><span class="linenos">6272</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_-6273"><a href="#table_-6273"><span class="linenos">6273</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="table_-6433"><a href="#table_-6433"><span class="linenos">6433</span></a><span class="k">def</span> <span class="nf">table_</span><span class="p">(</span>
+</span><span id="table_-6434"><a href="#table_-6434"><span class="linenos">6434</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">,</span>
+</span><span id="table_-6435"><a href="#table_-6435"><span class="linenos">6435</span></a> <span class="n">db</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="table_-6436"><a href="#table_-6436"><span class="linenos">6436</span></a> <span class="n">catalog</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="table_-6437"><a href="#table_-6437"><span class="linenos">6437</span></a> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="table_-6438"><a href="#table_-6438"><span class="linenos">6438</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="table_-6439"><a href="#table_-6439"><span class="linenos">6439</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Table</span><span class="p">:</span>
+</span><span id="table_-6440"><a href="#table_-6440"><span class="linenos">6440</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a Table.</span>
+</span><span id="table_-6441"><a href="#table_-6441"><span class="linenos">6441</span></a>
+</span><span id="table_-6442"><a href="#table_-6442"><span class="linenos">6442</span></a><span class="sd"> Args:</span>
+</span><span id="table_-6443"><a href="#table_-6443"><span class="linenos">6443</span></a><span class="sd"> table: Table name.</span>
+</span><span id="table_-6444"><a href="#table_-6444"><span class="linenos">6444</span></a><span class="sd"> db: Database name.</span>
+</span><span id="table_-6445"><a href="#table_-6445"><span class="linenos">6445</span></a><span class="sd"> catalog: Catalog name.</span>
+</span><span id="table_-6446"><a href="#table_-6446"><span class="linenos">6446</span></a><span class="sd"> quote: Whether to force quotes on the table&#39;s identifiers.</span>
+</span><span id="table_-6447"><a href="#table_-6447"><span class="linenos">6447</span></a><span class="sd"> alias: Table&#39;s alias.</span>
+</span><span id="table_-6448"><a href="#table_-6448"><span class="linenos">6448</span></a>
+</span><span id="table_-6449"><a href="#table_-6449"><span class="linenos">6449</span></a><span class="sd"> Returns:</span>
+</span><span id="table_-6450"><a href="#table_-6450"><span class="linenos">6450</span></a><span class="sd"> The new Table instance.</span>
+</span><span id="table_-6451"><a href="#table_-6451"><span class="linenos">6451</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="table_-6452"><a href="#table_-6452"><span class="linenos">6452</span></a> <span class="k">return</span> <span class="n">Table</span><span class="p">(</span>
+</span><span id="table_-6453"><a href="#table_-6453"><span class="linenos">6453</span></a> <span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">)</span> <span class="k">if</span> <span class="n">table</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="table_-6454"><a href="#table_-6454"><span class="linenos">6454</span></a> <span class="n">db</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">db</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">)</span> <span class="k">if</span> <span class="n">db</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="table_-6455"><a href="#table_-6455"><span class="linenos">6455</span></a> <span class="n">catalog</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">catalog</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">)</span> <span class="k">if</span> <span class="n">catalog</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="table_-6456"><a href="#table_-6456"><span class="linenos">6456</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_-6457"><a href="#table_-6457"><span class="linenos">6457</span></a> <span class="p">)</span>
</span></pre></div>
@@ -81640,37 +86365,37 @@ If an Expression instance is passed, this is used as-is.</li>
</div>
<a class="headerlink" href="#values"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="values-6276"><a href="#values-6276"><span class="linenos">6276</span></a><span class="k">def</span> <span class="nf">values</span><span class="p">(</span>
-</span><span id="values-6277"><a href="#values-6277"><span class="linenos">6277</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-6278"><a href="#values-6278"><span class="linenos">6278</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-6279"><a href="#values-6279"><span class="linenos">6279</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-6280"><a href="#values-6280"><span class="linenos">6280</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Values</span><span class="p">:</span>
-</span><span id="values-6281"><a href="#values-6281"><span class="linenos">6281</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build VALUES statement.</span>
-</span><span id="values-6282"><a href="#values-6282"><span class="linenos">6282</span></a>
-</span><span id="values-6283"><a href="#values-6283"><span class="linenos">6283</span></a><span class="sd"> Example:</span>
-</span><span id="values-6284"><a href="#values-6284"><span class="linenos">6284</span></a><span class="sd"> &gt;&gt;&gt; values([(1, &#39;2&#39;)]).sql()</span>
-</span><span id="values-6285"><a href="#values-6285"><span class="linenos">6285</span></a><span class="sd"> &quot;VALUES (1, &#39;2&#39;)&quot;</span>
-</span><span id="values-6286"><a href="#values-6286"><span class="linenos">6286</span></a>
-</span><span id="values-6287"><a href="#values-6287"><span class="linenos">6287</span></a><span class="sd"> Args:</span>
-</span><span id="values-6288"><a href="#values-6288"><span class="linenos">6288</span></a><span class="sd"> values: values statements that will be converted to SQL</span>
-</span><span id="values-6289"><a href="#values-6289"><span class="linenos">6289</span></a><span class="sd"> alias: optional alias</span>
-</span><span id="values-6290"><a href="#values-6290"><span class="linenos">6290</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-6291"><a href="#values-6291"><span class="linenos">6291</span></a><span class="sd"> If either are provided then an alias is also required.</span>
-</span><span id="values-6292"><a href="#values-6292"><span class="linenos">6292</span></a>
-</span><span id="values-6293"><a href="#values-6293"><span class="linenos">6293</span></a><span class="sd"> Returns:</span>
-</span><span id="values-6294"><a href="#values-6294"><span class="linenos">6294</span></a><span class="sd"> Values: the Values expression object</span>
-</span><span id="values-6295"><a href="#values-6295"><span class="linenos">6295</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="values-6296"><a href="#values-6296"><span class="linenos">6296</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-6297"><a href="#values-6297"><span class="linenos">6297</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-6298"><a href="#values-6298"><span class="linenos">6298</span></a>
-</span><span id="values-6299"><a href="#values-6299"><span class="linenos">6299</span></a> <span class="k">return</span> <span class="n">Values</span><span class="p">(</span>
-</span><span id="values-6300"><a href="#values-6300"><span class="linenos">6300</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-6301"><a href="#values-6301"><span class="linenos">6301</span></a> <span class="n">alias</span><span class="o">=</span><span class="p">(</span>
-</span><span id="values-6302"><a href="#values-6302"><span class="linenos">6302</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-6303"><a href="#values-6303"><span class="linenos">6303</span></a> <span class="k">if</span> <span class="n">columns</span>
-</span><span id="values-6304"><a href="#values-6304"><span class="linenos">6304</span></a> <span class="k">else</span> <span class="p">(</span><span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">))</span> <span class="k">if</span> <span class="n">alias</span> <span class="k">else</span> <span class="kc">None</span><span class="p">)</span>
-</span><span id="values-6305"><a href="#values-6305"><span class="linenos">6305</span></a> <span class="p">),</span>
-</span><span id="values-6306"><a href="#values-6306"><span class="linenos">6306</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="values-6460"><a href="#values-6460"><span class="linenos">6460</span></a><span class="k">def</span> <span class="nf">values</span><span class="p">(</span>
+</span><span id="values-6461"><a href="#values-6461"><span class="linenos">6461</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-6462"><a href="#values-6462"><span class="linenos">6462</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-6463"><a href="#values-6463"><span class="linenos">6463</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-6464"><a href="#values-6464"><span class="linenos">6464</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Values</span><span class="p">:</span>
+</span><span id="values-6465"><a href="#values-6465"><span class="linenos">6465</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build VALUES statement.</span>
+</span><span id="values-6466"><a href="#values-6466"><span class="linenos">6466</span></a>
+</span><span id="values-6467"><a href="#values-6467"><span class="linenos">6467</span></a><span class="sd"> Example:</span>
+</span><span id="values-6468"><a href="#values-6468"><span class="linenos">6468</span></a><span class="sd"> &gt;&gt;&gt; values([(1, &#39;2&#39;)]).sql()</span>
+</span><span id="values-6469"><a href="#values-6469"><span class="linenos">6469</span></a><span class="sd"> &quot;VALUES (1, &#39;2&#39;)&quot;</span>
+</span><span id="values-6470"><a href="#values-6470"><span class="linenos">6470</span></a>
+</span><span id="values-6471"><a href="#values-6471"><span class="linenos">6471</span></a><span class="sd"> Args:</span>
+</span><span id="values-6472"><a href="#values-6472"><span class="linenos">6472</span></a><span class="sd"> values: values statements that will be converted to SQL</span>
+</span><span id="values-6473"><a href="#values-6473"><span class="linenos">6473</span></a><span class="sd"> alias: optional alias</span>
+</span><span id="values-6474"><a href="#values-6474"><span class="linenos">6474</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-6475"><a href="#values-6475"><span class="linenos">6475</span></a><span class="sd"> If either are provided then an alias is also required.</span>
+</span><span id="values-6476"><a href="#values-6476"><span class="linenos">6476</span></a>
+</span><span id="values-6477"><a href="#values-6477"><span class="linenos">6477</span></a><span class="sd"> Returns:</span>
+</span><span id="values-6478"><a href="#values-6478"><span class="linenos">6478</span></a><span class="sd"> Values: the Values expression object</span>
+</span><span id="values-6479"><a href="#values-6479"><span class="linenos">6479</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="values-6480"><a href="#values-6480"><span class="linenos">6480</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-6481"><a href="#values-6481"><span class="linenos">6481</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-6482"><a href="#values-6482"><span class="linenos">6482</span></a>
+</span><span id="values-6483"><a href="#values-6483"><span class="linenos">6483</span></a> <span class="k">return</span> <span class="n">Values</span><span class="p">(</span>
+</span><span id="values-6484"><a href="#values-6484"><span class="linenos">6484</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-6485"><a href="#values-6485"><span class="linenos">6485</span></a> <span class="n">alias</span><span class="o">=</span><span class="p">(</span>
+</span><span id="values-6486"><a href="#values-6486"><span class="linenos">6486</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-6487"><a href="#values-6487"><span class="linenos">6487</span></a> <span class="k">if</span> <span class="n">columns</span>
+</span><span id="values-6488"><a href="#values-6488"><span class="linenos">6488</span></a> <span class="k">else</span> <span class="p">(</span><span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">))</span> <span class="k">if</span> <span class="n">alias</span> <span class="k">else</span> <span class="kc">None</span><span class="p">)</span>
+</span><span id="values-6489"><a href="#values-6489"><span class="linenos">6489</span></a> <span class="p">),</span>
+</span><span id="values-6490"><a href="#values-6490"><span class="linenos">6490</span></a> <span class="p">)</span>
</span></pre></div>
@@ -81715,28 +86440,28 @@ If either are provided then an alias is also required.</li>
</div>
<a class="headerlink" href="#var"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="var-6309"><a href="#var-6309"><span class="linenos">6309</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-6310"><a href="#var-6310"><span class="linenos">6310</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a SQL variable.</span>
-</span><span id="var-6311"><a href="#var-6311"><span class="linenos">6311</span></a>
-</span><span id="var-6312"><a href="#var-6312"><span class="linenos">6312</span></a><span class="sd"> Example:</span>
-</span><span id="var-6313"><a href="#var-6313"><span class="linenos">6313</span></a><span class="sd"> &gt;&gt;&gt; repr(var(&#39;x&#39;))</span>
-</span><span id="var-6314"><a href="#var-6314"><span class="linenos">6314</span></a><span class="sd"> &#39;(VAR this: x)&#39;</span>
-</span><span id="var-6315"><a href="#var-6315"><span class="linenos">6315</span></a>
-</span><span id="var-6316"><a href="#var-6316"><span class="linenos">6316</span></a><span class="sd"> &gt;&gt;&gt; repr(var(column(&#39;x&#39;, table=&#39;y&#39;)))</span>
-</span><span id="var-6317"><a href="#var-6317"><span class="linenos">6317</span></a><span class="sd"> &#39;(VAR this: x)&#39;</span>
-</span><span id="var-6318"><a href="#var-6318"><span class="linenos">6318</span></a>
-</span><span id="var-6319"><a href="#var-6319"><span class="linenos">6319</span></a><span class="sd"> Args:</span>
-</span><span id="var-6320"><a href="#var-6320"><span class="linenos">6320</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-6321"><a href="#var-6321"><span class="linenos">6321</span></a>
-</span><span id="var-6322"><a href="#var-6322"><span class="linenos">6322</span></a><span class="sd"> Returns:</span>
-</span><span id="var-6323"><a href="#var-6323"><span class="linenos">6323</span></a><span class="sd"> The new variable node.</span>
-</span><span id="var-6324"><a href="#var-6324"><span class="linenos">6324</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="var-6325"><a href="#var-6325"><span class="linenos">6325</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-6326"><a href="#var-6326"><span class="linenos">6326</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-6327"><a href="#var-6327"><span class="linenos">6327</span></a>
-</span><span id="var-6328"><a href="#var-6328"><span class="linenos">6328</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-6329"><a href="#var-6329"><span class="linenos">6329</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-6330"><a href="#var-6330"><span class="linenos">6330</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-6493"><a href="#var-6493"><span class="linenos">6493</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-6494"><a href="#var-6494"><span class="linenos">6494</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a SQL variable.</span>
+</span><span id="var-6495"><a href="#var-6495"><span class="linenos">6495</span></a>
+</span><span id="var-6496"><a href="#var-6496"><span class="linenos">6496</span></a><span class="sd"> Example:</span>
+</span><span id="var-6497"><a href="#var-6497"><span class="linenos">6497</span></a><span class="sd"> &gt;&gt;&gt; repr(var(&#39;x&#39;))</span>
+</span><span id="var-6498"><a href="#var-6498"><span class="linenos">6498</span></a><span class="sd"> &#39;Var(this=x)&#39;</span>
+</span><span id="var-6499"><a href="#var-6499"><span class="linenos">6499</span></a>
+</span><span id="var-6500"><a href="#var-6500"><span class="linenos">6500</span></a><span class="sd"> &gt;&gt;&gt; repr(var(column(&#39;x&#39;, table=&#39;y&#39;)))</span>
+</span><span id="var-6501"><a href="#var-6501"><span class="linenos">6501</span></a><span class="sd"> &#39;Var(this=x)&#39;</span>
+</span><span id="var-6502"><a href="#var-6502"><span class="linenos">6502</span></a>
+</span><span id="var-6503"><a href="#var-6503"><span class="linenos">6503</span></a><span class="sd"> Args:</span>
+</span><span id="var-6504"><a href="#var-6504"><span class="linenos">6504</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-6505"><a href="#var-6505"><span class="linenos">6505</span></a>
+</span><span id="var-6506"><a href="#var-6506"><span class="linenos">6506</span></a><span class="sd"> Returns:</span>
+</span><span id="var-6507"><a href="#var-6507"><span class="linenos">6507</span></a><span class="sd"> The new variable node.</span>
+</span><span id="var-6508"><a href="#var-6508"><span class="linenos">6508</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="var-6509"><a href="#var-6509"><span class="linenos">6509</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-6510"><a href="#var-6510"><span class="linenos">6510</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-6511"><a href="#var-6511"><span class="linenos">6511</span></a>
+</span><span id="var-6512"><a href="#var-6512"><span class="linenos">6512</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-6513"><a href="#var-6513"><span class="linenos">6513</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-6514"><a href="#var-6514"><span class="linenos">6514</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>
@@ -81747,13 +86472,13 @@ If either are provided then an alias is also required.</li>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="nb">repr</span><span class="p">(</span><span class="n">var</span><span class="p">(</span><span class="s1">&#39;x&#39;</span><span class="p">))</span>
-<span class="go">&#39;(VAR this: x)&#39;</span>
+<span class="go">&#39;Var(this=x)&#39;</span>
</code></pre>
</div>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="nb">repr</span><span class="p">(</span><span class="n">var</span><span class="p">(</span><span class="n">column</span><span class="p">(</span><span class="s1">&#39;x&#39;</span><span class="p">,</span> <span class="n">table</span><span class="o">=</span><span class="s1">&#39;y&#39;</span><span class="p">)))</span>
-<span class="go">&#39;(VAR this: x)&#39;</span>
+<span class="go">&#39;Var(this=x)&#39;</span>
</code></pre>
</div>
</blockquote>
@@ -81784,24 +86509,24 @@ If either are provided then an alias is also required.</li>
</div>
<a class="headerlink" href="#rename_table"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="rename_table-6333"><a href="#rename_table-6333"><span class="linenos">6333</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-6334"><a href="#rename_table-6334"><span class="linenos">6334</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build ALTER TABLE... RENAME... expression</span>
-</span><span id="rename_table-6335"><a href="#rename_table-6335"><span class="linenos">6335</span></a>
-</span><span id="rename_table-6336"><a href="#rename_table-6336"><span class="linenos">6336</span></a><span class="sd"> Args:</span>
-</span><span id="rename_table-6337"><a href="#rename_table-6337"><span class="linenos">6337</span></a><span class="sd"> old_name: The old name of the table</span>
-</span><span id="rename_table-6338"><a href="#rename_table-6338"><span class="linenos">6338</span></a><span class="sd"> new_name: The new name of the table</span>
-</span><span id="rename_table-6339"><a href="#rename_table-6339"><span class="linenos">6339</span></a>
-</span><span id="rename_table-6340"><a href="#rename_table-6340"><span class="linenos">6340</span></a><span class="sd"> Returns:</span>
-</span><span id="rename_table-6341"><a href="#rename_table-6341"><span class="linenos">6341</span></a><span class="sd"> Alter table expression</span>
-</span><span id="rename_table-6342"><a href="#rename_table-6342"><span class="linenos">6342</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="rename_table-6343"><a href="#rename_table-6343"><span class="linenos">6343</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-6344"><a href="#rename_table-6344"><span class="linenos">6344</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-6345"><a href="#rename_table-6345"><span class="linenos">6345</span></a> <span class="k">return</span> <span class="n">AlterTable</span><span class="p">(</span>
-</span><span id="rename_table-6346"><a href="#rename_table-6346"><span class="linenos">6346</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-6347"><a href="#rename_table-6347"><span class="linenos">6347</span></a> <span class="n">actions</span><span class="o">=</span><span class="p">[</span>
-</span><span id="rename_table-6348"><a href="#rename_table-6348"><span class="linenos">6348</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-6349"><a href="#rename_table-6349"><span class="linenos">6349</span></a> <span class="p">],</span>
-</span><span id="rename_table-6350"><a href="#rename_table-6350"><span class="linenos">6350</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="rename_table-6517"><a href="#rename_table-6517"><span class="linenos">6517</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-6518"><a href="#rename_table-6518"><span class="linenos">6518</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build ALTER TABLE... RENAME... expression</span>
+</span><span id="rename_table-6519"><a href="#rename_table-6519"><span class="linenos">6519</span></a>
+</span><span id="rename_table-6520"><a href="#rename_table-6520"><span class="linenos">6520</span></a><span class="sd"> Args:</span>
+</span><span id="rename_table-6521"><a href="#rename_table-6521"><span class="linenos">6521</span></a><span class="sd"> old_name: The old name of the table</span>
+</span><span id="rename_table-6522"><a href="#rename_table-6522"><span class="linenos">6522</span></a><span class="sd"> new_name: The new name of the table</span>
+</span><span id="rename_table-6523"><a href="#rename_table-6523"><span class="linenos">6523</span></a>
+</span><span id="rename_table-6524"><a href="#rename_table-6524"><span class="linenos">6524</span></a><span class="sd"> Returns:</span>
+</span><span id="rename_table-6525"><a href="#rename_table-6525"><span class="linenos">6525</span></a><span class="sd"> Alter table expression</span>
+</span><span id="rename_table-6526"><a href="#rename_table-6526"><span class="linenos">6526</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="rename_table-6527"><a href="#rename_table-6527"><span class="linenos">6527</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-6528"><a href="#rename_table-6528"><span class="linenos">6528</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-6529"><a href="#rename_table-6529"><span class="linenos">6529</span></a> <span class="k">return</span> <span class="n">AlterTable</span><span class="p">(</span>
+</span><span id="rename_table-6530"><a href="#rename_table-6530"><span class="linenos">6530</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-6531"><a href="#rename_table-6531"><span class="linenos">6531</span></a> <span class="n">actions</span><span class="o">=</span><span class="p">[</span>
+</span><span id="rename_table-6532"><a href="#rename_table-6532"><span class="linenos">6532</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-6533"><a href="#rename_table-6533"><span class="linenos">6533</span></a> <span class="p">],</span>
+</span><span id="rename_table-6534"><a href="#rename_table-6534"><span class="linenos">6534</span></a> <span class="p">)</span>
</span></pre></div>
@@ -81834,46 +86559,46 @@ If either are provided then an alias is also required.</li>
</div>
<a class="headerlink" href="#convert"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="convert-6353"><a href="#convert-6353"><span class="linenos">6353</span></a><span class="k">def</span> <span class="nf">convert</span><span class="p">(</span><span class="n">value</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="convert-6354"><a href="#convert-6354"><span class="linenos">6354</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-6355"><a href="#convert-6355"><span class="linenos">6355</span></a>
-</span><span id="convert-6356"><a href="#convert-6356"><span class="linenos">6356</span></a><span class="sd"> Raises an error if a conversion is not possible.</span>
-</span><span id="convert-6357"><a href="#convert-6357"><span class="linenos">6357</span></a>
-</span><span id="convert-6358"><a href="#convert-6358"><span class="linenos">6358</span></a><span class="sd"> Args:</span>
-</span><span id="convert-6359"><a href="#convert-6359"><span class="linenos">6359</span></a><span class="sd"> value: A python object.</span>
-</span><span id="convert-6360"><a href="#convert-6360"><span class="linenos">6360</span></a><span class="sd"> copy: Whether or not to copy `value` (only applies to Expressions and collections).</span>
-</span><span id="convert-6361"><a href="#convert-6361"><span class="linenos">6361</span></a>
-</span><span id="convert-6362"><a href="#convert-6362"><span class="linenos">6362</span></a><span class="sd"> Returns:</span>
-</span><span id="convert-6363"><a href="#convert-6363"><span class="linenos">6363</span></a><span class="sd"> Expression: the equivalent expression object.</span>
-</span><span id="convert-6364"><a href="#convert-6364"><span class="linenos">6364</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="convert-6365"><a href="#convert-6365"><span class="linenos">6365</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-6366"><a href="#convert-6366"><span class="linenos">6366</span></a> <span class="k">return</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
-</span><span id="convert-6367"><a href="#convert-6367"><span class="linenos">6367</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-6368"><a href="#convert-6368"><span class="linenos">6368</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-6369"><a href="#convert-6369"><span class="linenos">6369</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-6370"><a href="#convert-6370"><span class="linenos">6370</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-6371"><a href="#convert-6371"><span class="linenos">6371</span></a> <span class="k">if</span> <span class="n">value</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">float</span><span class="p">)</span> <span class="ow">and</span> <span class="n">math</span><span class="o">.</span><span class="n">isnan</span><span class="p">(</span><span class="n">value</span><span class="p">)):</span>
-</span><span id="convert-6372"><a href="#convert-6372"><span class="linenos">6372</span></a> <span class="k">return</span> <span class="n">NULL</span>
-</span><span id="convert-6373"><a href="#convert-6373"><span class="linenos">6373</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-6374"><a href="#convert-6374"><span class="linenos">6374</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-6375"><a href="#convert-6375"><span class="linenos">6375</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-6376"><a href="#convert-6376"><span class="linenos">6376</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-6377"><a href="#convert-6377"><span class="linenos">6377</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-6378"><a href="#convert-6378"><span class="linenos">6378</span></a> <span class="p">)</span>
-</span><span id="convert-6379"><a href="#convert-6379"><span class="linenos">6379</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-6380"><a href="#convert-6380"><span class="linenos">6380</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-6381"><a href="#convert-6381"><span class="linenos">6381</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-6382"><a href="#convert-6382"><span class="linenos">6382</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-6383"><a href="#convert-6383"><span class="linenos">6383</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-6384"><a href="#convert-6384"><span class="linenos">6384</span></a> <span class="k">return</span> <span class="n">Tuple</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">])</span>
-</span><span id="convert-6385"><a href="#convert-6385"><span class="linenos">6385</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-6386"><a href="#convert-6386"><span class="linenos">6386</span></a> <span class="k">return</span> <span class="n">Array</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">])</span>
-</span><span id="convert-6387"><a href="#convert-6387"><span class="linenos">6387</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-6388"><a href="#convert-6388"><span class="linenos">6388</span></a> <span class="k">return</span> <span class="n">Map</span><span class="p">(</span>
-</span><span id="convert-6389"><a href="#convert-6389"><span class="linenos">6389</span></a> <span class="n">keys</span><span class="o">=</span><span class="n">Array</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="n">value</span><span class="p">]),</span>
-</span><span id="convert-6390"><a href="#convert-6390"><span class="linenos">6390</span></a> <span class="n">values</span><span class="o">=</span><span class="n">Array</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="o">.</span><span class="n">values</span><span class="p">()]),</span>
-</span><span id="convert-6391"><a href="#convert-6391"><span class="linenos">6391</span></a> <span class="p">)</span>
-</span><span id="convert-6392"><a href="#convert-6392"><span class="linenos">6392</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-6537"><a href="#convert-6537"><span class="linenos">6537</span></a><span class="k">def</span> <span class="nf">convert</span><span class="p">(</span><span class="n">value</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="convert-6538"><a href="#convert-6538"><span class="linenos">6538</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-6539"><a href="#convert-6539"><span class="linenos">6539</span></a>
+</span><span id="convert-6540"><a href="#convert-6540"><span class="linenos">6540</span></a><span class="sd"> Raises an error if a conversion is not possible.</span>
+</span><span id="convert-6541"><a href="#convert-6541"><span class="linenos">6541</span></a>
+</span><span id="convert-6542"><a href="#convert-6542"><span class="linenos">6542</span></a><span class="sd"> Args:</span>
+</span><span id="convert-6543"><a href="#convert-6543"><span class="linenos">6543</span></a><span class="sd"> value: A python object.</span>
+</span><span id="convert-6544"><a href="#convert-6544"><span class="linenos">6544</span></a><span class="sd"> copy: Whether or not to copy `value` (only applies to Expressions and collections).</span>
+</span><span id="convert-6545"><a href="#convert-6545"><span class="linenos">6545</span></a>
+</span><span id="convert-6546"><a href="#convert-6546"><span class="linenos">6546</span></a><span class="sd"> Returns:</span>
+</span><span id="convert-6547"><a href="#convert-6547"><span class="linenos">6547</span></a><span class="sd"> Expression: the equivalent expression object.</span>
+</span><span id="convert-6548"><a href="#convert-6548"><span class="linenos">6548</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="convert-6549"><a href="#convert-6549"><span class="linenos">6549</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-6550"><a href="#convert-6550"><span class="linenos">6550</span></a> <span class="k">return</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
+</span><span id="convert-6551"><a href="#convert-6551"><span class="linenos">6551</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-6552"><a href="#convert-6552"><span class="linenos">6552</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-6553"><a href="#convert-6553"><span class="linenos">6553</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-6554"><a href="#convert-6554"><span class="linenos">6554</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-6555"><a href="#convert-6555"><span class="linenos">6555</span></a> <span class="k">if</span> <span class="n">value</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">float</span><span class="p">)</span> <span class="ow">and</span> <span class="n">math</span><span class="o">.</span><span class="n">isnan</span><span class="p">(</span><span class="n">value</span><span class="p">)):</span>
+</span><span id="convert-6556"><a href="#convert-6556"><span class="linenos">6556</span></a> <span class="k">return</span> <span class="n">NULL</span>
+</span><span id="convert-6557"><a href="#convert-6557"><span class="linenos">6557</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-6558"><a href="#convert-6558"><span class="linenos">6558</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-6559"><a href="#convert-6559"><span class="linenos">6559</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-6560"><a href="#convert-6560"><span class="linenos">6560</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-6561"><a href="#convert-6561"><span class="linenos">6561</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-6562"><a href="#convert-6562"><span class="linenos">6562</span></a> <span class="p">)</span>
+</span><span id="convert-6563"><a href="#convert-6563"><span class="linenos">6563</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-6564"><a href="#convert-6564"><span class="linenos">6564</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-6565"><a href="#convert-6565"><span class="linenos">6565</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-6566"><a href="#convert-6566"><span class="linenos">6566</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-6567"><a href="#convert-6567"><span class="linenos">6567</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-6568"><a href="#convert-6568"><span class="linenos">6568</span></a> <span class="k">return</span> <span class="n">Tuple</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">])</span>
+</span><span id="convert-6569"><a href="#convert-6569"><span class="linenos">6569</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-6570"><a href="#convert-6570"><span class="linenos">6570</span></a> <span class="k">return</span> <span class="n">Array</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">])</span>
+</span><span id="convert-6571"><a href="#convert-6571"><span class="linenos">6571</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-6572"><a href="#convert-6572"><span class="linenos">6572</span></a> <span class="k">return</span> <span class="n">Map</span><span class="p">(</span>
+</span><span id="convert-6573"><a href="#convert-6573"><span class="linenos">6573</span></a> <span class="n">keys</span><span class="o">=</span><span class="n">Array</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="n">value</span><span class="p">]),</span>
+</span><span id="convert-6574"><a href="#convert-6574"><span class="linenos">6574</span></a> <span class="n">values</span><span class="o">=</span><span class="n">Array</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="o">.</span><span class="n">values</span><span class="p">()]),</span>
+</span><span id="convert-6575"><a href="#convert-6575"><span class="linenos">6575</span></a> <span class="p">)</span>
+</span><span id="convert-6576"><a href="#convert-6576"><span class="linenos">6576</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>
@@ -81908,26 +86633,26 @@ If either are provided then an alias is also required.</li>
</div>
<a class="headerlink" href="#replace_children"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="replace_children-6395"><a href="#replace_children-6395"><span class="linenos">6395</span></a><span class="k">def</span> <span class="nf">replace_children</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">fun</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="replace_children-6396"><a href="#replace_children-6396"><span class="linenos">6396</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="replace_children-6397"><a href="#replace_children-6397"><span class="linenos">6397</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-6398"><a href="#replace_children-6398"><span class="linenos">6398</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="replace_children-6399"><a href="#replace_children-6399"><span class="linenos">6399</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-6400"><a href="#replace_children-6400"><span class="linenos">6400</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-6401"><a href="#replace_children-6401"><span class="linenos">6401</span></a>
-</span><span id="replace_children-6402"><a href="#replace_children-6402"><span class="linenos">6402</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-6403"><a href="#replace_children-6403"><span class="linenos">6403</span></a> <span class="n">new_child_nodes</span> <span class="o">=</span> <span class="p">[]</span>
-</span><span id="replace_children-6404"><a href="#replace_children-6404"><span class="linenos">6404</span></a>
-</span><span id="replace_children-6405"><a href="#replace_children-6405"><span class="linenos">6405</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-6406"><a href="#replace_children-6406"><span class="linenos">6406</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-6407"><a href="#replace_children-6407"><span class="linenos">6407</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-6408"><a href="#replace_children-6408"><span class="linenos">6408</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-6409"><a href="#replace_children-6409"><span class="linenos">6409</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-6410"><a href="#replace_children-6410"><span class="linenos">6410</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-6411"><a href="#replace_children-6411"><span class="linenos">6411</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="replace_children-6412"><a href="#replace_children-6412"><span class="linenos">6412</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-6413"><a href="#replace_children-6413"><span class="linenos">6413</span></a>
-</span><span id="replace_children-6414"><a href="#replace_children-6414"><span class="linenos">6414</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-6579"><a href="#replace_children-6579"><span class="linenos">6579</span></a><span class="k">def</span> <span class="nf">replace_children</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">fun</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="replace_children-6580"><a href="#replace_children-6580"><span class="linenos">6580</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="replace_children-6581"><a href="#replace_children-6581"><span class="linenos">6581</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-6582"><a href="#replace_children-6582"><span class="linenos">6582</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="replace_children-6583"><a href="#replace_children-6583"><span class="linenos">6583</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-6584"><a href="#replace_children-6584"><span class="linenos">6584</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-6585"><a href="#replace_children-6585"><span class="linenos">6585</span></a>
+</span><span id="replace_children-6586"><a href="#replace_children-6586"><span class="linenos">6586</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-6587"><a href="#replace_children-6587"><span class="linenos">6587</span></a> <span class="n">new_child_nodes</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="replace_children-6588"><a href="#replace_children-6588"><span class="linenos">6588</span></a>
+</span><span id="replace_children-6589"><a href="#replace_children-6589"><span class="linenos">6589</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-6590"><a href="#replace_children-6590"><span class="linenos">6590</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-6591"><a href="#replace_children-6591"><span class="linenos">6591</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-6592"><a href="#replace_children-6592"><span class="linenos">6592</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-6593"><a href="#replace_children-6593"><span class="linenos">6593</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-6594"><a href="#replace_children-6594"><span class="linenos">6594</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-6595"><a href="#replace_children-6595"><span class="linenos">6595</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="replace_children-6596"><a href="#replace_children-6596"><span class="linenos">6596</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-6597"><a href="#replace_children-6597"><span class="linenos">6597</span></a>
+</span><span id="replace_children-6598"><a href="#replace_children-6598"><span class="linenos">6598</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>
@@ -81947,27 +86672,27 @@ If either are provided then an alias is also required.</li>
</div>
<a class="headerlink" href="#column_table_names"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="column_table_names-6417"><a href="#column_table_names-6417"><span class="linenos">6417</span></a><span class="k">def</span> <span class="nf">column_table_names</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">exclude</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Set</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
-</span><span id="column_table_names-6418"><a href="#column_table_names-6418"><span class="linenos">6418</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="column_table_names-6419"><a href="#column_table_names-6419"><span class="linenos">6419</span></a><span class="sd"> Return all table names referenced through columns in an expression.</span>
-</span><span id="column_table_names-6420"><a href="#column_table_names-6420"><span class="linenos">6420</span></a>
-</span><span id="column_table_names-6421"><a href="#column_table_names-6421"><span class="linenos">6421</span></a><span class="sd"> Example:</span>
-</span><span id="column_table_names-6422"><a href="#column_table_names-6422"><span class="linenos">6422</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="column_table_names-6423"><a href="#column_table_names-6423"><span class="linenos">6423</span></a><span class="sd"> &gt;&gt;&gt; sorted(column_table_names(sqlglot.parse_one(&quot;a.b AND c.d AND c.e&quot;)))</span>
-</span><span id="column_table_names-6424"><a href="#column_table_names-6424"><span class="linenos">6424</span></a><span class="sd"> [&#39;a&#39;, &#39;c&#39;]</span>
-</span><span id="column_table_names-6425"><a href="#column_table_names-6425"><span class="linenos">6425</span></a>
-</span><span id="column_table_names-6426"><a href="#column_table_names-6426"><span class="linenos">6426</span></a><span class="sd"> Args:</span>
-</span><span id="column_table_names-6427"><a href="#column_table_names-6427"><span class="linenos">6427</span></a><span class="sd"> expression: expression to find table names.</span>
-</span><span id="column_table_names-6428"><a href="#column_table_names-6428"><span class="linenos">6428</span></a><span class="sd"> exclude: a table name to exclude</span>
-</span><span id="column_table_names-6429"><a href="#column_table_names-6429"><span class="linenos">6429</span></a>
-</span><span id="column_table_names-6430"><a href="#column_table_names-6430"><span class="linenos">6430</span></a><span class="sd"> Returns:</span>
-</span><span id="column_table_names-6431"><a href="#column_table_names-6431"><span class="linenos">6431</span></a><span class="sd"> A list of unique names.</span>
-</span><span id="column_table_names-6432"><a href="#column_table_names-6432"><span class="linenos">6432</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="column_table_names-6433"><a href="#column_table_names-6433"><span class="linenos">6433</span></a> <span class="k">return</span> <span class="p">{</span>
-</span><span id="column_table_names-6434"><a href="#column_table_names-6434"><span class="linenos">6434</span></a> <span class="n">table</span>
-</span><span id="column_table_names-6435"><a href="#column_table_names-6435"><span class="linenos">6435</span></a> <span class="k">for</span> <span class="n">table</span> <span class="ow">in</span> <span class="p">(</span><span class="n">column</span><span class="o">.</span><span class="n">table</span> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="n">Column</span><span class="p">))</span>
-</span><span id="column_table_names-6436"><a href="#column_table_names-6436"><span class="linenos">6436</span></a> <span class="k">if</span> <span class="n">table</span> <span class="ow">and</span> <span class="n">table</span> <span class="o">!=</span> <span class="n">exclude</span>
-</span><span id="column_table_names-6437"><a href="#column_table_names-6437"><span class="linenos">6437</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="column_table_names-6601"><a href="#column_table_names-6601"><span class="linenos">6601</span></a><span class="k">def</span> <span class="nf">column_table_names</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">exclude</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Set</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
+</span><span id="column_table_names-6602"><a href="#column_table_names-6602"><span class="linenos">6602</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="column_table_names-6603"><a href="#column_table_names-6603"><span class="linenos">6603</span></a><span class="sd"> Return all table names referenced through columns in an expression.</span>
+</span><span id="column_table_names-6604"><a href="#column_table_names-6604"><span class="linenos">6604</span></a>
+</span><span id="column_table_names-6605"><a href="#column_table_names-6605"><span class="linenos">6605</span></a><span class="sd"> Example:</span>
+</span><span id="column_table_names-6606"><a href="#column_table_names-6606"><span class="linenos">6606</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="column_table_names-6607"><a href="#column_table_names-6607"><span class="linenos">6607</span></a><span class="sd"> &gt;&gt;&gt; sorted(column_table_names(sqlglot.parse_one(&quot;a.b AND c.d AND c.e&quot;)))</span>
+</span><span id="column_table_names-6608"><a href="#column_table_names-6608"><span class="linenos">6608</span></a><span class="sd"> [&#39;a&#39;, &#39;c&#39;]</span>
+</span><span id="column_table_names-6609"><a href="#column_table_names-6609"><span class="linenos">6609</span></a>
+</span><span id="column_table_names-6610"><a href="#column_table_names-6610"><span class="linenos">6610</span></a><span class="sd"> Args:</span>
+</span><span id="column_table_names-6611"><a href="#column_table_names-6611"><span class="linenos">6611</span></a><span class="sd"> expression: expression to find table names.</span>
+</span><span id="column_table_names-6612"><a href="#column_table_names-6612"><span class="linenos">6612</span></a><span class="sd"> exclude: a table name to exclude</span>
+</span><span id="column_table_names-6613"><a href="#column_table_names-6613"><span class="linenos">6613</span></a>
+</span><span id="column_table_names-6614"><a href="#column_table_names-6614"><span class="linenos">6614</span></a><span class="sd"> Returns:</span>
+</span><span id="column_table_names-6615"><a href="#column_table_names-6615"><span class="linenos">6615</span></a><span class="sd"> A list of unique names.</span>
+</span><span id="column_table_names-6616"><a href="#column_table_names-6616"><span class="linenos">6616</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="column_table_names-6617"><a href="#column_table_names-6617"><span class="linenos">6617</span></a> <span class="k">return</span> <span class="p">{</span>
+</span><span id="column_table_names-6618"><a href="#column_table_names-6618"><span class="linenos">6618</span></a> <span class="n">table</span>
+</span><span id="column_table_names-6619"><a href="#column_table_names-6619"><span class="linenos">6619</span></a> <span class="k">for</span> <span class="n">table</span> <span class="ow">in</span> <span class="p">(</span><span class="n">column</span><span class="o">.</span><span class="n">table</span> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="n">Column</span><span class="p">))</span>
+</span><span id="column_table_names-6620"><a href="#column_table_names-6620"><span class="linenos">6620</span></a> <span class="k">if</span> <span class="n">table</span> <span class="ow">and</span> <span class="n">table</span> <span class="o">!=</span> <span class="n">exclude</span>
+</span><span id="column_table_names-6621"><a href="#column_table_names-6621"><span class="linenos">6621</span></a> <span class="p">}</span>
</span></pre></div>
@@ -82011,36 +86736,36 @@ If either are provided then an alias is also required.</li>
</div>
<a class="headerlink" href="#table_name"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="table_name-6440"><a href="#table_name-6440"><span class="linenos">6440</span></a><span class="k">def</span> <span class="nf">table_name</span><span class="p">(</span><span class="n">table</span><span class="p">:</span> <span class="n">Table</span> <span class="o">|</span> <span class="nb">str</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">identify</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="table_name-6441"><a href="#table_name-6441"><span class="linenos">6441</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-6442"><a href="#table_name-6442"><span class="linenos">6442</span></a>
-</span><span id="table_name-6443"><a href="#table_name-6443"><span class="linenos">6443</span></a><span class="sd"> Args:</span>
-</span><span id="table_name-6444"><a href="#table_name-6444"><span class="linenos">6444</span></a><span class="sd"> table: Table expression node or string.</span>
-</span><span id="table_name-6445"><a href="#table_name-6445"><span class="linenos">6445</span></a><span class="sd"> dialect: The dialect to generate the table name for.</span>
-</span><span id="table_name-6446"><a href="#table_name-6446"><span class="linenos">6446</span></a><span class="sd"> identify: Determines when an identifier should be quoted. Possible values are:</span>
-</span><span id="table_name-6447"><a href="#table_name-6447"><span class="linenos">6447</span></a><span class="sd"> False (default): Never quote, except in cases where it&#39;s mandatory by the dialect.</span>
-</span><span id="table_name-6448"><a href="#table_name-6448"><span class="linenos">6448</span></a><span class="sd"> True: Always quote.</span>
-</span><span id="table_name-6449"><a href="#table_name-6449"><span class="linenos">6449</span></a>
-</span><span id="table_name-6450"><a href="#table_name-6450"><span class="linenos">6450</span></a><span class="sd"> Examples:</span>
-</span><span id="table_name-6451"><a href="#table_name-6451"><span class="linenos">6451</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
-</span><span id="table_name-6452"><a href="#table_name-6452"><span class="linenos">6452</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-6453"><a href="#table_name-6453"><span class="linenos">6453</span></a><span class="sd"> &#39;a.b.c&#39;</span>
-</span><span id="table_name-6454"><a href="#table_name-6454"><span class="linenos">6454</span></a>
-</span><span id="table_name-6455"><a href="#table_name-6455"><span class="linenos">6455</span></a><span class="sd"> Returns:</span>
-</span><span id="table_name-6456"><a href="#table_name-6456"><span class="linenos">6456</span></a><span class="sd"> The table name.</span>
-</span><span id="table_name-6457"><a href="#table_name-6457"><span class="linenos">6457</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="table_name-6458"><a href="#table_name-6458"><span class="linenos">6458</span></a>
-</span><span id="table_name-6459"><a href="#table_name-6459"><span class="linenos">6459</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span>
-</span><span id="table_name-6460"><a href="#table_name-6460"><span class="linenos">6460</span></a>
-</span><span id="table_name-6461"><a href="#table_name-6461"><span class="linenos">6461</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-6462"><a href="#table_name-6462"><span class="linenos">6462</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-6463"><a href="#table_name-6463"><span class="linenos">6463</span></a>
-</span><span id="table_name-6464"><a href="#table_name-6464"><span class="linenos">6464</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-6465"><a href="#table_name-6465"><span class="linenos">6465</span></a> <span class="n">part</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">identify</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</span><span id="table_name-6466"><a href="#table_name-6466"><span class="linenos">6466</span></a> <span class="k">if</span> <span class="n">identify</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">SAFE_IDENTIFIER_RE</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">part</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
-</span><span id="table_name-6467"><a href="#table_name-6467"><span class="linenos">6467</span></a> <span class="k">else</span> <span class="n">part</span><span class="o">.</span><span class="n">name</span>
-</span><span id="table_name-6468"><a href="#table_name-6468"><span class="linenos">6468</span></a> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="n">table</span><span class="o">.</span><span class="n">parts</span>
-</span><span id="table_name-6469"><a href="#table_name-6469"><span class="linenos">6469</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="table_name-6624"><a href="#table_name-6624"><span class="linenos">6624</span></a><span class="k">def</span> <span class="nf">table_name</span><span class="p">(</span><span class="n">table</span><span class="p">:</span> <span class="n">Table</span> <span class="o">|</span> <span class="nb">str</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">identify</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="table_name-6625"><a href="#table_name-6625"><span class="linenos">6625</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-6626"><a href="#table_name-6626"><span class="linenos">6626</span></a>
+</span><span id="table_name-6627"><a href="#table_name-6627"><span class="linenos">6627</span></a><span class="sd"> Args:</span>
+</span><span id="table_name-6628"><a href="#table_name-6628"><span class="linenos">6628</span></a><span class="sd"> table: Table expression node or string.</span>
+</span><span id="table_name-6629"><a href="#table_name-6629"><span class="linenos">6629</span></a><span class="sd"> dialect: The dialect to generate the table name for.</span>
+</span><span id="table_name-6630"><a href="#table_name-6630"><span class="linenos">6630</span></a><span class="sd"> identify: Determines when an identifier should be quoted. Possible values are:</span>
+</span><span id="table_name-6631"><a href="#table_name-6631"><span class="linenos">6631</span></a><span class="sd"> False (default): Never quote, except in cases where it&#39;s mandatory by the dialect.</span>
+</span><span id="table_name-6632"><a href="#table_name-6632"><span class="linenos">6632</span></a><span class="sd"> True: Always quote.</span>
+</span><span id="table_name-6633"><a href="#table_name-6633"><span class="linenos">6633</span></a>
+</span><span id="table_name-6634"><a href="#table_name-6634"><span class="linenos">6634</span></a><span class="sd"> Examples:</span>
+</span><span id="table_name-6635"><a href="#table_name-6635"><span class="linenos">6635</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
+</span><span id="table_name-6636"><a href="#table_name-6636"><span class="linenos">6636</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-6637"><a href="#table_name-6637"><span class="linenos">6637</span></a><span class="sd"> &#39;a.b.c&#39;</span>
+</span><span id="table_name-6638"><a href="#table_name-6638"><span class="linenos">6638</span></a>
+</span><span id="table_name-6639"><a href="#table_name-6639"><span class="linenos">6639</span></a><span class="sd"> Returns:</span>
+</span><span id="table_name-6640"><a href="#table_name-6640"><span class="linenos">6640</span></a><span class="sd"> The table name.</span>
+</span><span id="table_name-6641"><a href="#table_name-6641"><span class="linenos">6641</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="table_name-6642"><a href="#table_name-6642"><span class="linenos">6642</span></a>
+</span><span id="table_name-6643"><a href="#table_name-6643"><span class="linenos">6643</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span>
+</span><span id="table_name-6644"><a href="#table_name-6644"><span class="linenos">6644</span></a>
+</span><span id="table_name-6645"><a href="#table_name-6645"><span class="linenos">6645</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-6646"><a href="#table_name-6646"><span class="linenos">6646</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-6647"><a href="#table_name-6647"><span class="linenos">6647</span></a>
+</span><span id="table_name-6648"><a href="#table_name-6648"><span class="linenos">6648</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-6649"><a href="#table_name-6649"><span class="linenos">6649</span></a> <span class="n">part</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">identify</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
+</span><span id="table_name-6650"><a href="#table_name-6650"><span class="linenos">6650</span></a> <span class="k">if</span> <span class="n">identify</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">SAFE_IDENTIFIER_RE</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">part</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+</span><span id="table_name-6651"><a href="#table_name-6651"><span class="linenos">6651</span></a> <span class="k">else</span> <span class="n">part</span><span class="o">.</span><span class="n">name</span>
+</span><span id="table_name-6652"><a href="#table_name-6652"><span class="linenos">6652</span></a> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="n">table</span><span class="o">.</span><span class="n">parts</span>
+</span><span id="table_name-6653"><a href="#table_name-6653"><span class="linenos">6653</span></a> <span class="p">)</span>
</span></pre></div>
@@ -82087,26 +86812,26 @@ True: Always quote.</li>
</div>
<a class="headerlink" href="#normalize_table_name"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="normalize_table_name-6472"><a href="#normalize_table_name-6472"><span class="linenos">6472</span></a><span class="k">def</span> <span class="nf">normalize_table_name</span><span class="p">(</span><span class="n">table</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="normalize_table_name-6473"><a href="#normalize_table_name-6473"><span class="linenos">6473</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Returns a case normalized table name without quotes.</span>
-</span><span id="normalize_table_name-6474"><a href="#normalize_table_name-6474"><span class="linenos">6474</span></a>
-</span><span id="normalize_table_name-6475"><a href="#normalize_table_name-6475"><span class="linenos">6475</span></a><span class="sd"> Args:</span>
-</span><span id="normalize_table_name-6476"><a href="#normalize_table_name-6476"><span class="linenos">6476</span></a><span class="sd"> table: the table to normalize</span>
-</span><span id="normalize_table_name-6477"><a href="#normalize_table_name-6477"><span class="linenos">6477</span></a><span class="sd"> dialect: the dialect to use for normalization rules</span>
-</span><span id="normalize_table_name-6478"><a href="#normalize_table_name-6478"><span class="linenos">6478</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
-</span><span id="normalize_table_name-6479"><a href="#normalize_table_name-6479"><span class="linenos">6479</span></a>
-</span><span id="normalize_table_name-6480"><a href="#normalize_table_name-6480"><span class="linenos">6480</span></a><span class="sd"> Examples:</span>
-</span><span id="normalize_table_name-6481"><a href="#normalize_table_name-6481"><span class="linenos">6481</span></a><span class="sd"> &gt;&gt;&gt; normalize_table_name(&quot;`A-B`.c&quot;, dialect=&quot;bigquery&quot;)</span>
-</span><span id="normalize_table_name-6482"><a href="#normalize_table_name-6482"><span class="linenos">6482</span></a><span class="sd"> &#39;A-B.c&#39;</span>
-</span><span id="normalize_table_name-6483"><a href="#normalize_table_name-6483"><span class="linenos">6483</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="normalize_table_name-6484"><a href="#normalize_table_name-6484"><span class="linenos">6484</span></a> <span class="kn">from</span> <span class="nn">sqlglot.optimizer.normalize_identifiers</span> <span class="kn">import</span> <span class="n">normalize_identifiers</span>
-</span><span id="normalize_table_name-6485"><a href="#normalize_table_name-6485"><span class="linenos">6485</span></a>
-</span><span id="normalize_table_name-6486"><a href="#normalize_table_name-6486"><span class="linenos">6486</span></a> <span class="k">return</span> <span class="s2">&quot;.&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span>
-</span><span id="normalize_table_name-6487"><a href="#normalize_table_name-6487"><span class="linenos">6487</span></a> <span class="n">p</span><span class="o">.</span><span class="n">name</span>
-</span><span id="normalize_table_name-6488"><a href="#normalize_table_name-6488"><span class="linenos">6488</span></a> <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">normalize_identifiers</span><span class="p">(</span>
-</span><span id="normalize_table_name-6489"><a href="#normalize_table_name-6489"><span class="linenos">6489</span></a> <span class="n">to_table</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">),</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span>
-</span><span id="normalize_table_name-6490"><a href="#normalize_table_name-6490"><span class="linenos">6490</span></a> <span class="p">)</span><span class="o">.</span><span class="n">parts</span>
-</span><span id="normalize_table_name-6491"><a href="#normalize_table_name-6491"><span class="linenos">6491</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="normalize_table_name-6656"><a href="#normalize_table_name-6656"><span class="linenos">6656</span></a><span class="k">def</span> <span class="nf">normalize_table_name</span><span class="p">(</span><span class="n">table</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="normalize_table_name-6657"><a href="#normalize_table_name-6657"><span class="linenos">6657</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Returns a case normalized table name without quotes.</span>
+</span><span id="normalize_table_name-6658"><a href="#normalize_table_name-6658"><span class="linenos">6658</span></a>
+</span><span id="normalize_table_name-6659"><a href="#normalize_table_name-6659"><span class="linenos">6659</span></a><span class="sd"> Args:</span>
+</span><span id="normalize_table_name-6660"><a href="#normalize_table_name-6660"><span class="linenos">6660</span></a><span class="sd"> table: the table to normalize</span>
+</span><span id="normalize_table_name-6661"><a href="#normalize_table_name-6661"><span class="linenos">6661</span></a><span class="sd"> dialect: the dialect to use for normalization rules</span>
+</span><span id="normalize_table_name-6662"><a href="#normalize_table_name-6662"><span class="linenos">6662</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
+</span><span id="normalize_table_name-6663"><a href="#normalize_table_name-6663"><span class="linenos">6663</span></a>
+</span><span id="normalize_table_name-6664"><a href="#normalize_table_name-6664"><span class="linenos">6664</span></a><span class="sd"> Examples:</span>
+</span><span id="normalize_table_name-6665"><a href="#normalize_table_name-6665"><span class="linenos">6665</span></a><span class="sd"> &gt;&gt;&gt; normalize_table_name(&quot;`A-B`.c&quot;, dialect=&quot;bigquery&quot;)</span>
+</span><span id="normalize_table_name-6666"><a href="#normalize_table_name-6666"><span class="linenos">6666</span></a><span class="sd"> &#39;A-B.c&#39;</span>
+</span><span id="normalize_table_name-6667"><a href="#normalize_table_name-6667"><span class="linenos">6667</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="normalize_table_name-6668"><a href="#normalize_table_name-6668"><span class="linenos">6668</span></a> <span class="kn">from</span> <span class="nn">sqlglot.optimizer.normalize_identifiers</span> <span class="kn">import</span> <span class="n">normalize_identifiers</span>
+</span><span id="normalize_table_name-6669"><a href="#normalize_table_name-6669"><span class="linenos">6669</span></a>
+</span><span id="normalize_table_name-6670"><a href="#normalize_table_name-6670"><span class="linenos">6670</span></a> <span class="k">return</span> <span class="s2">&quot;.&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span>
+</span><span id="normalize_table_name-6671"><a href="#normalize_table_name-6671"><span class="linenos">6671</span></a> <span class="n">p</span><span class="o">.</span><span class="n">name</span>
+</span><span id="normalize_table_name-6672"><a href="#normalize_table_name-6672"><span class="linenos">6672</span></a> <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">normalize_identifiers</span><span class="p">(</span>
+</span><span id="normalize_table_name-6673"><a href="#normalize_table_name-6673"><span class="linenos">6673</span></a> <span class="n">to_table</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">),</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span>
+</span><span id="normalize_table_name-6674"><a href="#normalize_table_name-6674"><span class="linenos">6674</span></a> <span class="p">)</span><span class="o">.</span><span class="n">parts</span>
+</span><span id="normalize_table_name-6675"><a href="#normalize_table_name-6675"><span class="linenos">6675</span></a> <span class="p">)</span>
</span></pre></div>
@@ -82144,43 +86869,43 @@ True: Always quote.</li>
</div>
<a class="headerlink" href="#replace_tables"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="replace_tables-6494"><a href="#replace_tables-6494"><span class="linenos">6494</span></a><span class="k">def</span> <span class="nf">replace_tables</span><span class="p">(</span>
-</span><span id="replace_tables-6495"><a href="#replace_tables-6495"><span class="linenos">6495</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">E</span><span class="p">,</span> <span class="n">mapping</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span><span class="p">],</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="replace_tables-6496"><a href="#replace_tables-6496"><span class="linenos">6496</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
-</span><span id="replace_tables-6497"><a href="#replace_tables-6497"><span class="linenos">6497</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-6498"><a href="#replace_tables-6498"><span class="linenos">6498</span></a>
-</span><span id="replace_tables-6499"><a href="#replace_tables-6499"><span class="linenos">6499</span></a><span class="sd"> Args:</span>
-</span><span id="replace_tables-6500"><a href="#replace_tables-6500"><span class="linenos">6500</span></a><span class="sd"> expression: expression node to be transformed and replaced.</span>
-</span><span id="replace_tables-6501"><a href="#replace_tables-6501"><span class="linenos">6501</span></a><span class="sd"> mapping: mapping of table names.</span>
-</span><span id="replace_tables-6502"><a href="#replace_tables-6502"><span class="linenos">6502</span></a><span class="sd"> dialect: the dialect of the mapping table</span>
-</span><span id="replace_tables-6503"><a href="#replace_tables-6503"><span class="linenos">6503</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
-</span><span id="replace_tables-6504"><a href="#replace_tables-6504"><span class="linenos">6504</span></a>
-</span><span id="replace_tables-6505"><a href="#replace_tables-6505"><span class="linenos">6505</span></a><span class="sd"> Examples:</span>
-</span><span id="replace_tables-6506"><a href="#replace_tables-6506"><span class="linenos">6506</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
-</span><span id="replace_tables-6507"><a href="#replace_tables-6507"><span class="linenos">6507</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-6508"><a href="#replace_tables-6508"><span class="linenos">6508</span></a><span class="sd"> &#39;SELECT * FROM c /* a.b */&#39;</span>
-</span><span id="replace_tables-6509"><a href="#replace_tables-6509"><span class="linenos">6509</span></a>
-</span><span id="replace_tables-6510"><a href="#replace_tables-6510"><span class="linenos">6510</span></a><span class="sd"> Returns:</span>
-</span><span id="replace_tables-6511"><a href="#replace_tables-6511"><span class="linenos">6511</span></a><span class="sd"> The mapped expression.</span>
-</span><span id="replace_tables-6512"><a href="#replace_tables-6512"><span class="linenos">6512</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="replace_tables-6513"><a href="#replace_tables-6513"><span class="linenos">6513</span></a>
-</span><span id="replace_tables-6514"><a href="#replace_tables-6514"><span class="linenos">6514</span></a> <span class="n">mapping</span> <span class="o">=</span> <span class="p">{</span><span class="n">normalize_table_name</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">):</span> <span class="n">v</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">mapping</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span>
-</span><span id="replace_tables-6515"><a href="#replace_tables-6515"><span class="linenos">6515</span></a>
-</span><span id="replace_tables-6516"><a href="#replace_tables-6516"><span class="linenos">6516</span></a> <span class="k">def</span> <span class="nf">_replace_tables</span><span class="p">(</span><span class="n">node</span><span class="p">:</span> <span class="n">Expression</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="replace_tables-6517"><a href="#replace_tables-6517"><span class="linenos">6517</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-6518"><a href="#replace_tables-6518"><span class="linenos">6518</span></a> <span class="n">original</span> <span class="o">=</span> <span class="n">normalize_table_name</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span>
-</span><span id="replace_tables-6519"><a href="#replace_tables-6519"><span class="linenos">6519</span></a> <span class="n">new_name</span> <span class="o">=</span> <span class="n">mapping</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">original</span><span class="p">)</span>
-</span><span id="replace_tables-6520"><a href="#replace_tables-6520"><span class="linenos">6520</span></a>
-</span><span id="replace_tables-6521"><a href="#replace_tables-6521"><span class="linenos">6521</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
-</span><span id="replace_tables-6522"><a href="#replace_tables-6522"><span class="linenos">6522</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">to_table</span><span class="p">(</span>
-</span><span id="replace_tables-6523"><a href="#replace_tables-6523"><span class="linenos">6523</span></a> <span class="n">new_name</span><span class="p">,</span>
-</span><span id="replace_tables-6524"><a href="#replace_tables-6524"><span class="linenos">6524</span></a> <span class="o">**</span><span class="p">{</span><span class="n">k</span><span class="p">:</span> <span class="n">v</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">node</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> <span class="k">if</span> <span class="n">k</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">TABLE_PARTS</span><span class="p">},</span>
-</span><span id="replace_tables-6525"><a href="#replace_tables-6525"><span class="linenos">6525</span></a> <span class="p">)</span>
-</span><span id="replace_tables-6526"><a href="#replace_tables-6526"><span class="linenos">6526</span></a> <span class="n">table</span><span class="o">.</span><span class="n">add_comments</span><span class="p">([</span><span class="n">original</span><span class="p">])</span>
-</span><span id="replace_tables-6527"><a href="#replace_tables-6527"><span class="linenos">6527</span></a> <span class="k">return</span> <span class="n">table</span>
-</span><span id="replace_tables-6528"><a href="#replace_tables-6528"><span class="linenos">6528</span></a> <span class="k">return</span> <span class="n">node</span>
-</span><span id="replace_tables-6529"><a href="#replace_tables-6529"><span class="linenos">6529</span></a>
-</span><span id="replace_tables-6530"><a href="#replace_tables-6530"><span class="linenos">6530</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_replace_tables</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="replace_tables-6678"><a href="#replace_tables-6678"><span class="linenos">6678</span></a><span class="k">def</span> <span class="nf">replace_tables</span><span class="p">(</span>
+</span><span id="replace_tables-6679"><a href="#replace_tables-6679"><span class="linenos">6679</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">E</span><span class="p">,</span> <span class="n">mapping</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span><span class="p">],</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="replace_tables-6680"><a href="#replace_tables-6680"><span class="linenos">6680</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
+</span><span id="replace_tables-6681"><a href="#replace_tables-6681"><span class="linenos">6681</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-6682"><a href="#replace_tables-6682"><span class="linenos">6682</span></a>
+</span><span id="replace_tables-6683"><a href="#replace_tables-6683"><span class="linenos">6683</span></a><span class="sd"> Args:</span>
+</span><span id="replace_tables-6684"><a href="#replace_tables-6684"><span class="linenos">6684</span></a><span class="sd"> expression: expression node to be transformed and replaced.</span>
+</span><span id="replace_tables-6685"><a href="#replace_tables-6685"><span class="linenos">6685</span></a><span class="sd"> mapping: mapping of table names.</span>
+</span><span id="replace_tables-6686"><a href="#replace_tables-6686"><span class="linenos">6686</span></a><span class="sd"> dialect: the dialect of the mapping table</span>
+</span><span id="replace_tables-6687"><a href="#replace_tables-6687"><span class="linenos">6687</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
+</span><span id="replace_tables-6688"><a href="#replace_tables-6688"><span class="linenos">6688</span></a>
+</span><span id="replace_tables-6689"><a href="#replace_tables-6689"><span class="linenos">6689</span></a><span class="sd"> Examples:</span>
+</span><span id="replace_tables-6690"><a href="#replace_tables-6690"><span class="linenos">6690</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
+</span><span id="replace_tables-6691"><a href="#replace_tables-6691"><span class="linenos">6691</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-6692"><a href="#replace_tables-6692"><span class="linenos">6692</span></a><span class="sd"> &#39;SELECT * FROM c /* a.b */&#39;</span>
+</span><span id="replace_tables-6693"><a href="#replace_tables-6693"><span class="linenos">6693</span></a>
+</span><span id="replace_tables-6694"><a href="#replace_tables-6694"><span class="linenos">6694</span></a><span class="sd"> Returns:</span>
+</span><span id="replace_tables-6695"><a href="#replace_tables-6695"><span class="linenos">6695</span></a><span class="sd"> The mapped expression.</span>
+</span><span id="replace_tables-6696"><a href="#replace_tables-6696"><span class="linenos">6696</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="replace_tables-6697"><a href="#replace_tables-6697"><span class="linenos">6697</span></a>
+</span><span id="replace_tables-6698"><a href="#replace_tables-6698"><span class="linenos">6698</span></a> <span class="n">mapping</span> <span class="o">=</span> <span class="p">{</span><span class="n">normalize_table_name</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">):</span> <span class="n">v</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">mapping</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span>
+</span><span id="replace_tables-6699"><a href="#replace_tables-6699"><span class="linenos">6699</span></a>
+</span><span id="replace_tables-6700"><a href="#replace_tables-6700"><span class="linenos">6700</span></a> <span class="k">def</span> <span class="nf">_replace_tables</span><span class="p">(</span><span class="n">node</span><span class="p">:</span> <span class="n">Expression</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="replace_tables-6701"><a href="#replace_tables-6701"><span class="linenos">6701</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-6702"><a href="#replace_tables-6702"><span class="linenos">6702</span></a> <span class="n">original</span> <span class="o">=</span> <span class="n">normalize_table_name</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span>
+</span><span id="replace_tables-6703"><a href="#replace_tables-6703"><span class="linenos">6703</span></a> <span class="n">new_name</span> <span class="o">=</span> <span class="n">mapping</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">original</span><span class="p">)</span>
+</span><span id="replace_tables-6704"><a href="#replace_tables-6704"><span class="linenos">6704</span></a>
+</span><span id="replace_tables-6705"><a href="#replace_tables-6705"><span class="linenos">6705</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
+</span><span id="replace_tables-6706"><a href="#replace_tables-6706"><span class="linenos">6706</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">to_table</span><span class="p">(</span>
+</span><span id="replace_tables-6707"><a href="#replace_tables-6707"><span class="linenos">6707</span></a> <span class="n">new_name</span><span class="p">,</span>
+</span><span id="replace_tables-6708"><a href="#replace_tables-6708"><span class="linenos">6708</span></a> <span class="o">**</span><span class="p">{</span><span class="n">k</span><span class="p">:</span> <span class="n">v</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">node</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> <span class="k">if</span> <span class="n">k</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">TABLE_PARTS</span><span class="p">},</span>
+</span><span id="replace_tables-6709"><a href="#replace_tables-6709"><span class="linenos">6709</span></a> <span class="p">)</span>
+</span><span id="replace_tables-6710"><a href="#replace_tables-6710"><span class="linenos">6710</span></a> <span class="n">table</span><span class="o">.</span><span class="n">add_comments</span><span class="p">([</span><span class="n">original</span><span class="p">])</span>
+</span><span id="replace_tables-6711"><a href="#replace_tables-6711"><span class="linenos">6711</span></a> <span class="k">return</span> <span class="n">table</span>
+</span><span id="replace_tables-6712"><a href="#replace_tables-6712"><span class="linenos">6712</span></a> <span class="k">return</span> <span class="n">node</span>
+</span><span id="replace_tables-6713"><a href="#replace_tables-6713"><span class="linenos">6713</span></a>
+</span><span id="replace_tables-6714"><a href="#replace_tables-6714"><span class="linenos">6714</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_replace_tables</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span>
</span></pre></div>
@@ -82226,40 +86951,40 @@ True: Always quote.</li>
</div>
<a class="headerlink" href="#replace_placeholders"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="replace_placeholders-6533"><a href="#replace_placeholders-6533"><span class="linenos">6533</span></a><span class="k">def</span> <span class="nf">replace_placeholders</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="replace_placeholders-6534"><a href="#replace_placeholders-6534"><span class="linenos">6534</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Replace placeholders in an expression.</span>
-</span><span id="replace_placeholders-6535"><a href="#replace_placeholders-6535"><span class="linenos">6535</span></a>
-</span><span id="replace_placeholders-6536"><a href="#replace_placeholders-6536"><span class="linenos">6536</span></a><span class="sd"> Args:</span>
-</span><span id="replace_placeholders-6537"><a href="#replace_placeholders-6537"><span class="linenos">6537</span></a><span class="sd"> expression: expression node to be transformed and replaced.</span>
-</span><span id="replace_placeholders-6538"><a href="#replace_placeholders-6538"><span class="linenos">6538</span></a><span class="sd"> args: positional names that will substitute unnamed placeholders in the given order.</span>
-</span><span id="replace_placeholders-6539"><a href="#replace_placeholders-6539"><span class="linenos">6539</span></a><span class="sd"> kwargs: keyword arguments that will substitute named placeholders.</span>
-</span><span id="replace_placeholders-6540"><a href="#replace_placeholders-6540"><span class="linenos">6540</span></a>
-</span><span id="replace_placeholders-6541"><a href="#replace_placeholders-6541"><span class="linenos">6541</span></a><span class="sd"> Examples:</span>
-</span><span id="replace_placeholders-6542"><a href="#replace_placeholders-6542"><span class="linenos">6542</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
-</span><span id="replace_placeholders-6543"><a href="#replace_placeholders-6543"><span class="linenos">6543</span></a><span class="sd"> &gt;&gt;&gt; replace_placeholders(</span>
-</span><span id="replace_placeholders-6544"><a href="#replace_placeholders-6544"><span class="linenos">6544</span></a><span class="sd"> ... parse_one(&quot;select * from :tbl where ? = ?&quot;),</span>
-</span><span id="replace_placeholders-6545"><a href="#replace_placeholders-6545"><span class="linenos">6545</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-6546"><a href="#replace_placeholders-6546"><span class="linenos">6546</span></a><span class="sd"> ... ).sql()</span>
-</span><span id="replace_placeholders-6547"><a href="#replace_placeholders-6547"><span class="linenos">6547</span></a><span class="sd"> &quot;SELECT * FROM foo WHERE str_col = &#39;b&#39;&quot;</span>
-</span><span id="replace_placeholders-6548"><a href="#replace_placeholders-6548"><span class="linenos">6548</span></a>
-</span><span id="replace_placeholders-6549"><a href="#replace_placeholders-6549"><span class="linenos">6549</span></a><span class="sd"> Returns:</span>
-</span><span id="replace_placeholders-6550"><a href="#replace_placeholders-6550"><span class="linenos">6550</span></a><span class="sd"> The mapped expression.</span>
-</span><span id="replace_placeholders-6551"><a href="#replace_placeholders-6551"><span class="linenos">6551</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="replace_placeholders-6552"><a href="#replace_placeholders-6552"><span class="linenos">6552</span></a>
-</span><span id="replace_placeholders-6553"><a href="#replace_placeholders-6553"><span class="linenos">6553</span></a> <span class="k">def</span> <span class="nf">_replace_placeholders</span><span class="p">(</span><span class="n">node</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="replace_placeholders-6554"><a href="#replace_placeholders-6554"><span class="linenos">6554</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-6555"><a href="#replace_placeholders-6555"><span class="linenos">6555</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-6556"><a href="#replace_placeholders-6556"><span class="linenos">6556</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-6557"><a href="#replace_placeholders-6557"><span class="linenos">6557</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
-</span><span id="replace_placeholders-6558"><a href="#replace_placeholders-6558"><span class="linenos">6558</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-6559"><a href="#replace_placeholders-6559"><span class="linenos">6559</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="replace_placeholders-6560"><a href="#replace_placeholders-6560"><span class="linenos">6560</span></a> <span class="k">try</span><span class="p">:</span>
-</span><span id="replace_placeholders-6561"><a href="#replace_placeholders-6561"><span class="linenos">6561</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-6562"><a href="#replace_placeholders-6562"><span class="linenos">6562</span></a> <span class="k">except</span> <span class="ne">StopIteration</span><span class="p">:</span>
-</span><span id="replace_placeholders-6563"><a href="#replace_placeholders-6563"><span class="linenos">6563</span></a> <span class="k">pass</span>
-</span><span id="replace_placeholders-6564"><a href="#replace_placeholders-6564"><span class="linenos">6564</span></a> <span class="k">return</span> <span class="n">node</span>
-</span><span id="replace_placeholders-6565"><a href="#replace_placeholders-6565"><span class="linenos">6565</span></a>
-</span><span id="replace_placeholders-6566"><a href="#replace_placeholders-6566"><span class="linenos">6566</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-6717"><a href="#replace_placeholders-6717"><span class="linenos">6717</span></a><span class="k">def</span> <span class="nf">replace_placeholders</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="replace_placeholders-6718"><a href="#replace_placeholders-6718"><span class="linenos">6718</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Replace placeholders in an expression.</span>
+</span><span id="replace_placeholders-6719"><a href="#replace_placeholders-6719"><span class="linenos">6719</span></a>
+</span><span id="replace_placeholders-6720"><a href="#replace_placeholders-6720"><span class="linenos">6720</span></a><span class="sd"> Args:</span>
+</span><span id="replace_placeholders-6721"><a href="#replace_placeholders-6721"><span class="linenos">6721</span></a><span class="sd"> expression: expression node to be transformed and replaced.</span>
+</span><span id="replace_placeholders-6722"><a href="#replace_placeholders-6722"><span class="linenos">6722</span></a><span class="sd"> args: positional names that will substitute unnamed placeholders in the given order.</span>
+</span><span id="replace_placeholders-6723"><a href="#replace_placeholders-6723"><span class="linenos">6723</span></a><span class="sd"> kwargs: keyword arguments that will substitute named placeholders.</span>
+</span><span id="replace_placeholders-6724"><a href="#replace_placeholders-6724"><span class="linenos">6724</span></a>
+</span><span id="replace_placeholders-6725"><a href="#replace_placeholders-6725"><span class="linenos">6725</span></a><span class="sd"> Examples:</span>
+</span><span id="replace_placeholders-6726"><a href="#replace_placeholders-6726"><span class="linenos">6726</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
+</span><span id="replace_placeholders-6727"><a href="#replace_placeholders-6727"><span class="linenos">6727</span></a><span class="sd"> &gt;&gt;&gt; replace_placeholders(</span>
+</span><span id="replace_placeholders-6728"><a href="#replace_placeholders-6728"><span class="linenos">6728</span></a><span class="sd"> ... parse_one(&quot;select * from :tbl where ? = ?&quot;),</span>
+</span><span id="replace_placeholders-6729"><a href="#replace_placeholders-6729"><span class="linenos">6729</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-6730"><a href="#replace_placeholders-6730"><span class="linenos">6730</span></a><span class="sd"> ... ).sql()</span>
+</span><span id="replace_placeholders-6731"><a href="#replace_placeholders-6731"><span class="linenos">6731</span></a><span class="sd"> &quot;SELECT * FROM foo WHERE str_col = &#39;b&#39;&quot;</span>
+</span><span id="replace_placeholders-6732"><a href="#replace_placeholders-6732"><span class="linenos">6732</span></a>
+</span><span id="replace_placeholders-6733"><a href="#replace_placeholders-6733"><span class="linenos">6733</span></a><span class="sd"> Returns:</span>
+</span><span id="replace_placeholders-6734"><a href="#replace_placeholders-6734"><span class="linenos">6734</span></a><span class="sd"> The mapped expression.</span>
+</span><span id="replace_placeholders-6735"><a href="#replace_placeholders-6735"><span class="linenos">6735</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="replace_placeholders-6736"><a href="#replace_placeholders-6736"><span class="linenos">6736</span></a>
+</span><span id="replace_placeholders-6737"><a href="#replace_placeholders-6737"><span class="linenos">6737</span></a> <span class="k">def</span> <span class="nf">_replace_placeholders</span><span class="p">(</span><span class="n">node</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="replace_placeholders-6738"><a href="#replace_placeholders-6738"><span class="linenos">6738</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-6739"><a href="#replace_placeholders-6739"><span class="linenos">6739</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-6740"><a href="#replace_placeholders-6740"><span class="linenos">6740</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-6741"><a href="#replace_placeholders-6741"><span class="linenos">6741</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
+</span><span id="replace_placeholders-6742"><a href="#replace_placeholders-6742"><span class="linenos">6742</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-6743"><a href="#replace_placeholders-6743"><span class="linenos">6743</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="replace_placeholders-6744"><a href="#replace_placeholders-6744"><span class="linenos">6744</span></a> <span class="k">try</span><span class="p">:</span>
+</span><span id="replace_placeholders-6745"><a href="#replace_placeholders-6745"><span class="linenos">6745</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-6746"><a href="#replace_placeholders-6746"><span class="linenos">6746</span></a> <span class="k">except</span> <span class="ne">StopIteration</span><span class="p">:</span>
+</span><span id="replace_placeholders-6747"><a href="#replace_placeholders-6747"><span class="linenos">6747</span></a> <span class="k">pass</span>
+</span><span id="replace_placeholders-6748"><a href="#replace_placeholders-6748"><span class="linenos">6748</span></a> <span class="k">return</span> <span class="n">node</span>
+</span><span id="replace_placeholders-6749"><a href="#replace_placeholders-6749"><span class="linenos">6749</span></a>
+</span><span id="replace_placeholders-6750"><a href="#replace_placeholders-6750"><span class="linenos">6750</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>
@@ -82307,44 +87032,44 @@ True: Always quote.</li>
</div>
<a class="headerlink" href="#expand"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="expand-6569"><a href="#expand-6569"><span class="linenos">6569</span></a><span class="k">def</span> <span class="nf">expand</span><span class="p">(</span>
-</span><span id="expand-6570"><a href="#expand-6570"><span class="linenos">6570</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span>
-</span><span id="expand-6571"><a href="#expand-6571"><span class="linenos">6571</span></a> <span class="n">sources</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Subqueryable</span><span class="p">],</span>
-</span><span id="expand-6572"><a href="#expand-6572"><span class="linenos">6572</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="expand-6573"><a href="#expand-6573"><span class="linenos">6573</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="expand-6574"><a href="#expand-6574"><span class="linenos">6574</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="expand-6575"><a href="#expand-6575"><span class="linenos">6575</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-6576"><a href="#expand-6576"><span class="linenos">6576</span></a>
-</span><span id="expand-6577"><a href="#expand-6577"><span class="linenos">6577</span></a><span class="sd"> Examples:</span>
-</span><span id="expand-6578"><a href="#expand-6578"><span class="linenos">6578</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
-</span><span id="expand-6579"><a href="#expand-6579"><span class="linenos">6579</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-6580"><a href="#expand-6580"><span class="linenos">6580</span></a><span class="sd"> &#39;SELECT * FROM (SELECT * FROM y) AS z /* source: x */&#39;</span>
-</span><span id="expand-6581"><a href="#expand-6581"><span class="linenos">6581</span></a>
-</span><span id="expand-6582"><a href="#expand-6582"><span class="linenos">6582</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-6583"><a href="#expand-6583"><span class="linenos">6583</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-6584"><a href="#expand-6584"><span class="linenos">6584</span></a>
-</span><span id="expand-6585"><a href="#expand-6585"><span class="linenos">6585</span></a><span class="sd"> Args:</span>
-</span><span id="expand-6586"><a href="#expand-6586"><span class="linenos">6586</span></a><span class="sd"> expression: The expression to expand.</span>
-</span><span id="expand-6587"><a href="#expand-6587"><span class="linenos">6587</span></a><span class="sd"> sources: A dictionary of name to Subqueryables.</span>
-</span><span id="expand-6588"><a href="#expand-6588"><span class="linenos">6588</span></a><span class="sd"> dialect: The dialect of the sources dict.</span>
-</span><span id="expand-6589"><a href="#expand-6589"><span class="linenos">6589</span></a><span class="sd"> copy: Whether or not to copy the expression during transformation. Defaults to True.</span>
-</span><span id="expand-6590"><a href="#expand-6590"><span class="linenos">6590</span></a>
-</span><span id="expand-6591"><a href="#expand-6591"><span class="linenos">6591</span></a><span class="sd"> Returns:</span>
-</span><span id="expand-6592"><a href="#expand-6592"><span class="linenos">6592</span></a><span class="sd"> The transformed expression.</span>
-</span><span id="expand-6593"><a href="#expand-6593"><span class="linenos">6593</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="expand-6594"><a href="#expand-6594"><span class="linenos">6594</span></a> <span class="n">sources</span> <span class="o">=</span> <span class="p">{</span><span class="n">normalize_table_name</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">):</span> <span class="n">v</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">sources</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span>
-</span><span id="expand-6595"><a href="#expand-6595"><span class="linenos">6595</span></a>
-</span><span id="expand-6596"><a href="#expand-6596"><span class="linenos">6596</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-6597"><a href="#expand-6597"><span class="linenos">6597</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-6598"><a href="#expand-6598"><span class="linenos">6598</span></a> <span class="n">name</span> <span class="o">=</span> <span class="n">normalize_table_name</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span>
-</span><span id="expand-6599"><a href="#expand-6599"><span class="linenos">6599</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-6600"><a href="#expand-6600"><span class="linenos">6600</span></a> <span class="k">if</span> <span class="n">source</span><span class="p">:</span>
-</span><span id="expand-6601"><a href="#expand-6601"><span class="linenos">6601</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-6602"><a href="#expand-6602"><span class="linenos">6602</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-6603"><a href="#expand-6603"><span class="linenos">6603</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-6604"><a href="#expand-6604"><span class="linenos">6604</span></a> <span class="k">return</span> <span class="n">node</span>
-</span><span id="expand-6605"><a href="#expand-6605"><span class="linenos">6605</span></a>
-</span><span id="expand-6606"><a href="#expand-6606"><span class="linenos">6606</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-6753"><a href="#expand-6753"><span class="linenos">6753</span></a><span class="k">def</span> <span class="nf">expand</span><span class="p">(</span>
+</span><span id="expand-6754"><a href="#expand-6754"><span class="linenos">6754</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span>
+</span><span id="expand-6755"><a href="#expand-6755"><span class="linenos">6755</span></a> <span class="n">sources</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Subqueryable</span><span class="p">],</span>
+</span><span id="expand-6756"><a href="#expand-6756"><span class="linenos">6756</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="expand-6757"><a href="#expand-6757"><span class="linenos">6757</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="expand-6758"><a href="#expand-6758"><span class="linenos">6758</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="expand-6759"><a href="#expand-6759"><span class="linenos">6759</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-6760"><a href="#expand-6760"><span class="linenos">6760</span></a>
+</span><span id="expand-6761"><a href="#expand-6761"><span class="linenos">6761</span></a><span class="sd"> Examples:</span>
+</span><span id="expand-6762"><a href="#expand-6762"><span class="linenos">6762</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
+</span><span id="expand-6763"><a href="#expand-6763"><span class="linenos">6763</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-6764"><a href="#expand-6764"><span class="linenos">6764</span></a><span class="sd"> &#39;SELECT * FROM (SELECT * FROM y) AS z /* source: x */&#39;</span>
+</span><span id="expand-6765"><a href="#expand-6765"><span class="linenos">6765</span></a>
+</span><span id="expand-6766"><a href="#expand-6766"><span class="linenos">6766</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-6767"><a href="#expand-6767"><span class="linenos">6767</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-6768"><a href="#expand-6768"><span class="linenos">6768</span></a>
+</span><span id="expand-6769"><a href="#expand-6769"><span class="linenos">6769</span></a><span class="sd"> Args:</span>
+</span><span id="expand-6770"><a href="#expand-6770"><span class="linenos">6770</span></a><span class="sd"> expression: The expression to expand.</span>
+</span><span id="expand-6771"><a href="#expand-6771"><span class="linenos">6771</span></a><span class="sd"> sources: A dictionary of name to Subqueryables.</span>
+</span><span id="expand-6772"><a href="#expand-6772"><span class="linenos">6772</span></a><span class="sd"> dialect: The dialect of the sources dict.</span>
+</span><span id="expand-6773"><a href="#expand-6773"><span class="linenos">6773</span></a><span class="sd"> copy: Whether or not to copy the expression during transformation. Defaults to True.</span>
+</span><span id="expand-6774"><a href="#expand-6774"><span class="linenos">6774</span></a>
+</span><span id="expand-6775"><a href="#expand-6775"><span class="linenos">6775</span></a><span class="sd"> Returns:</span>
+</span><span id="expand-6776"><a href="#expand-6776"><span class="linenos">6776</span></a><span class="sd"> The transformed expression.</span>
+</span><span id="expand-6777"><a href="#expand-6777"><span class="linenos">6777</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="expand-6778"><a href="#expand-6778"><span class="linenos">6778</span></a> <span class="n">sources</span> <span class="o">=</span> <span class="p">{</span><span class="n">normalize_table_name</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">):</span> <span class="n">v</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">sources</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span>
+</span><span id="expand-6779"><a href="#expand-6779"><span class="linenos">6779</span></a>
+</span><span id="expand-6780"><a href="#expand-6780"><span class="linenos">6780</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-6781"><a href="#expand-6781"><span class="linenos">6781</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-6782"><a href="#expand-6782"><span class="linenos">6782</span></a> <span class="n">name</span> <span class="o">=</span> <span class="n">normalize_table_name</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span>
+</span><span id="expand-6783"><a href="#expand-6783"><span class="linenos">6783</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-6784"><a href="#expand-6784"><span class="linenos">6784</span></a> <span class="k">if</span> <span class="n">source</span><span class="p">:</span>
+</span><span id="expand-6785"><a href="#expand-6785"><span class="linenos">6785</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-6786"><a href="#expand-6786"><span class="linenos">6786</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-6787"><a href="#expand-6787"><span class="linenos">6787</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-6788"><a href="#expand-6788"><span class="linenos">6788</span></a> <span class="k">return</span> <span class="n">node</span>
+</span><span id="expand-6789"><a href="#expand-6789"><span class="linenos">6789</span></a>
+</span><span id="expand-6790"><a href="#expand-6790"><span class="linenos">6790</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>
@@ -82396,67 +87121,67 @@ True: Always quote.</li>
</div>
<a class="headerlink" href="#func"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="func-6609"><a href="#func-6609"><span class="linenos">6609</span></a><span class="k">def</span> <span class="nf">func</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Func</span><span class="p">:</span>
-</span><span id="func-6610"><a href="#func-6610"><span class="linenos">6610</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="func-6611"><a href="#func-6611"><span class="linenos">6611</span></a><span class="sd"> Returns a Func expression.</span>
-</span><span id="func-6612"><a href="#func-6612"><span class="linenos">6612</span></a>
-</span><span id="func-6613"><a href="#func-6613"><span class="linenos">6613</span></a><span class="sd"> Examples:</span>
-</span><span id="func-6614"><a href="#func-6614"><span class="linenos">6614</span></a><span class="sd"> &gt;&gt;&gt; func(&quot;abs&quot;, 5).sql()</span>
-</span><span id="func-6615"><a href="#func-6615"><span class="linenos">6615</span></a><span class="sd"> &#39;ABS(5)&#39;</span>
-</span><span id="func-6616"><a href="#func-6616"><span class="linenos">6616</span></a>
-</span><span id="func-6617"><a href="#func-6617"><span class="linenos">6617</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-6618"><a href="#func-6618"><span class="linenos">6618</span></a><span class="sd"> &#39;CAST(5 AS DOUBLE)&#39;</span>
-</span><span id="func-6619"><a href="#func-6619"><span class="linenos">6619</span></a>
-</span><span id="func-6620"><a href="#func-6620"><span class="linenos">6620</span></a><span class="sd"> Args:</span>
-</span><span id="func-6621"><a href="#func-6621"><span class="linenos">6621</span></a><span class="sd"> name: the name of the function to build.</span>
-</span><span id="func-6622"><a href="#func-6622"><span class="linenos">6622</span></a><span class="sd"> args: the args used to instantiate the function of interest.</span>
-</span><span id="func-6623"><a href="#func-6623"><span class="linenos">6623</span></a><span class="sd"> copy: whether or not to copy the argument expressions.</span>
-</span><span id="func-6624"><a href="#func-6624"><span class="linenos">6624</span></a><span class="sd"> dialect: the source dialect.</span>
-</span><span id="func-6625"><a href="#func-6625"><span class="linenos">6625</span></a><span class="sd"> kwargs: the kwargs used to instantiate the function of interest.</span>
-</span><span id="func-6626"><a href="#func-6626"><span class="linenos">6626</span></a>
-</span><span id="func-6627"><a href="#func-6627"><span class="linenos">6627</span></a><span class="sd"> Note:</span>
-</span><span id="func-6628"><a href="#func-6628"><span class="linenos">6628</span></a><span class="sd"> The arguments `args` and `kwargs` are mutually exclusive.</span>
-</span><span id="func-6629"><a href="#func-6629"><span class="linenos">6629</span></a>
-</span><span id="func-6630"><a href="#func-6630"><span class="linenos">6630</span></a><span class="sd"> Returns:</span>
-</span><span id="func-6631"><a href="#func-6631"><span class="linenos">6631</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-6632"><a href="#func-6632"><span class="linenos">6632</span></a><span class="sd"> correspond to an existing `sqlglot.expressions.Func` class.</span>
-</span><span id="func-6633"><a href="#func-6633"><span class="linenos">6633</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="func-6634"><a href="#func-6634"><span class="linenos">6634</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-6635"><a href="#func-6635"><span class="linenos">6635</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-6636"><a href="#func-6636"><span class="linenos">6636</span></a>
-</span><span id="func-6637"><a href="#func-6637"><span class="linenos">6637</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-6638"><a href="#func-6638"><span class="linenos">6638</span></a>
-</span><span id="func-6639"><a href="#func-6639"><span class="linenos">6639</span></a> <span class="n">dialect</span> <span class="o">=</span> <span class="n">Dialect</span><span class="o">.</span><span class="n">get_or_raise</span><span class="p">(</span><span class="n">dialect</span><span class="p">)</span>
-</span><span id="func-6640"><a href="#func-6640"><span class="linenos">6640</span></a>
-</span><span id="func-6641"><a href="#func-6641"><span class="linenos">6641</span></a> <span class="n">converted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">args</span><span class="p">]</span>
-</span><span id="func-6642"><a href="#func-6642"><span class="linenos">6642</span></a> <span class="n">kwargs</span> <span class="o">=</span> <span class="p">{</span><span class="n">key</span><span class="p">:</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span>
-</span><span id="func-6643"><a href="#func-6643"><span class="linenos">6643</span></a>
-</span><span id="func-6644"><a href="#func-6644"><span class="linenos">6644</span></a> <span class="n">constructor</span> <span class="o">=</span> <span class="n">dialect</span><span class="o">.</span><span class="n">parser_class</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span>
-</span><span id="func-6645"><a href="#func-6645"><span class="linenos">6645</span></a> <span class="k">if</span> <span class="n">constructor</span><span class="p">:</span>
-</span><span id="func-6646"><a href="#func-6646"><span class="linenos">6646</span></a> <span class="k">if</span> <span class="n">converted</span><span class="p">:</span>
-</span><span id="func-6647"><a href="#func-6647"><span class="linenos">6647</span></a> <span class="k">if</span> <span class="s2">&quot;dialect&quot;</span> <span class="ow">in</span> <span class="n">constructor</span><span class="o">.</span><span class="vm">__code__</span><span class="o">.</span><span class="n">co_varnames</span><span class="p">:</span>
-</span><span id="func-6648"><a href="#func-6648"><span class="linenos">6648</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">constructor</span><span class="p">(</span><span class="n">converted</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span>
-</span><span id="func-6649"><a href="#func-6649"><span class="linenos">6649</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="func-6650"><a href="#func-6650"><span class="linenos">6650</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">constructor</span><span class="p">(</span><span class="n">converted</span><span class="p">)</span>
-</span><span id="func-6651"><a href="#func-6651"><span class="linenos">6651</span></a> <span class="k">elif</span> <span class="n">constructor</span><span class="o">.</span><span class="vm">__name__</span> <span class="o">==</span> <span class="s2">&quot;from_arg_list&quot;</span><span class="p">:</span>
-</span><span id="func-6652"><a href="#func-6652"><span class="linenos">6652</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">constructor</span><span class="o">.</span><span class="vm">__self__</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="c1"># type: ignore</span>
-</span><span id="func-6653"><a href="#func-6653"><span class="linenos">6653</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="func-6654"><a href="#func-6654"><span class="linenos">6654</span></a> <span class="n">constructor</span> <span class="o">=</span> <span class="n">FUNCTION_BY_NAME</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span>
-</span><span id="func-6655"><a href="#func-6655"><span class="linenos">6655</span></a> <span class="k">if</span> <span class="n">constructor</span><span class="p">:</span>
-</span><span id="func-6656"><a href="#func-6656"><span class="linenos">6656</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">constructor</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
-</span><span id="func-6657"><a href="#func-6657"><span class="linenos">6657</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="func-6658"><a href="#func-6658"><span class="linenos">6658</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span>
-</span><span id="func-6659"><a href="#func-6659"><span class="linenos">6659</span></a> <span class="sa">f</span><span class="s2">&quot;Unable to convert &#39;</span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">&#39; into a Func. Either manually construct &quot;</span>
-</span><span id="func-6660"><a href="#func-6660"><span class="linenos">6660</span></a> <span class="s2">&quot;the Func expression of interest or parse the function call.&quot;</span>
-</span><span id="func-6661"><a href="#func-6661"><span class="linenos">6661</span></a> <span class="p">)</span>
-</span><span id="func-6662"><a href="#func-6662"><span class="linenos">6662</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="func-6663"><a href="#func-6663"><span class="linenos">6663</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-6664"><a href="#func-6664"><span class="linenos">6664</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-6665"><a href="#func-6665"><span class="linenos">6665</span></a>
-</span><span id="func-6666"><a href="#func-6666"><span class="linenos">6666</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-6667"><a href="#func-6667"><span class="linenos">6667</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-6668"><a href="#func-6668"><span class="linenos">6668</span></a>
-</span><span id="func-6669"><a href="#func-6669"><span class="linenos">6669</span></a> <span class="k">return</span> <span class="n">function</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="func-6793"><a href="#func-6793"><span class="linenos">6793</span></a><span class="k">def</span> <span class="nf">func</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Func</span><span class="p">:</span>
+</span><span id="func-6794"><a href="#func-6794"><span class="linenos">6794</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="func-6795"><a href="#func-6795"><span class="linenos">6795</span></a><span class="sd"> Returns a Func expression.</span>
+</span><span id="func-6796"><a href="#func-6796"><span class="linenos">6796</span></a>
+</span><span id="func-6797"><a href="#func-6797"><span class="linenos">6797</span></a><span class="sd"> Examples:</span>
+</span><span id="func-6798"><a href="#func-6798"><span class="linenos">6798</span></a><span class="sd"> &gt;&gt;&gt; func(&quot;abs&quot;, 5).sql()</span>
+</span><span id="func-6799"><a href="#func-6799"><span class="linenos">6799</span></a><span class="sd"> &#39;ABS(5)&#39;</span>
+</span><span id="func-6800"><a href="#func-6800"><span class="linenos">6800</span></a>
+</span><span id="func-6801"><a href="#func-6801"><span class="linenos">6801</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-6802"><a href="#func-6802"><span class="linenos">6802</span></a><span class="sd"> &#39;CAST(5 AS DOUBLE)&#39;</span>
+</span><span id="func-6803"><a href="#func-6803"><span class="linenos">6803</span></a>
+</span><span id="func-6804"><a href="#func-6804"><span class="linenos">6804</span></a><span class="sd"> Args:</span>
+</span><span id="func-6805"><a href="#func-6805"><span class="linenos">6805</span></a><span class="sd"> name: the name of the function to build.</span>
+</span><span id="func-6806"><a href="#func-6806"><span class="linenos">6806</span></a><span class="sd"> args: the args used to instantiate the function of interest.</span>
+</span><span id="func-6807"><a href="#func-6807"><span class="linenos">6807</span></a><span class="sd"> copy: whether or not to copy the argument expressions.</span>
+</span><span id="func-6808"><a href="#func-6808"><span class="linenos">6808</span></a><span class="sd"> dialect: the source dialect.</span>
+</span><span id="func-6809"><a href="#func-6809"><span class="linenos">6809</span></a><span class="sd"> kwargs: the kwargs used to instantiate the function of interest.</span>
+</span><span id="func-6810"><a href="#func-6810"><span class="linenos">6810</span></a>
+</span><span id="func-6811"><a href="#func-6811"><span class="linenos">6811</span></a><span class="sd"> Note:</span>
+</span><span id="func-6812"><a href="#func-6812"><span class="linenos">6812</span></a><span class="sd"> The arguments `args` and `kwargs` are mutually exclusive.</span>
+</span><span id="func-6813"><a href="#func-6813"><span class="linenos">6813</span></a>
+</span><span id="func-6814"><a href="#func-6814"><span class="linenos">6814</span></a><span class="sd"> Returns:</span>
+</span><span id="func-6815"><a href="#func-6815"><span class="linenos">6815</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-6816"><a href="#func-6816"><span class="linenos">6816</span></a><span class="sd"> correspond to an existing `sqlglot.expressions.Func` class.</span>
+</span><span id="func-6817"><a href="#func-6817"><span class="linenos">6817</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="func-6818"><a href="#func-6818"><span class="linenos">6818</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-6819"><a href="#func-6819"><span class="linenos">6819</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-6820"><a href="#func-6820"><span class="linenos">6820</span></a>
+</span><span id="func-6821"><a href="#func-6821"><span class="linenos">6821</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-6822"><a href="#func-6822"><span class="linenos">6822</span></a>
+</span><span id="func-6823"><a href="#func-6823"><span class="linenos">6823</span></a> <span class="n">dialect</span> <span class="o">=</span> <span class="n">Dialect</span><span class="o">.</span><span class="n">get_or_raise</span><span class="p">(</span><span class="n">dialect</span><span class="p">)</span>
+</span><span id="func-6824"><a href="#func-6824"><span class="linenos">6824</span></a>
+</span><span id="func-6825"><a href="#func-6825"><span class="linenos">6825</span></a> <span class="n">converted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">args</span><span class="p">]</span>
+</span><span id="func-6826"><a href="#func-6826"><span class="linenos">6826</span></a> <span class="n">kwargs</span> <span class="o">=</span> <span class="p">{</span><span class="n">key</span><span class="p">:</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span>
+</span><span id="func-6827"><a href="#func-6827"><span class="linenos">6827</span></a>
+</span><span id="func-6828"><a href="#func-6828"><span class="linenos">6828</span></a> <span class="n">constructor</span> <span class="o">=</span> <span class="n">dialect</span><span class="o">.</span><span class="n">parser_class</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span>
+</span><span id="func-6829"><a href="#func-6829"><span class="linenos">6829</span></a> <span class="k">if</span> <span class="n">constructor</span><span class="p">:</span>
+</span><span id="func-6830"><a href="#func-6830"><span class="linenos">6830</span></a> <span class="k">if</span> <span class="n">converted</span><span class="p">:</span>
+</span><span id="func-6831"><a href="#func-6831"><span class="linenos">6831</span></a> <span class="k">if</span> <span class="s2">&quot;dialect&quot;</span> <span class="ow">in</span> <span class="n">constructor</span><span class="o">.</span><span class="vm">__code__</span><span class="o">.</span><span class="n">co_varnames</span><span class="p">:</span>
+</span><span id="func-6832"><a href="#func-6832"><span class="linenos">6832</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">constructor</span><span class="p">(</span><span class="n">converted</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span>
+</span><span id="func-6833"><a href="#func-6833"><span class="linenos">6833</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="func-6834"><a href="#func-6834"><span class="linenos">6834</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">constructor</span><span class="p">(</span><span class="n">converted</span><span class="p">)</span>
+</span><span id="func-6835"><a href="#func-6835"><span class="linenos">6835</span></a> <span class="k">elif</span> <span class="n">constructor</span><span class="o">.</span><span class="vm">__name__</span> <span class="o">==</span> <span class="s2">&quot;from_arg_list&quot;</span><span class="p">:</span>
+</span><span id="func-6836"><a href="#func-6836"><span class="linenos">6836</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">constructor</span><span class="o">.</span><span class="vm">__self__</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="c1"># type: ignore</span>
+</span><span id="func-6837"><a href="#func-6837"><span class="linenos">6837</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="func-6838"><a href="#func-6838"><span class="linenos">6838</span></a> <span class="n">constructor</span> <span class="o">=</span> <span class="n">FUNCTION_BY_NAME</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span>
+</span><span id="func-6839"><a href="#func-6839"><span class="linenos">6839</span></a> <span class="k">if</span> <span class="n">constructor</span><span class="p">:</span>
+</span><span id="func-6840"><a href="#func-6840"><span class="linenos">6840</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">constructor</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+</span><span id="func-6841"><a href="#func-6841"><span class="linenos">6841</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="func-6842"><a href="#func-6842"><span class="linenos">6842</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span>
+</span><span id="func-6843"><a href="#func-6843"><span class="linenos">6843</span></a> <span class="sa">f</span><span class="s2">&quot;Unable to convert &#39;</span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">&#39; into a Func. Either manually construct &quot;</span>
+</span><span id="func-6844"><a href="#func-6844"><span class="linenos">6844</span></a> <span class="s2">&quot;the Func expression of interest or parse the function call.&quot;</span>
+</span><span id="func-6845"><a href="#func-6845"><span class="linenos">6845</span></a> <span class="p">)</span>
+</span><span id="func-6846"><a href="#func-6846"><span class="linenos">6846</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="func-6847"><a href="#func-6847"><span class="linenos">6847</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-6848"><a href="#func-6848"><span class="linenos">6848</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-6849"><a href="#func-6849"><span class="linenos">6849</span></a>
+</span><span id="func-6850"><a href="#func-6850"><span class="linenos">6850</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-6851"><a href="#func-6851"><span class="linenos">6851</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-6852"><a href="#func-6852"><span class="linenos">6852</span></a>
+</span><span id="func-6853"><a href="#func-6853"><span class="linenos">6853</span></a> <span class="k">return</span> <span class="n">function</span>
</span></pre></div>
@@ -82515,25 +87240,25 @@ True: Always quote.</li>
</div>
<a class="headerlink" href="#case"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="case-6672"><a href="#case-6672"><span class="linenos">6672</span></a><span class="k">def</span> <span class="nf">case</span><span class="p">(</span>
-</span><span id="case-6673"><a href="#case-6673"><span class="linenos">6673</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="case-6674"><a href="#case-6674"><span class="linenos">6674</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="case-6675"><a href="#case-6675"><span class="linenos">6675</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Case</span><span class="p">:</span>
-</span><span id="case-6676"><a href="#case-6676"><span class="linenos">6676</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="case-6677"><a href="#case-6677"><span class="linenos">6677</span></a><span class="sd"> Initialize a CASE statement.</span>
-</span><span id="case-6678"><a href="#case-6678"><span class="linenos">6678</span></a>
-</span><span id="case-6679"><a href="#case-6679"><span class="linenos">6679</span></a><span class="sd"> Example:</span>
-</span><span id="case-6680"><a href="#case-6680"><span class="linenos">6680</span></a><span class="sd"> case().when(&quot;a = 1&quot;, &quot;foo&quot;).else_(&quot;bar&quot;)</span>
-</span><span id="case-6681"><a href="#case-6681"><span class="linenos">6681</span></a>
-</span><span id="case-6682"><a href="#case-6682"><span class="linenos">6682</span></a><span class="sd"> Args:</span>
-</span><span id="case-6683"><a href="#case-6683"><span class="linenos">6683</span></a><span class="sd"> expression: Optionally, the input expression (not all dialects support this)</span>
-</span><span id="case-6684"><a href="#case-6684"><span class="linenos">6684</span></a><span class="sd"> **opts: Extra keyword arguments for parsing `expression`</span>
-</span><span id="case-6685"><a href="#case-6685"><span class="linenos">6685</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="case-6686"><a href="#case-6686"><span class="linenos">6686</span></a> <span class="k">if</span> <span class="n">expression</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="case-6687"><a href="#case-6687"><span class="linenos">6687</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="case-6688"><a href="#case-6688"><span class="linenos">6688</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="case-6689"><a href="#case-6689"><span class="linenos">6689</span></a> <span class="n">this</span> <span class="o">=</span> <span class="kc">None</span>
-</span><span id="case-6690"><a href="#case-6690"><span class="linenos">6690</span></a> <span class="k">return</span> <span class="n">Case</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">ifs</span><span class="o">=</span><span class="p">[])</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="case-6856"><a href="#case-6856"><span class="linenos">6856</span></a><span class="k">def</span> <span class="nf">case</span><span class="p">(</span>
+</span><span id="case-6857"><a href="#case-6857"><span class="linenos">6857</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="case-6858"><a href="#case-6858"><span class="linenos">6858</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="case-6859"><a href="#case-6859"><span class="linenos">6859</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Case</span><span class="p">:</span>
+</span><span id="case-6860"><a href="#case-6860"><span class="linenos">6860</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="case-6861"><a href="#case-6861"><span class="linenos">6861</span></a><span class="sd"> Initialize a CASE statement.</span>
+</span><span id="case-6862"><a href="#case-6862"><span class="linenos">6862</span></a>
+</span><span id="case-6863"><a href="#case-6863"><span class="linenos">6863</span></a><span class="sd"> Example:</span>
+</span><span id="case-6864"><a href="#case-6864"><span class="linenos">6864</span></a><span class="sd"> case().when(&quot;a = 1&quot;, &quot;foo&quot;).else_(&quot;bar&quot;)</span>
+</span><span id="case-6865"><a href="#case-6865"><span class="linenos">6865</span></a>
+</span><span id="case-6866"><a href="#case-6866"><span class="linenos">6866</span></a><span class="sd"> Args:</span>
+</span><span id="case-6867"><a href="#case-6867"><span class="linenos">6867</span></a><span class="sd"> expression: Optionally, the input expression (not all dialects support this)</span>
+</span><span id="case-6868"><a href="#case-6868"><span class="linenos">6868</span></a><span class="sd"> **opts: Extra keyword arguments for parsing `expression`</span>
+</span><span id="case-6869"><a href="#case-6869"><span class="linenos">6869</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="case-6870"><a href="#case-6870"><span class="linenos">6870</span></a> <span class="k">if</span> <span class="n">expression</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="case-6871"><a href="#case-6871"><span class="linenos">6871</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="case-6872"><a href="#case-6872"><span class="linenos">6872</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="case-6873"><a href="#case-6873"><span class="linenos">6873</span></a> <span class="n">this</span> <span class="o">=</span> <span class="kc">None</span>
+</span><span id="case-6874"><a href="#case-6874"><span class="linenos">6874</span></a> <span class="k">return</span> <span class="n">Case</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">ifs</span><span class="o">=</span><span class="p">[])</span>
</span></pre></div>
@@ -82566,25 +87291,25 @@ True: Always quote.</li>
</div>
<a class="headerlink" href="#cast_unless"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="cast_unless-6693"><a href="#cast_unless-6693"><span class="linenos">6693</span></a><span class="k">def</span> <span class="nf">cast_unless</span><span class="p">(</span>
-</span><span id="cast_unless-6694"><a href="#cast_unless-6694"><span class="linenos">6694</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="cast_unless-6695"><a href="#cast_unless-6695"><span class="linenos">6695</span></a> <span class="n">to</span><span class="p">:</span> <span class="n">DATA_TYPE</span><span class="p">,</span>
-</span><span id="cast_unless-6696"><a href="#cast_unless-6696"><span class="linenos">6696</span></a> <span class="o">*</span><span class="n">types</span><span class="p">:</span> <span class="n">DATA_TYPE</span><span class="p">,</span>
-</span><span id="cast_unless-6697"><a href="#cast_unless-6697"><span class="linenos">6697</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span>
-</span><span id="cast_unless-6698"><a href="#cast_unless-6698"><span class="linenos">6698</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span> <span class="o">|</span> <span class="n">Cast</span><span class="p">:</span>
-</span><span id="cast_unless-6699"><a href="#cast_unless-6699"><span class="linenos">6699</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="cast_unless-6700"><a href="#cast_unless-6700"><span class="linenos">6700</span></a><span class="sd"> Cast an expression to a data type unless it is a specified type.</span>
-</span><span id="cast_unless-6701"><a href="#cast_unless-6701"><span class="linenos">6701</span></a>
-</span><span id="cast_unless-6702"><a href="#cast_unless-6702"><span class="linenos">6702</span></a><span class="sd"> Args:</span>
-</span><span id="cast_unless-6703"><a href="#cast_unless-6703"><span class="linenos">6703</span></a><span class="sd"> expression: The expression to cast.</span>
-</span><span id="cast_unless-6704"><a href="#cast_unless-6704"><span class="linenos">6704</span></a><span class="sd"> to: The data type to cast to.</span>
-</span><span id="cast_unless-6705"><a href="#cast_unless-6705"><span class="linenos">6705</span></a><span class="sd"> **types: The types to exclude from casting.</span>
-</span><span id="cast_unless-6706"><a href="#cast_unless-6706"><span class="linenos">6706</span></a><span class="sd"> **opts: Extra keyword arguments for parsing `expression`</span>
-</span><span id="cast_unless-6707"><a href="#cast_unless-6707"><span class="linenos">6707</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="cast_unless-6708"><a href="#cast_unless-6708"><span class="linenos">6708</span></a> <span class="n">expr</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="cast_unless-6709"><a href="#cast_unless-6709"><span class="linenos">6709</span></a> <span class="k">if</span> <span class="n">expr</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="o">*</span><span class="n">types</span><span class="p">):</span>
-</span><span id="cast_unless-6710"><a href="#cast_unless-6710"><span class="linenos">6710</span></a> <span class="k">return</span> <span class="n">expr</span>
-</span><span id="cast_unless-6711"><a href="#cast_unless-6711"><span class="linenos">6711</span></a> <span class="k">return</span> <span class="n">cast</span><span class="p">(</span><span class="n">expr</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_unless-6877"><a href="#cast_unless-6877"><span class="linenos">6877</span></a><span class="k">def</span> <span class="nf">cast_unless</span><span class="p">(</span>
+</span><span id="cast_unless-6878"><a href="#cast_unless-6878"><span class="linenos">6878</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="cast_unless-6879"><a href="#cast_unless-6879"><span class="linenos">6879</span></a> <span class="n">to</span><span class="p">:</span> <span class="n">DATA_TYPE</span><span class="p">,</span>
+</span><span id="cast_unless-6880"><a href="#cast_unless-6880"><span class="linenos">6880</span></a> <span class="o">*</span><span class="n">types</span><span class="p">:</span> <span class="n">DATA_TYPE</span><span class="p">,</span>
+</span><span id="cast_unless-6881"><a href="#cast_unless-6881"><span class="linenos">6881</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span>
+</span><span id="cast_unless-6882"><a href="#cast_unless-6882"><span class="linenos">6882</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span> <span class="o">|</span> <span class="n">Cast</span><span class="p">:</span>
+</span><span id="cast_unless-6883"><a href="#cast_unless-6883"><span class="linenos">6883</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="cast_unless-6884"><a href="#cast_unless-6884"><span class="linenos">6884</span></a><span class="sd"> Cast an expression to a data type unless it is a specified type.</span>
+</span><span id="cast_unless-6885"><a href="#cast_unless-6885"><span class="linenos">6885</span></a>
+</span><span id="cast_unless-6886"><a href="#cast_unless-6886"><span class="linenos">6886</span></a><span class="sd"> Args:</span>
+</span><span id="cast_unless-6887"><a href="#cast_unless-6887"><span class="linenos">6887</span></a><span class="sd"> expression: The expression to cast.</span>
+</span><span id="cast_unless-6888"><a href="#cast_unless-6888"><span class="linenos">6888</span></a><span class="sd"> to: The data type to cast to.</span>
+</span><span id="cast_unless-6889"><a href="#cast_unless-6889"><span class="linenos">6889</span></a><span class="sd"> **types: The types to exclude from casting.</span>
+</span><span id="cast_unless-6890"><a href="#cast_unless-6890"><span class="linenos">6890</span></a><span class="sd"> **opts: Extra keyword arguments for parsing `expression`</span>
+</span><span id="cast_unless-6891"><a href="#cast_unless-6891"><span class="linenos">6891</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="cast_unless-6892"><a href="#cast_unless-6892"><span class="linenos">6892</span></a> <span class="n">expr</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="cast_unless-6893"><a href="#cast_unless-6893"><span class="linenos">6893</span></a> <span class="k">if</span> <span class="n">expr</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="o">*</span><span class="n">types</span><span class="p">):</span>
+</span><span id="cast_unless-6894"><a href="#cast_unless-6894"><span class="linenos">6894</span></a> <span class="k">return</span> <span class="n">expr</span>
+</span><span id="cast_unless-6895"><a href="#cast_unless-6895"><span class="linenos">6895</span></a> <span class="k">return</span> <span class="n">cast</span><span class="p">(</span><span class="n">expr</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>
@@ -82613,11 +87338,11 @@ True: Always quote.</li>
</div>
<a class="headerlink" href="#true"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="true-6714"><a href="#true-6714"><span class="linenos">6714</span></a><span class="k">def</span> <span class="nf">true</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">Boolean</span><span class="p">:</span>
-</span><span id="true-6715"><a href="#true-6715"><span class="linenos">6715</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="true-6716"><a href="#true-6716"><span class="linenos">6716</span></a><span class="sd"> Returns a true Boolean expression.</span>
-</span><span id="true-6717"><a href="#true-6717"><span class="linenos">6717</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="true-6718"><a href="#true-6718"><span class="linenos">6718</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-6898"><a href="#true-6898"><span class="linenos">6898</span></a><span class="k">def</span> <span class="nf">true</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">Boolean</span><span class="p">:</span>
+</span><span id="true-6899"><a href="#true-6899"><span class="linenos">6899</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="true-6900"><a href="#true-6900"><span class="linenos">6900</span></a><span class="sd"> Returns a true Boolean expression.</span>
+</span><span id="true-6901"><a href="#true-6901"><span class="linenos">6901</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="true-6902"><a href="#true-6902"><span class="linenos">6902</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>
@@ -82637,11 +87362,11 @@ True: Always quote.</li>
</div>
<a class="headerlink" href="#false"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="false-6721"><a href="#false-6721"><span class="linenos">6721</span></a><span class="k">def</span> <span class="nf">false</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">Boolean</span><span class="p">:</span>
-</span><span id="false-6722"><a href="#false-6722"><span class="linenos">6722</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="false-6723"><a href="#false-6723"><span class="linenos">6723</span></a><span class="sd"> Returns a false Boolean expression.</span>
-</span><span id="false-6724"><a href="#false-6724"><span class="linenos">6724</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="false-6725"><a href="#false-6725"><span class="linenos">6725</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-6905"><a href="#false-6905"><span class="linenos">6905</span></a><span class="k">def</span> <span class="nf">false</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">Boolean</span><span class="p">:</span>
+</span><span id="false-6906"><a href="#false-6906"><span class="linenos">6906</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="false-6907"><a href="#false-6907"><span class="linenos">6907</span></a><span class="sd"> Returns a false Boolean expression.</span>
+</span><span id="false-6908"><a href="#false-6908"><span class="linenos">6908</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="false-6909"><a href="#false-6909"><span class="linenos">6909</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>
@@ -82661,11 +87386,11 @@ True: Always quote.</li>
</div>
<a class="headerlink" href="#null"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="null-6728"><a href="#null-6728"><span class="linenos">6728</span></a><span class="k">def</span> <span class="nf">null</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">Null</span><span class="p">:</span>
-</span><span id="null-6729"><a href="#null-6729"><span class="linenos">6729</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="null-6730"><a href="#null-6730"><span class="linenos">6730</span></a><span class="sd"> Returns a Null expression.</span>
-</span><span id="null-6731"><a href="#null-6731"><span class="linenos">6731</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="null-6732"><a href="#null-6732"><span class="linenos">6732</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-6912"><a href="#null-6912"><span class="linenos">6912</span></a><span class="k">def</span> <span class="nf">null</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">Null</span><span class="p">:</span>
+</span><span id="null-6913"><a href="#null-6913"><span class="linenos">6913</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="null-6914"><a href="#null-6914"><span class="linenos">6914</span></a><span class="sd"> Returns a Null expression.</span>
+</span><span id="null-6915"><a href="#null-6915"><span class="linenos">6915</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="null-6916"><a href="#null-6916"><span class="linenos">6916</span></a> <span class="k">return</span> <span class="n">Null</span><span class="p">()</span>
</span></pre></div>
@@ -82677,7 +87402,7 @@ True: Always quote.</li>
<section id="TRUE">
<div class="attr variable">
<span class="name">TRUE</span> =
-<span class="default_value">(BOOLEAN this: True)</span>
+<span class="default_value">Boolean(this=True)</span>
</div>
@@ -82689,7 +87414,7 @@ True: Always quote.</li>
<section id="FALSE">
<div class="attr variable">
<span class="name">FALSE</span> =
-<span class="default_value">(BOOLEAN this: False)</span>
+<span class="default_value">Boolean(this=False)</span>
</div>
@@ -82701,7 +87426,7 @@ True: Always quote.</li>
<section id="NULL">
<div class="attr variable">
<span class="name">NULL</span> =
-<span class="default_value">(NULL )</span>
+<span class="default_value">Null()</span>
</div>